bitrix яндекс карты
использую обратное геокодирование от яндекса для получения координат из адреса
https://tech.yandex.ru/maps/geocoder/doc/desc/concepts/input_params-docpage/
ключ апи обязателен
https://developer.tech.yandex.ru/
$arResult['POSITION']['yandex_scale']='18'; // масштаб карты
function my_curl_fun($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
// внимание данный апи-ключ не работает!!!
$url = 'https://geocode-maps.yandex.ru/1.x/?format=json&geocode=' . urlencode($addr['TEXT']) . '&apikey=' . urlencode('baa57f62-1234-4afc-927b-13db42815ed9');
$response = my_curl_fun($url);
//var_dump($response);
$response = json_decode($response, true);
//pr($response);
$geo_object = $response['response']['GeoObjectCollection']['featureMember'];
$coord = isset($geo_object[0]) ? $geo_object[0]['GeoObject']['Point']['pos'] : $geo_object['GeoObject']['Point']['pos'];
var_dump($coord);
$coord = explode(' ', $coord);
$arResult['POSITION']['yandex_lon'] = $coord[0]; // долгота
$arResult['POSITION']['yandex_lat'] = $coord[1]; // широта
$APPLICATION->IncludeComponent(
"bitrix:map.yandex.view",
".default",
array(
"INIT_MAP_TYPE" => "MAP",
"MAP_DATA" => serialize($arResult['POSITION']),
"MAP_WIDTH" => "100%",
"MAP_HEIGHT" => "350",
"CONTROLS" => array(
0 => "ZOOM",
1 => "MINIMAP",
2 => "TYPECONTROL",
3 => "SCALELINE",
),
"OPTIONS" => array(
0 => "ENABLE_SCROLL_ZOOM",
1 => "ENABLE_DBLCLICK_ZOOM",
2 => "ENABLE_DRAGGING",
),
"MAP_ID" => "MyMap".$_GET["id"],
),
false
);
Leave a comment