[РЕШЕНО] География для каталога в Д7

Главные вкладки

Аватар пользователя bredov bredov 18 октября 2013 в 16:05

Приветствую,

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

Пользователь создает материал определенного типа (скажем, карточка магазина). В материале должны быть поля с городом, субъектом РФ, улицей, метро и пр. Как минимум поле "Город" должно иметь свой идентификатор (токен), чтобы по нему можно было осуществлять поиск и сортировку во Вьюсах. После создания и сохранения ноды в ней должен отображаться адрес из указанных полей и небольшая карта 300x400 px с меткой по данному адресу.
Доп. условие - обойтись без программных php-вставок.

Что было рассмотрено?
1. Хотелось бы Яндекс карты, но не нашел способа передать адрес в yamaps без программирования. Поэтому только Гугл.
2. Addressfield - не подходит, т.к. поле Города не имеет идентификатора (или я не нашел, как к нему обратиться). Плюс заморочки с российским представлением адреса.
3. Getlocation - аналогично.
4. Gmap+Location, в принципе, подошел, но не все требования задачи выполняются. В частности, в самой ноде выводится только ссылка на карту. Порядок вывода полей адреса никак не регулируется, пришлось все-таки залезать в код (location.tpl.php). Кроме того, Gmap для Map API v3 все еще в разработке, а для API v2 Гугл ключи уже не дает.

Собственно, и вопросы.
1. Имеются ли изящные решения указанной задачи? Как вы делали подобный функционал?
2. Как в связке Gmap+Location вывести карту в ноду?

Комментарии

Аватар пользователя bredov bredov 19 октября 2013 в 17:53

Модуль Location создает блок Location map, который можно включить и вставить в ноду (в моем случае - в тип материала для карточек магазина). Это блок делает ровно то, что нужно - выводит карту Гугла с меткой по адресу, указанному в ноде. Настройка карты осуществляется через Gmap macros.
Фишка заключается в том, что этот блок не выводится, если в поле Province/State выбрано какое-то значение из списка регионов РФ. Как только значение убирается (в списке выбирает Please select), блок с картой моментально появляется. Т.е. геокодер из пары Location+Gmap не может распарсить адрес с указанием региона. Баг это или так задумано - вопрос к разработчикам.

Полезным оказался этот материал, хоть он довольно старый и по 6-ке : http://habrahabr.ru/post/56505/