Потрібне просте рішення Google Maps; загублені в лабіринті модулів


15

Перш за все, дозвольте мені лише зазначити, що мені байдуже, яку версію Drupal я мав би використати (6 або 7). У мене є досвід обох версій, мені просто не потрібно було працювати з Google Maps до цих пір. Вимоги досить основні (з того, що я розумію):

1) Майте вузол для кожної компанії, яку я хочу додати на карті

2) У формі редагування вузла я хотів би додати адресу та додати її у власну карту google (або, можливо, скопіювати та вставити посилання розташування google map)

3) Майте функцію пошуку, щоб знайти найближчу компанію для певного місця

Там є багато тонн різних модулів, і я хотів би, щоб я був спрямований у правильному напрямку, а не переглядав 15+ різних модулів, щоб нарешті зрозуміти, що мені потрібно написати власний модуль для себе.

Заздалегідь спасибі.

Відповіді:


36

Я створив функцію Drupal, яка реалізує це за допомогою OpenLayers (див. Http://drupal.org/project/ol_locator ), або ви можете скористатися наведеними нижче покроковими інструкціями, щоб налаштувати свій власний.

  1. Завантажте та ввімкніть такі модулі:

  2. Увімкнути підмодулі:

    • Карта геополя 7.x-1.0-alpha5
    • Перегляд інтерфейсу користувача 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • Перегляди OpenLayers 7.x-2.0-alpha2
  3. Перейдіть до admin/structure/types/addі створіть новий тип вмісту під назвою " Location"

  4. Перейдіть admin/structure/types/manage/location/fieldsі додайте наступні поля:

    • Мітка: Адреса> Назва поля: адреса> Тип поля: Поштова адреса> Віджет: Динамічна форма адреси
  5. У списку виберіть, які доступні країни ви бажаєте. Залиште порожнє, щоб дозволити їх усім.

  6. Скасувати "Форма адреси (конкретна країна)"

    • Примітка: Країни та пов'язані з ними поля обробляються модулем Addressfield. Якщо ви не бачите своєї країни або у ній немає відповідних полів, вам потрібно подати проблему з цим модулем http://drupal.org/project/addressfield (Перевірте, чи є проблема у черзі щодо вашої Перша країна, яка відсутня, перед публікацією)
  7. Мітка: Geofield> Назва поля: geofield> Тип поля: Geofield> Віджет: Геокод з іншого поля

  8. Перейдіть admin/structure/types/manage/ol_locator_location/displayта змініть Defaultдисплей для Geofield:

    • Мітка: Прихований> Формат: OpenLayers
  9. Клацніть на значок шестірні та виберіть наступне:

    • Заздалегідь задані OpenLayers: Geofield Formater Map> Параметри даних: Використовуйте повну геометрію
  10. Перейдіть admin/structure/openlayers/layers/settingsі встановіть наступне:

    • Версія API Карт Google: v3.2
  11. Давайте перевіримо, чи працює геокодування, створивши тестове розташування

    • Створюючи тип тестового вмісту, переконайтеся, що ви використовуєте чітко встановлену адресу. Якщо Google не знає про вашу адресу, то і ваш новий сайт не буде.
  12. Перейдіть до admin/structure/views/addта створіть новий перегляд із наступною інформацією

    • Переглянути ім'я: Пошук близькості> Опис: Відображення геокодированних місць на динамічній карті для користувачів, які здійснюють пошук близькості. > Показати: Вміст типу: Розташування відсортовано за: Несортовано> Продовжити та редагувати
  13. Додайте наступні поля та зберігайте їх за замовчуванням, за винятком випадків, коли зазначено:

    1. Зміст: Назва > Перевірка Створення мітки: "Назва"
    2. Зміст: Адреса (адреса)
    3. Вміст: Геополе (Геополе)> Виключити з відображення
    4. Близькість: Відстань (Відстань)
  14. Додайте такі критерії фільтра до існуючих:

    • Зміст: Опубліковано (Так) та
    • Вміст: Тип (= Місцезнаходження)
    • Близькість: Велике коло (відкрито)> Розкрийте цей фільтр відвідувачам, щоб вони могли його змінити> Мітка: Близькість> додайте "10" у поле Значення> Розблокувати одиницю виміру> Розблокувати розташування
  15. Заголовок > Глобальний: Область тексту> Відображення, навіть якщо перегляд не має результату

    • "Знайдіть місцезнаходження поблизу. Ви можете шукати, використовуючи своє місто, провінцію / штат або поштовий / поштовий індекс."
  16. Немає результатів поведінки > Глобально: область тексту та додайте наступне:

    • "Вибачте, результатів не знайдено.
      1.) Перевірте точність свого поштового індексу.
      2. Перевірте написання свого міста, провінції чи штату.
      3.) Збільшити відстань"
  17. Текст кнопки надсилання : Пошук

  18. Додати новий дисплей: " Накладання даних OpenLayers "

  19. Формат :

    • Налаштування> Застосувати це відкриті шари (замінити)> Джерела даних карт: WKT> WKT Поле: Геополе> Поле опису>> Застосувати (цей дисплей)
  20. Збережіть подання

  21. Йти до admin/structure/openlayers/maps

  22. Клоніруйте карту за замовчуванням

  23. Загальна інформація> Назва: location_map. Назва: Карта розташування> Опис карти: Це карта розташування за замовчуванням.

  24. Шар та стилі> Накладення шарів (виберіть перегляд, який ми тільки що створили)

  25. Поведінки> Спливаюче вікно (повертайтеся та "Виберіть шар, до якого слід застосувати спливаючі вікна". Пізніше)> Збільшити шар "Виберіть шар, щоб збільшити масштаб, коли карта завантажена" > Рівень масштабування точки: 20 ****

  26. Збережіть карту

  27. Поверніться до створеного нами виду

    • admin/structure/views/view/proximity_search/edit
  28. Додати дисплей "Сторінка"

    • Шлях: /locator
    • Формат: Карта OpenLayers> Застосувати (цей дисплей)> Карта: Карта локацій (та, яку ми тільки що створили у OpenLayers)> Застосувати
  29. Збережіть подання (Тепер ми повинні бачити нашу карту на панелі попереднього перегляду внизу нашого перегляду з будь-яким вмістом тесту

  30. Додати дисплей: "вкладення"

    • Формат: Таблиця> Застосувати (цей дисплей)
    • Приєднати до: Сторінка
    • Спадкові піддані фільтри: Так
    • Видаліть Заголовок> Глобальний: Область тексту> Застосувати (цей дисплей)
    • Елементи для відображення: Відображення заданої кількості елементів | 5 предметів
    • Спадковий пейджер: Так
    • Візуалізація пейджера: Так
  31. Зберегти перегляд

  32. Поведінки> Спливаючі вікна> Шари> Близькість_search_openlayers_1 (карта створених нами видами переглядів)

  33. Збільшити шар> Збільшити масштаб заданого шару при завантаженні карти. >proximity_search_openlayers_1

  34. Поверніться назад до admin/structure/types/manage/location/display> натисніть значок шестірні та змініть Налаштування відкритих шарів на створену нами щойно карту розташування > Оновити> Зберегти

Вуаля! Зроблено


1
Ви відповідаєте настільки докладно, що я хочу
принести суму

Це не просто відповідь, це підручник :)
Codium

+1, але важливо зауважити, що ol_locatorфункція може бути помилкова з новішими версіями модулів, і в ній немає обмежень щодо кількості версій. Я пережив це (на жаль). Але ваша відповідь справді гарно деталізована.
Sk8erPeter

Якщо модуль є помилковим, будь ласка, опублікуйте його у черзі випуску мого модуля з тим, що не працює (повна інформація). У мене немає проблем з виправленням проблем, але мені потрібно знати про них. :)

Я щойно перевірив локатор OpenLayers, і він працює дуже добре і як рекламується. Дякую @nicoz.
Найджел Уотерс

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.