Карты в блоках

Выберите инструмент для разработки с 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_map
  • 16.2.two_cols_text_map_fix
  • 16.3.two_cols_map_text_fix
  • 16.5.two_cols_map
  • 16.6.two_cols_map_reverse

Чтобы блок с картой работал корректно, заранее добавьте в разметку ноду .landing-block-node-map, а подтип map дополнит манифест и стартовые настройки.

Продолжите изучение