2022.03.23
Вывод координат на карте через переменные - Линейка решений INTEC: Universe
Рассмотрим пример вывода компонента карты, который будет отображать координаты, зависящие от региона.
1) Для того, чтобы координаты зависели от региона, создадим новую переменную в регионах
2)Тип данные выбираем строка, в поле код поля вводим код (к примеру "UF_MAP") и прописываем название свойства (например "Координаты карты")
3) Теперь у каждого региона появится дополнительное свойство "Координаты карты". С помощью любого сервиса получаем координаты нужной точки на карте и вписываем в созданное свойство. Координаты необходимо ввести через запятую, например
55.16009,61.40539
4) Заполняем координаты у каждого региона
5) На странице, где необходимо вывести карту прописываем следующий код в PHP
<?php
//Получаем координату до запятой
$positionLat = explode(',', $_SESSION['REGIONALITY']['REGION']['PROPERTIES']['MAP']['RAW'])[0];
//Получаем координату после запятой
$positionLon = explode(',', $_SESSION['REGIONALITY']['REGION']['PROPERTIES']['MAP']['RAW'])[1];
//Вставляем полученные координаты в настройки карты
$data = [
'yandex_lat' => $positionLat,
'yandex_lon' => $positionLon,
'yandex_scale' => 15,
'PLACEMARKS' => [
[
'LAT' => $positionLat,
'LON' => $positionLon
]
]
];
//Вызываем компонент yandex карты
$APPLICATION->IncludeComponent(
"bitrix:map.yandex.view",
".default",
array(
"INIT_MAP_TYPE" => "MAP",
"MAP_DATA" => serialize($data), //вставляем настройки координат в карту
"MAP_WIDTH" => "100%",
"MAP_HEIGHT" => "600",
"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" => "main_region",
"COMPONENT_TEMPLATE" => ".default"
),
false
);
?>
6) После сохранения на странице появится карта, которая будет центрироваться на точке с координатами из настроек конкретного региона
Наши решения