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

Your email address will not be published.


*