Модуль Yandex map для Drupal 8

Долго ждал когда появится годный Drupal 8 модуль  для отображения точек на карте Yandex. Модуль появился, но не совсем годный для моих целей. Поэтому решил все же по-быстрому накидать свой минимум.

Мои задачи:

  • Сделать отображение метки на Яндекс карте для поля, содержащего геоданные. Это поле можно будет прикрутить как к материалу, так и к любой сущности, например, к параграфу.
  • Расположение метки на карте должно задаваться в редакторе содержимого простым перетаскиванием карты.
  • Отображение метки, поведения и наборы контролов Яндекс карты должны быть настраиваемыми.
  • Вот такой нехитрый набор хотелок получился в первом приближении. Вышеназванный модуль не подошел по ряду причин, в том числе и потому что он хранит точку не в координатах, как поле Geolocation, а в формате, который в случае чего придется парсить. Я же рассчитываю на то, чтобы в дальнейшем можно было группировкой по полю во вьюхе отобразить точки из нескольких материалов.

Новый тип поля я изобретать не стал, взял модуль Geolocation, который определяет необходимый мне тип.

Итак, после установки модулей создадим поле типа Geolocation и настроим отображение формы, в качестве виджета выберем Geolocation Yandex map:

Управление отображением формы

 

На вкладке управления отображением так же выбираем:

Формат Geolocation Yandex map

и настраиваем параметры форматирования:

Параметры форматирования

Параметры карты можно довольно гибко настраивать. Так например в поле Balloon content можно использовать токены.

После этого в редактируемом материале можно редактировать поле типа Geolocation просто перемещаясь по карте.

Редактирование поля

Ну и соответсвенно рендер поля будет выглядеть примерно так:

Рендер поля

Для удобства выложил модуль на гитхабе: https://github.com/azzzis/ymaps_geolocation

Комментарии