Skip to content

Карта (PRO) ​

Карта с метками. У каждой метки есть название, псевдоним, телефон, почта, адрес и описание, так что одним полем описывается целый набор точек.

Какая карта рисуется ​

Провайдер выбирается один раз на сайт, системной настройкой pageblocks_map_type:

ЗначениеПровайдерНужен ключ
leafletLeaflet поверх OpenStreetMapНет
ymapsЯндекс.КартыДа — pageblocks_yandex_apikey

В списке у настройки только эти два: Google Maps в 3.0 не предлагается. Код под него не убран — выставьте значение googlemaps руками, и компонент подключит скрипт Google с ключом из pageblocks_googlemaps_apikey, настройки, которую пакет не создаёт, так что завести её придётся самому. Это не поддерживается, и ветка Google у поля не развивается.

Настройки, общие для всех: центр карты (48.737, 18.893 — это формат, а не значение по умолчанию) и масштаб. У Leaflet добавляются иконка метки, её размер, стиль подложки (light, dark, voyager или свой) и переключатели поведения — перетаскивание, зум колесом, зум двойным кликом, клавиатура, зум касанием. Яндексу достаточно центра и масштаба.

По умолчанию — Leaflet, и ему ничего не нужно

После установки pageblocks_map_type стоит в leaflet: он работает без ключа и без регистрации где бы то ни было. Для большинства сайтов на этом настройка карт и заканчивается.

Переключились на ymaps — заполните pageblocks_yandex_apikey, иначе карта останется пустой.

Вывод пишется руками ​

Значение — JSON-массив меток:

json
[{"lat": 55.755826, "lng": 37.617299, "title": "Офис", "address": "…"}]

Готового сниппета для вывода нет. Разберите значение и отдайте координаты той картографической библиотеке, которую и так грузит тема:

html
<div id="map" data-markers='{$points}'></div>

На фронте это сделано намеренно: менеджеру нужен один провайдер, странице может понадобиться другой, а метки в любом случае остаются обычными данными.

© PageBlocks 2019-present