Нужно простое решение Google Maps; заблудился в лабиринте модулей
Прежде всего, позвольте мне просто заявить, что мне все равно, какую версию Drupal мне придется использовать (6 или 7). У меня есть опыт работы с обеими версиями, просто до сих пор мне не приходилось работать с картами Google. Требования довольно просты (насколько я понимаю):
1) Есть узел для каждой компании, которую я хочу добавить на карту
2) В форме редактирования узла я хотел бы добавить адрес и добавить его на пользовательскую карту Google (или, возможно, скопировать и вставить ссылку на местоположение на карте Google)
3) Есть функция поиска, чтобы найти ближайшую компанию для данного местоположения
Существует множество различных модулей, и я хотел бы, чтобы мне указали правильное направление, вместо того, чтобы просматривать 15+ различных модулей, чтобы, наконец, понять, что мне нужно написать собственный модуль для себя.
Заранее благодарю.
2 answers
Я создал функцию Drupal, которая реализует это с помощью OpenLayers (см. http://drupal.org/project/ol_locator ) или вы можете использовать следующее пошаговое руководство для настройки своего собственного.
-
Загрузите и включите следующие модули:
-
Включить подмодули:
- Карта геополя 7.x-1.0-alpha5
- Просмотр пользовательского интерфейса 7.x-3.0-rc1
- Пользовательский интерфейс OpenLayers 7.x-2.0-alpha2
- Просмотры OpenLayers 7.x-2.0-alpha2
Перейдите к
admin/structure/types/add
и создайте новый тип контента под названием "Location
"-
Перейдите к
admin/structure/types/manage/location/fields
и добавьте следующие поля:- Метка: Адрес> Имя поля: адрес> Тип поля: Почтовый адрес> Виджет: Форма динамического адреса
Выберите из списка доступные страны, которые вы бы предпочли. Оставьте поле пустым, чтобы разрешить все из них.
-
Отметьте "Форма адреса (для конкретной страны)"
- Примечание: Страны и связанные с ними поля обрабатываются модулем Адресное поле. Если вы не видите свою страну или если в ней нет соответствующие поля, необходимые для регистрации проблемы с этим модулем http://drupal.org/project/addressfield (Проверьте, есть ли в очереди проблема с вашей отсутствующей страной, прежде чем публиковать)
Метка: Геополе > Имя поля: геополе > Тип поля: Геополе > Виджет: Геокод из другого поля
-
Перейдите к
admin/structure/types/manage/ol_locator_location/display
и измените отображениеDefault
для геополя:- Метка: Скрытый > Формат: Открытые слои
-
Нажмите на значок шестеренки и выберите следующее:
- Предустановка OpenLayers: Карта форматирования геополя > Параметры данных: Используйте полную геометрию
-
Перейдите к
admin/structure/openlayers/layers/settings
и задайте следующее:- Версия API карт Google: v3.2
-
Давайте проверим, работает ли геокодирование, создав тестовое местоположение
- При создании тестового типа контента убедитесь, что вы используете хорошо зарекомендовавший себя адрес. Если Google не знает о вашем адресе, то и ваш новый сайт тоже не будет знать.
-
Перейдите к
admin/structure/views/add
и создайте новое представление со следующей информацией- Название представления: Поиск по близости> Описание: Отображает геокодированные местоположения на динамической карте, чтобы пользователи могли выполнять поиск по близости. > Показать: Содержимое типа: Местоположение, отсортированное по: Несортированное> Продолжить и редактировать
-
Добавьте следующие поля и сохраните их значения по умолчанию, за исключением где отмечено:
- Содержимое: Заголовок> Отметьте Создать метку: "Заголовок"
- Содержание: Адрес (Адрес)
- Содержимое: Геополе (Геополе) > Исключить из отображения
- Близость: Расстояние (Расстояние)
-
Добавьте следующие Критерии фильтрации к существующим:
- Содержание: Опубликовано (Да) и
- Содержание: Тип (=Местоположение)
- Близость: Большой круг (открытый) > Предоставьте этот фильтр посетителям, чтобы они могли его изменить > Метка: Близость> добавьте "10" в поле значения> Разблокируйте единицу измерения> Разблокируйте местоположение
-
Заголовок > Глобальный: Текстовая область > Отображать, даже если представление не дает результата
- " Найдите место рядом с вами. Вы можете искать, используя свой город, провинцию/штат или почтовый/почтовый индекс код."
-
Поведение без результатов> Глобальный: Текстовая область и добавьте следующее:
- " Извините, результатов не найдено.
1.) Проверьте точность вашего почтового/почтового индекса
2.) Проверьте правописание вашего города, провинции или штата
3.) Увеличьте расстояние близости"
- " Извините, результатов не найдено.
Отправить текст кнопки: Поиск
Добавить новый дисплей: "Данные OpenLayers Наложение"
-
Формат:
- Настройки > Применить этот openlayers (переопределение) > Источники данных карты: WKT > Поле WKT: Геополе > Поле описания>> Применить (это отображение)
Сохраните представление
Перейти к
admin/structure/openlayers/maps
Клонировать карту по умолчанию
Общая информация > Имя: location_map. Название: Карта местоположения > Описание карты: Это местоположение по умолчанию карта.
Слой и стили > Слои наложения (выберите только что созданный вид) Местоположения "Включено" "Активировано" Сделайте то же самое для заполнителя для форматирования геополя
Поведение > Всплывающее окно (нужно вернуться и "Выбрать слой для применения всплывающих окон". позже)> Увеличить до слоя "Выберите слой для увеличения при загрузке карты" > Уровень масштабирования точки : 20 ****
Сохраните карту
-
Вернитесь к представление, которое мы только что создали
admin/structure/views/view/proximity_search/edit
-
Добавить отображение "Страница"
- Путь:
/locator
- Формат: Карта OpenLayers > Применить (это отображение) > Карта: Карта местоположений (та, которую мы только что создали в OpenLayers)> Применить
- Путь:
Сохраните представление (теперь мы должны увидеть нашу карту на панели предварительного просмотра в нижней части нашего представления с любым тестовым контентом
-
Добавить отображение: "вложение"
- Формат: Таблица > Применить (это отображение)
- Прикрепить к: Странице
- Наследовать открытые фильтры: Да
- Удалить заголовок > Глобальный: Текстовая область > Применить (это отображение)
- Элементы для отображения: Отображение указанного количества элементов |5 элементов
- Унаследовать пейджер: Да
- Отрисовка пейджера: Да
Сохранить представление
Поведение > Всплывающие окна > Слои > proximity_search_openlayers_1 (В просмотр карты Openlayers, которую мы только что создали)
Масштабирование до слоя > Масштабирование до размера данного слоя при загрузке карты. >
proximity_search_openlayers_1
Вернитесь назад к
admin/structure/types/manage/location/display
> щелкните значок шестеренки и измените Настройки открытых слоев на Карту местоположения, которую мы только что создали > Обновить> Сохранить
Вуаля! Готово
Используйте простой модуль Google maps . Он очень прост и удобен в использовании.