Долго ждал когда появится годный Drupal 8 модуль для отображения точек на карте Yandex. Модуль появился, но не совсем годный для моих целей. Поэтому решил все же по-быстрому накидать свой минимум.
Мои задачи:
- Сделать отображение метки на Яндекс карте для поля, содержащего геоданные. Это поле можно будет прикрутить как к материалу, так и к любой сущности, например, к параграфу.
- Расположение метки на карте должно задаваться в редакторе содержимого простым перетаскиванием карты.
- Отображение метки, поведения и наборы контролов Яндекс карты должны быть настраиваемыми.
- Вот такой нехитрый набор хотелок получился в первом приближении. Вышеназванный модуль не подошел по ряду причин, в том числе и потому что он хранит точку не в координатах, как поле Geolocation, а в формате, который в случае чего придется парсить. Я же рассчитываю на то, чтобы в дальнейшем можно было группировкой по полю во вьюхе отобразить точки из нескольких материалов.
- Новый тип поля я изобретать не стал, взял модуль Geolocation, который определяет необходимый мне тип.
Создание поля
Итак, после установки модулей создадим поле типа Geolocation и настроим отображение формы, в качестве виджета выберем Geolocation Yandex map:
Настройка отображения поля
На вкладке управления отображением также выбираем:
Параметры форматирования
Настраиваем параметры форматирования:
Параметры карты можно довольно гибко настраивать. Так например в поле Balloon content можно использовать токены.
Заполнение поля
После этого в редактируемом материале можно редактировать поле типа Geolocation просто перемещаясь по карте.
Результат
Ну и соответственно рендер поля будет выглядеть примерно так:
Ссылка на модуль: https://www.drupal.org/project/ymaps_geolocation
Атрибуция
Оригинал статьи: http://big-gu.ru/blog/modul-yandex-map-dlya-drupal-8
Комментарии
Спасибо, было бы очень полезно если бы Вы "зарелизили" его на drupal.org
У меня есть аккаунт на д.орге, но модули там никогда не релизил и разбираться с этим пока некогда. Если подскажете что и как, могу, конечно, попытаться пройти этот квест )
Это сейчас делается за 10 минут.
Попробуй пройти по шагам. Если будут вопросы, пиши в коменты, будем дополнять статью
Спасибо! Модуль на дорге
https://www.drupal.org/project/ymaps_geolocation
Добавил страницу настроек модуля для ввода API KEY яндекс карт
Что-то не работает... Ключ получил и вставил в настройках.
Это в админке так?
Поправил косяк. Добавил на страницу настроек координаты центра карты для инициализации. В случае если координаты центра не заданы, автоматически берется центр Москвы. Спасибо вам за тестирование модуля и сообщение об ошибке!
Правки можно забрать в 8.x-1.x-dev ветке на Дорге или в гите https://github.com/azzzis/ymaps_geolocation.
Теперь нет настроек в управлении отображении форм.
Нету строки поиска, можно только таскать точку.
Так и задумано. Дело в том, что если пользоваться строкой поиска в результате поиска выводится синий маркер на карте. В итоге два маркера будут конфликтовать - не всем будет понятно почему так происходит . Поэтому я пока убрал поиск. Если есть мысли как сделать, чтобы маркер результатов поиска не отображался - пишите, все можно переделать. Я сам прекрасно понимаю, что поиск это удобно.
По моему красный маркер не совсем нужен... Проще воспользоватся поиском - вбить нужный адрес и на этом адресе появится синий маркер который можно будет перетащить и поставить в нужное место.
Ну это еще додуматься надо, что оно так работает, что нужно поиском вбить и тогда появится маркер... ну и плюс ко всему, синий маркер поиска нельзя таскать, Яша не даст - это же результат поиска. Я сделал по аналогии, как на сервисах объявлений. У меня выбор точки сделан по аналогии с Авито. Думаю потом можно будет строку поиска прикрутить и реализовать поиск немного по другому.
А можно ли на д7? И если бесплатно не можно, то почём?
Для d7 есть отличный модуль http://xandeadx.ru/blog/drupal/704