Краткий обзор Drupal плагинов для работы с картами Google Maps

Краткий обзор Drupal плагинов для работы с картами Google Maps

Для многих случаев применения на сайте бывают нужны живые карты с метками. Как их сделать лучше и удобнее, если ваш сайт использует CMS Drupal? Здесь небольшой обзор модулей, применяемых как раз для работы с картами и геоданными.

Location
Поле для хранения геокоординат. Виджет позволяет вводить как адрес, так и широту/долготу. В составе есть геокодер. Имеется интеграция с плагином Views. Форматер для вывода данных на карте отсутствует, поэтому модуль используется в основном в связке с GMap Module.

GMap Module
Предоставляет интерфейс для работы с Google Maps API 2 (версия 7.x-2.x работает на Google Maps API 3). Модуль имеет интеграцию с Location и позволяет указывать координаты с помощью клика на карте виджета. Доступен форматтер для вывода маркеров на карте. Имеет интеграцию с Views и может выводить несколько точек на одной карте по данным из поля Location.

Get Locations
Поле для хранения геокоординат и форматтер для их вывода на картах Google с помощью Google Maps API 3. Модуль позиционируется как современная альтернатива связке Location и GMap Module. Позволяет указывать метку мышкой. Есть интеграция с Views.

Geofield
Поле для хранения геоданных (точки, линии, полигоны и т.д.) и форматтер для их вывода на Google Map или любой карте, поддерживаемой OpenLayers. Из виджетов доступны: Well Known Text (WKT), Latitude / Longitude, GeoJSON, Bounds. Виджет с визуальным добавлением данных доступен с помощью модулей Leaflet Widget или Geofield Gmap. Встроенного геокодера нет, но есть интеграция с модулем Geocoder. Интеграция с Views с помощью подмодуля Geofield Map.

Geofield Yandex Maps
Виджет, форматтер и views хэндлер для Geofield позволяющий вводить и выводить гео-объекты (точки, линии, полигоны) на Яндекс.Картах 2.1. Модуль так же позволяет использовать карты в своих формах и динамически генерировать карты с помощью PHP, HTML или Javascript.

Geolocation Field
Поле для хранения геокоординат и форматтер для их вывода на карте Google. Вводить координаты можно как кликом на карте виджета, так и с помощью поиска. Интеграция с Views пока только в виде отдельного модуля. Демо, видео.

Yandex.Maps
Поле для хранения геоданных (точки, линии, полигоны, дороги), виджет для визуального добавления данных и форматтер для их вывода на карте Яндекс. Модуль довольно странный, например для ввода точки надо кликнуть на карте, в появившейся форме ввести заголовок маркера, текст балуна, выбрать цвет и нажать кнопку Save. Пользователю доступны сразу все инструменты для ввода данных, без ограничения. Количество данных так же не ограничено. Хранятся все данные в формате json в одной единственной колонке, поэтому об Views можно даже не думать.

Google Maps API V3
Набор полей для хранения геоданных (точки, полигоны, линии, области), виджет для визуального добавления данных с помощью карт Google и форматтер для вывода данных на карте. Модуль крайне сырой.

OpenLayers
Набор модулей для интеграции Drupal с одноимённой javascript библиотекой. Библиотека представляет из себя мощный, но довольно сложный инструмент для работы с картами. В качестве карт можно использовать OpenStreetMap, Google Maps, Yahoo Maps и другие. Есть интеграция с Views.

Leaflet
Интеграция молодой javascript библиотеки для работы с картами — Leaflet. Модуль представляет из себя форматтер полей Geofield, выводящий данные на карте. Виджет для визуального ввода доступен в виде отдельного модуля. Есть интеграция с Views и возможность вывести несколько точек на одной карте. По умолчанию из карт доступна только OSM Mapnik, но есть возможность прикрутить Google Maps и Yandex Maps. Есть PHP API для лёгкого вывода карт.

Location Map
Небольшой модуль, создающий страницу с картой Google, на которой можно вывести информацию о расположении одного единственного объекта. В настройках можно указать заголовок страницы, координаты объекта и его описание.


Simple Google Maps
Форматтер для текстовых полей, позволяющий выводить карту Google с маркером по адресу, указанному в поле.

Резюме: в качестве основы для хранения данных советую начать с Geofield. Если устраивают Google Maps, то дополнительных модулей не понадобится, если нужны Яндекс.Карты, то добавить — Geofield Yandex Maps, иначе можно посмотреть в сторону парочки Leaflet и OpenLayers.