Максим Каськов, огромное спасибо за помощь! Только я, пожалуй, для новичков немного расширю и облегчу ответ:
Для того, чтобы иметь возможность подставлять свой ключ через параметр компонента, необходимо при вызове map.google.view добавить ему параметр, например, API_KEY вот так
Код |
---|
<?$APPLICATION->IncludeComponent(
"bitrix:map.google.view",
"custom",
Array(
... // Тут все ваши параметры вызова
"API_KEY" => "тут ключ от гугла"
)
);?> |
Далее войти в шаблон (в примере это custom), и добавить в массив
Код |
---|
$arTransParams = array(
'INIT_MAP_TYPE' => $arParams['INIT_MAP_TYPE'],
'INIT_MAP_LON' => $arResult['POSITION']['google_lon'],
'INIT_MAP_LAT' => $arResult['POSITION']['google_lat'],
'INIT_MAP_SCALE' => $arResult['POSITION']['google_scale'],
'MAP_WIDTH' => $arParams['MAP_WIDTH'],
'MAP_HEIGHT' => $arParams['MAP_HEIGHT'],
'CONTROLS' => $arParams['CONTROLS'],
'OPTIONS' => $arParams['OPTIONS'],
'MAP_ID' => $arParams['MAP_ID'],
); |
Строку
Код |
---|
$arTransParams = array(
'INIT_MAP_TYPE' => $arParams['INIT_MAP_TYPE'],
'INIT_MAP_LON' => $arResult['POSITION']['google_lon'],
'INIT_MAP_LAT' => $arResult['POSITION']['google_lat'],
'INIT_MAP_SCALE' => $arResult['POSITION']['google_scale'],
'MAP_WIDTH' => $arParams['MAP_WIDTH'],
'MAP_HEIGHT' => $arParams['MAP_HEIGHT'],
'CONTROLS' => $arParams['CONTROLS'],
'OPTIONS' => $arParams['OPTIONS'],
'MAP_ID' => $arParams['MAP_ID'],
'API_KEY' => $arParams['API_KEY']
); |
Таким образом мы передаём в параметры вызова компонента bitrix:map.google.system (который расположен ниже в этом файле) наш ключ.
Необходимо заменить в его вызове путь bitrix на ваш (например, custom) вот так:
Было:
Код |
---|
<?$APPLICATION->IncludeComponent('bitrix:map.google.system', '.default', $arTransParams, false, array('HIDE_ICONS' => 'Y'));?>
|
Стало:
Код |
---|
<?$APPLICATION->IncludeComponent('custom:map.google.system', '.default', $arTransParams, false, array('HIDE_ICONS' => 'Y'));?>
|
Но чтобы это заработало, далее необходимо скопировать компонент /bitrix/components/bitrix/map.google.system в пользовательскую область. то есть в
/local/components/custom/map.google.systemи в скопированной папке в файле
/local/components/custom/map.google.system/component.php заменить строку
Код |
---|
$APPLICATION->AddHeadString('<sc ript src="'.$scheme.'://maps.google.com/maps/api/js?sensor=false&language='.LANGUAGE_ID.'" charset="utf-8"></sc ript>');
|
На
Код |
---|
$APPLICATION->AddHeadString('<sc ript src="'.$scheme.'://maps.googleapis.com/maps/api/js?key='.$arParams["API_KEY"].'"></sc ript>'); |