Карты в блоках
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Блоки с картой используют subtype: map. Этот подтип подключает настройки карты, добавляет нужные атрибуты и подготавливает блок к работе в редакторе.
В штатных блоках для карт используется такой подход:
- в секции
blockуказываетсяsubtype: map - в
assetsподключается расширениеlanding_map - в разметке блока используется нода
.landing-block-node-map
Нода .landing-block-node-map должна уже быть в разметке блока. Если ее нет, подтип карты не сработает. Для существующей ноды .landing-block-node-map обработчик автоматически добавляет тип map, атрибут data-map и, если доступно, атрибут data-map-provider.
Как настроить блок с картой
Минимальный вариант манифеста:
'block' => [
'name' => 'Карта',
'section' => ['contacts'],
'subtype' => 'map',
],
'assets' => [
'ext' => ['landing_map'],
],
Пример разметки:
<section class="landing-block g-pt-0 g-pb-0 g-height-70vh">
<div class="landing-block-node-map h-100"></div>
</section>
Что делает подтип карты
После добавления блока система:
- определяет провайдер карты
- добавляет в ноду
.landing-block-node-mapатрибутdata-map-provider - создает стартовое значение
data-mapс центром, масштабом и маркером - подключает расширение
map_init, если его еще нет в манифесте
В штатных блоках в манифесте обычно указывают расширение landing_map. Подтип карты сам добавляет map_init, если этого расширения еще нет.
По умолчанию в data-map записываются:
- центр карты
- масштаб
17 - один стартовый маркер
Стартовый центр карты зависит от зоны сайта.
Если для выбранного провайдера не настроен ключ карты, подтип добавляет requiredUserAction. В редакторе пользователь увидит обязательное действие с переходом в настройки сайта.
Какие провайдеры используются
По умолчанию используется Google Maps. Для зоны ru система также может использовать Яндекс Карты. Текущий провайдер хранится в атрибуте data-map-provider.
Стартовые координаты карты зависят от зоны сайта. Для зоны ru используется отдельный набор координат. Для остальных зон используется значение по умолчанию.
В интерфейсе блока доступны настройки провайдера карты, а для Google Maps дополнительно доступны визуальные параметры:
- тема карты
- отображение дорог
- отображение ориентиров
Что важно учитывать
- в штатных блоках карт используется расширение
landing_map, а неlanding_google_maps_new - в штатных манифестах карт обычно указывают
subtype: mapиlanding_map, аmap_initподтип подключает сам type: mapдля.landing-block-node-mapдобавляется обработчиком подтипа- если в блоке нет ноды
.landing-block-node-map, подтип карты не сработает
Примеры штатных блоков
Примеры блоков этого типа можно посмотреть в репозитории через методы landing.block.getmanifestfile и landing.block.getrepository.
Коды некоторых штатных блоков:
16.1.google_map16.2.two_cols_text_map_fix16.3.two_cols_map_text_fix16.5.two_cols_map16.6.two_cols_map_reverse
Чтобы блок с картой работал корректно, заранее добавьте в разметку ноду .landing-block-node-map, а подтип map дополнит манифест и стартовые настройки.