03.окт.2024
Компонент карты яндекс с множественными адресами и точками
Создаем свойство "ATTR_MAPS" с типом "Привязка к Яндекс картам", обязательно ставим множественное свойство
Далее Прописываем координаты у элемента:
В компонетне прописываем данный код:
if ($arResult["PROPERTIES"]["ATTR_MAPS"]["VALUE"]) {
$cordiFilter = $arResult["PROPERTIES"]["ATTR_MAPS"]["VALUE"];
// Создаем массив для хранения координат
$arPos = [];
// Разбиваем каждую координату на широту и долготу
foreach ($cordiFilter as $coordination) {
$coordinates = explode(",", $coordination);
if (count($coordinates) == 2) { // Проверяем, что координаты содержат широту и долготу
$arPos[] = [
'LAT' => trim($coordinates[0]),
'LON' => trim($coordinates[1]),
];
}
}
// Проверяем, что у нас есть хотя бы одна координата для вывода карты
if (!empty($arPos)) {
$mapData = [
'yandex_lat' => $arPos[0]['LAT'],
'yandex_lon' => $arPos[0]['LON'],
'yandex_scale' => 10,
'PLACEMARKS' => [],
];
// Добавляем метки на карту для каждой координаты
foreach ($arPos as $key => $pos) {
$mapData['PLACEMARKS'][] = [
'LAT' => $pos['LAT'],
'LON' => $pos['LON'],
'TEXT' => $getArAddress[$key], // Установите здесь текст для метки, если необходимо
];
}
// Выводим компонент яндекс карты
$APPLICATION->IncludeComponent(
"bitrix:map.yandex.view",
"yandex_map",
[
"INIT_MAP_TYPE" => "MAP",
"MAP_DATA" => serialize($mapData),
"MAP_WIDTH" => "100%",
"MAP_HEIGHT" => "500",
"CONTROLS" => ["ZOOM", "SCALELINE"],
"OPTIONS" => ["DISABLE_SCROLL_ZOOM", "ENABLE_DBLCLICK_ZOOM", "ENABLE_DRAGGING"],
"MAP_ID" => "",
],
false
);
}
}
© LazarovStudio 2017 - 2022
Есть что-то, что не любит ограждений ©