Для получения координат карты у элемента инфоблока в Битрикс24, вам понадобится использовать API Яндекс.Карт. Ниже я приведу подробное описание шагов, которые вы должны выполнить, чтобы получить координаты карты:
1. Перед началом работы убедитесь, что у вас есть установленный и настроенный модуль "Информационные блоки" (iblock) в вашей учетной записи Битрикс24.
2. Внутри вашего инфоблока создайте свойство типа "Карта" и задайте ему код. Например, вы можете использовать код "MAP_COORDS".
3. В шаблоне вашего инфоблока найстройте поля для ввода координат. Для этого создайте текстовое поле и привяжите его к созданному ранее свойству "Карта" (MAP_COORDS).
4. Далее вам потребуется создать пользовательское поле типа "HTML/текст" для отображения карты на странице элемента инфоблока. Задайте ему код, например "MAP_PREVIEW".
5. В настройках созданного пользовательского поля укажите тип пользовательского поля "HTML/текст" и выберите шаблон вывода, настроенный по умолчанию.
6. Затем добавьте пользовательский код в файл /bitrix/templates/ваш_шаблон/components/bitrix/news.detail/map.php следующего вида:
<? if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true) die(); if (!empty($arParams["MAP_PROP"])) { $arResult["MAP_COORDS"] = explode(",", $arResult["PROPERTIES"][$arParams["MAP_PROP"]]["VALUE"]); } $this->IncludeComponentTemplate(); ?>
7. Создайте файл /bitrix/components/bitrix/news.detail/templates/.default/map.php и добавьте код:
<?if(!empty($arResult["MAP_COORDS"]) && is_array($arResult["MAP_COORDS"])):?> <script> ymaps.ready(function () { var myMap = new ymaps.Map('map_container', { center: [<?=$arResult["MAP_COORDS"][0]?>, <?=$arResult["MAP_COORDS"][1]?>], zoom: 16 }, { searchControlProvider: 'yandex#search' }), myPlacemark = new ymaps.Placemark(myMap.getCenter(), { hintContent: '<?=$arResult["NAME"]?>', balloonContent: '<?=$arResult["PREVIEW_TEXT"]?>' }); myMap.geoObjects.add(myPlacemark); myMap.behaviors.disable('scrollZoom'); }); </script> <div id="map_container" style="width: 100%; height: 400px;"></div> <?endif;?>
8. Наконец, в шаблоне компонента добавьте вызов пользовательского поля. В вашем шаблоне, где вы хотите отобразить карту, добавьте следующий код:
<?if($arParams["DISPLAY_PREVIEW_TEXT"] != "N" && $arResult["FIELD_PREVIEW_TEXT_VALUE"]):?> <?=$arResult["FIELD_MAP_PREVIEW_VALUE"]?> <?endif;?>
Теперь при просмотре элемента инфоблока на странице будет отображаться карта с указанными координатами.
Надеюсь, что эти инструкции помогут вам получить координаты карты у элемента инфоблока в Битрикс24!