mapex2

Купить mapex2 в магазине дополнений →
21 августа 2017, 18:14

Компонент добавляет в MODx новый тип поля ввода - Яндекс.Карта (mapex.yandexMap)

Возможности

Компонент позволяет рисовать на этой карте следующие объекты:

  • Точки. Произвольное количество точек, для каждой задается Текст, Цвет (из предустановленных в Яндекс.Картах), Текст балуна
  • Линии. Произвольное количество линий, для каждой задается Цвет линии, Ширина линии, Прозрачность, Текст балуна
  • Многоугольник. Произвольное количество многоугольников, для каждого задается Цвет границы, Цвет заливки, Ширина линии, Прозрачность, Текст балуна
  • Маршрут. Можно добавить прокладку на карту маршрута (одного) между двумя точками.

Для каждой карты запоминаются ее настройки:

  • тип карты (схема, спутник, гибрид, народная карта, народная + спутник),
  • координаты центра карты,
  • масштаб карты.

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

В админке реализован поиск объектов на карте по адресу или названию.

Поддерживается добавление нескольких карт к одному ресурсу, путем создания нескольких TV полей.

Сниппеты

mapexMap

Сниппет рисует карту во фронтенде, используя API Яндекс.Карт версии 2.0.

Параметры сниппета:

Имя По умолчанию Описание
&tvName Имя TV параметра с картой. Используйте совместно с параметром &resource
&resource текущий ресурс Id ресурса с картой. Используйте совместно с параметром &tvName
&map json строка с картой. Альтернативный способ указать, какую карту рисовать. Если этот параметр указан, то &tvName и &resource не используются. Пример вызова: [[mapexMap? &map=`[[*tvMap]]`]]
&mapId mapexMap Id карты. Используется при генерации javascript. Если на одной странице карт несколько - укажите разные mapId
&width 500px Ширина карты, например 500px или 100%. Обязательно укажите единицы измерения.
&height 400px Высота карты
&containerCssClass Можно указать css класс блока, в который обернута карта
&mapTpl mapex.Map.Tpl Основной чанк для вывода карты
&placemarkTpl mapex.Placemark.Tpl Чанк для вывода точки
&polygonTpl mapex.Polygon.Tpl Чанк для вывода многоугольника
&polylineTpl mapex.Polyline.Tpl Чанк для вывода линии
&routeTpl mapex.Route.Tpl Чанк для вывода маршрута
&controls mapTools, typeSelector, zoomControl, searchControl, miniMap, trafficControl, scaleLine Набор элементов управления, которые будут на карте. См. документацию Яндекс.Карт 2.0
&includeJS 1 Подключать или нет на страницу скрипт Яндекс.Карт

mapexMap21

Сниппет рисует карту во фронтенде, используя API Яндекс.Карт версии 2.1.

Параметры сниппета практически идентичны, в таблице даны только лишь отличия:

Имя По умолчанию Описание
&mapTpl mapex.Map21.Tpl Основной чанк для вывода карты
&placemarkTpl mapex.Placemark21.Tpl Чанк для вывода точки
&polygonTpl mapex.Polygon21.Tpl Чанк для вывода многоугольника
&polylineTpl mapex.Polyline21.Tpl Чанк для вывода линии
&routeTpl mapex.Route21.Tpl Чанк для вывода маршрута
&controls default Набор элементов управления, которые будут на карте. См. документацию Яндекс.Карт 2.1

Настройки компонента

В настройках компонента (см. Настройки системы, пространство mapex2) можно задать начальное положение, масштаб и тип карты в административном интерфейсе, а также скрыть или показать служебное поле, в котором хранится состояние карты в json формате.

Компонент для своей работы требует библиотеку jquery. В настройках можно указать, откуда загружать ее. Если у вас в админке вдруг есть еще какой либо компонент, использующий jquery, то могут быть проблемы из-за подключения jquery 2 раза, в этом случае просто очистите настройку mapex2_manager_jquery_url.

Поддержка API Яндекс.Карт

Административный интерфейс компонента использует API Яндекс.Карт версии 2.0. К сожалению, на текущий момент перевести его на корректную работу с более свежим API 2.1 не удалось, так как многое в API было изменено.

Во фронтенде реализованна поддержка API Яндекс.Карт как версии 2.0 (сниппет mapexMap), так и 2.1 (сниппет mapexMap21).

Единственный нюанс - в версии API 2.1 поддерживаются мультимаршруты, но из-за работы административного интерфейса на младшей версии API, данная возможность в компоненте не используется.