Potrzebujesz prostego rozwiązania Google Maps; zagubiony w labiryncie modułów


15

Po pierwsze, pozwól mi tylko powiedzieć, że nie obchodzi mnie, której wersji Drupala będę musiał używać (6 lub 7). Mam doświadczenie z obiema wersjami. Do tej pory nie musiałem współpracować z Mapami Google. Wymagania są dość podstawowe (z tego co rozumiem):

1) Posiadaj węzeł dla każdej firmy, którą chcę dodać na mapie

2) W formularzu edycji węzła chciałbym dodać adres i dodać go do niestandardowej mapy google (lub może skopiować i wkleić link do lokalizacji mapy google)

3) Mieć funkcję wyszukiwania, aby znaleźć najbliższą firmę dla danej lokalizacji

Jest tam mnóstwo różnych modułów i chciałbym wskazać właściwy kierunek, zamiast patrzeć przez ponad 15 różnych modułów, aby w końcu uświadomić sobie, że muszę napisać niestandardowy moduł dla siebie.

Z góry dziękuję.

Odpowiedzi:


36

Stworzyłem funkcję Drupal, która implementuje to za pomocą OpenLayers (patrz http://drupal.org/project/ol_locator ) lub możesz użyć poniższej instrukcji, aby skonfigurować własną.

  1. Pobierz i włącz następujące moduły:

  2. Włącz podmoduły:

    • Mapa Geofield 7.x-1.0-alpha5
    • Widok interfejsu użytkownika 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • Widoki OpenLayers 7.x-2.0-alpha2
  3. Przejdź do admin/structure/types/addi utwórz nowy typ treści o nazwie „ Location

  4. Przejdź do admin/structure/types/manage/location/fieldsi dodaj następujące pola:

    • Etykieta: Adres> Nazwa pola: adres> Typ pola: Adres pocztowy> Widżet: Dynamiczny formularz adresu
  5. Wybierz z listy dostępne kraje, które wolisz. Pozostaw puste, aby zezwolić na wszystkie z nich.

  6. Zaznacz „Formularz adresowy (specyficzny dla kraju)”

    • Uwaga: kraje i związane z nimi pola są obsługiwane przez moduł pola adresu. Jeśli nie widzisz swojego kraju lub jeśli nie ma odpowiednich pól, musisz zgłosić problem z tym modułem http://drupal.org/project/addressfield (sprawdź, czy w kolejce jest problem dotyczący twojego brakujący kraj przed wysłaniem)
  7. Etykieta: Geofield> Nazwa pola: geofield> Typ pola: Geofield> Widżet: Geokod z innego pola

  8. Przejdź do admin/structure/types/manage/ol_locator_location/displayi zmień sposób Defaultwyświetlania Geofield:

    • Etykieta: Ukryty> Format: OpenLayers
  9. Kliknij ikonę koła zębatego i wybierz:

    • Ustawienie wstępne OpenLayers: Geofield Formater Map> Opcje danych: Użyj pełnej geometrii
  10. Przejdź do admin/structure/openlayers/layers/settingsi ustaw następujące ustawienia:

    • Wersja interfejsu API Map Google: v3.2
  11. Sprawdźmy, czy geokodowanie działa, tworząc lokalizację testową

    • Tworząc testowy typ zawartości, upewnij się, że używasz dobrze ustalonego adresu. Jeśli Google nie wie o twoim adresie, twoja nowa witryna również nie.
  12. Przejdź do admin/structure/views/addi utwórz nowy widok z następującymi informacjami

    • Wyświetl nazwę: Wyszukiwanie w pobliżu> Opis: Wyświetla geokodowane lokalizacje na dynamicznej mapie, aby użytkownicy mogli wyszukiwać w pobliżu. > Pokaż: Treść typu: Lokalizacja posortowana według: Niesortowane> Kontynuuj i edytuj
  13. Dodaj następujące pola i zachowaj ich wartości domyślne, chyba że zaznaczono inaczej:

    1. Treść: Tytuł > Odłącz Utwórz etykietę: „Tytuł”
    2. Treść: Adres (adres)
    3. Treść: Geofield (Geofield)> Wyklucz z wyświetlania
    4. Odległość: odległość (odległość)
  14. Dodaj następujące kryteria filtru do istniejącego:

    • Treść: Opublikowane (Tak) i
    • Treść: Typ (= lokalizacja)
    • Bliskość: Wielki krąg (odsłonięty)> Ujawnij ten filtr odwiedzającym, aby umożliwić mu jego zmianę> Etykieta: Bliskość> dodaj „10” do pola Wartość> Odblokuj jednostkę miary> Odblokuj lokalizację
  15. Nagłówek > Globalny: Obszar tekstowy> Wyświetl, nawet jeśli widok nie ma żadnego wyniku

    • „Znajdź lokalizację w pobliżu. Możesz wyszukiwać, używając swojego miasta, prowincji / stanu lub kodu pocztowego / pocztowego”.
  16. Brak zachowania wyników > Globalne: Obszar tekstowy i dodaj:

    • „Przepraszamy, nie znaleziono wyników.
      1.) Sprawdź poprawność kodu pocztowego / kodu pocztowego
      2.) Sprawdź pisownię swojego miasta, prowincji lub stanu
      3.) Zwiększ odległość”
  17. Tekst przycisku Prześlij : Szukaj

  18. Dodaj nowy ekran: „ Nakładka danych OpenLayers

  19. Format :

    • Ustawienia> Zastosuj te warstwy otwierające (zastąpienie)> Źródła danych mapy: WKT> Pole WKT: Geofield> Pole opisu>> Zastosuj (ten ekran)
  20. Zapisz widok

  21. Iść do admin/structure/openlayers/maps

  22. Sklonuj domyślną mapę

  23. Informacje ogólne> Nazwa: mapa_miejsca. Tytuł: Mapa lokalizacji> Opis mapy: Jest to domyślna mapa lokalizacji.

  24. Warstwy i style> Warstwy nakładek (wybierz widok, który właśnie utworzyliśmy) Lokalizacje „Włączone” „Aktywowane” Zrób to samo dla symbolu zastępczego dla Geofield Formatter

  25. Zachowania> Pop Up (trzeba wrócić i „Wybierz warstwę, aby zastosować wyskakujące okienka”. Później)> Powiększ do warstwy „Wybierz warstwę, aby powiększyć po załadowaniu mapy” > Punkt Zoom Level: 20 ****

  26. Zapisz mapę

  27. Wróć do widoku, który właśnie utworzyliśmy

    • admin/structure/views/view/proximity_search/edit
  28. Dodaj wyświetlany „Strona”

    • Ścieżka: /locator
    • Format: Mapa OpenLayers> Zastosuj (ten ekran)> Mapa: Mapa lokalizacji (ta, którą właśnie utworzyliśmy w OpenLayers)> Zastosuj
  29. Zapisz widok (Powinniśmy teraz zobaczyć naszą mapę w okienku podglądu u dołu naszego widoku, z dowolną zawartością testową

  30. Dodaj ekran: „załącznik”

    • Format: Tabela> Zastosuj (ten ekran)
    • Załącz do: strony
    • Dziedzicz odsłonięte filtry: Tak
    • Usuń nagłówek> Globalny: obszar tekstowy> Zastosuj (ten ekran)
    • Elementy do wyświetlenia: Wyświetl określoną liczbę elementów | 5 pozycji
    • Pager dziedziczenia: tak
    • Renderuj pager: Tak
  31. Zapisz widok

  32. Zachowania> Pop Up> Warstwy> bliskość_wyszukiwania_openlayers_1 (widoki Mapa Openlayers, którą właśnie utworzyliśmy)

  33. Powiększ do warstwy> Przybliża do rozmiaru danej warstwy podczas wczytywania mapy. >proximity_search_openlayers_1

  34. Wróć do admin/structure/types/manage/location/display> kliknij ikonę koła zębatego i zmień Preset ustawień otwartych warstw na właśnie utworzoną mapę lokalizacji > Aktualizuj> Zapisz

Voila! Gotowy


1
odpowiedź jest tak szczegółowa, że ​​chcę wręczyć nagrodę i automatycznie ją wynagrodzić: D Spróbuję teraz wykonać kroki i dam znać, jak to działa
F1234k

To nie tylko odpowiedź, to samouczek :)
Codium

+1, ale ważne jest, aby pamiętać, że ol_locatorfunkcja może być wadliwa w przypadku nowszych wersji modułów i nie ma w niej żadnych ograniczeń numerów wersji. Doświadczyłem tego (niestety). Ale twoja odpowiedź jest naprawdę bardzo szczegółowa.
Sk8erPeter,

Jeśli moduł jest wadliwy, prosimy o umieszczenie go w kolejce problemów mojego modułu z dokładnie tym, co nie działa (pełne szczegóły). Nie mam problemu z naprawieniem problemów, ale muszę o nich wiedzieć. :)

Właśnie przetestowałem OpenLayers Locator i działa bardzo dobrze i zgodnie z reklamą. Dzięki @nicoz.
Nigel Waters,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.