Benötigen Sie eine einfache Google Maps-Lösung? im Labyrinth der Module verloren

15

Lassen Sie mich zunächst feststellen, dass es mir egal ist, welche Version von Drupal ich verwenden muss (6 oder 7). Ich habe Erfahrung mit beiden Versionen, die ich bisher nur nicht mit Google Maps arbeiten musste. Die Anforderungen sind ziemlich einfach (soweit ich weiß):

1) Haben Sie einen Knoten für jede Firma, die ich in der Karte hinzufügen möchte

2) Im Knotenbearbeitungsformular möchte ich eine Adresse hinzufügen und sie in eine benutzerdefinierte Google Map einfügen (oder den Link eines Google Map-Standorts kopieren und einfügen).

3) Haben Sie eine Suchfunktion, um die nächste Firma für einen bestimmten Ort zu finden

Es gibt Unmengen verschiedener Module, und ich würde gerne in die richtige Richtung weisen, anstatt mehr als 15 verschiedene Module zu durchsuchen, um endlich zu erkennen, dass ich ein benutzerdefiniertes Modul für mich selbst schreiben muss.

Danke im Voraus.

F1234k
quelle

Antworten:

36

Ich habe eine Drupal-Funktion erstellt, die dies mithilfe von OpenLayers implementiert (siehe http://drupal.org/project/ol_locator ), oder Sie können die folgende Anleitung verwenden, um Ihre eigene einzurichten.

  1. Laden Sie die folgenden Module herunter und aktivieren Sie sie:

  2. Submodule aktivieren:

    • Geofield Map 7.x-1.0-alpha5
    • Ansichten Benutzeroberfläche 7.x-3.0-rc1
    • OpenLayers UI 7.x-2.0-alpha2
    • OpenLayers Views 7.x-2.0-alpha2
  3. Gehen Sie zu admin/structure/types/addund erstellen Sie einen neuen Inhaltstyp mit dem Namen " Location".

  4. Gehen Sie zu admin/structure/types/manage/location/fieldsund fügen Sie die folgenden Felder hinzu:

    • Bezeichnung: Adresse> Feldname: Adresse> Feldtyp: Postanschrift> Widget: Dynamisches Adressformular
  5. Wählen Sie aus der Liste die verfügbaren Länder aus, die Sie bevorzugen. Leer lassen, um alle zuzulassen.

  6. Häkchen bei "Adressformular (länderspezifisch)"

    • Hinweis: Die Länder und die zugehörigen Felder werden vom Modul Adressfeld verwaltet. Wenn Sie Ihr Land nicht sehen oder wenn es nicht die entsprechenden Felder nicht haben , müssen Sie ein Problem in Datei mit dem Modul http://drupal.org/project/addressfield (Überprüfen Sie , ob es ein Problem in der Warteschlange über Ihre fehlendes Land vor dem Posten)
  7. Bezeichnung: Geofield> Feldname: Geofield> Feldtyp: Geofield> Widget: Geocode aus einem anderen Feld

  8. admin/structure/types/manage/ol_locator_location/displayWechseln Sie zu und ändern Sie die DefaultAnzeige für Geofield:

    • Bezeichnung: Versteckt> Format: OpenLayers
  9. Klicken Sie auf das Zahnradsymbol und wählen Sie Folgendes aus:

    • OpenLayers-Voreinstellung: Geofield Formater-Karte> Datenoptionen: Volle Geometrie verwenden
  10. Gehen Sie zu admin/structure/openlayers/layers/settingsund legen Sie Folgendes fest:

    • Google Maps API-Version: v3.2
  11. Lassen Sie uns testen, ob die Geokodierung funktioniert, indem Sie einen Teststandort erstellen

    • Stellen Sie beim Erstellen eines Testinhaltstyps sicher, dass Sie eine gut etablierte Adresse verwenden. Wenn Google Ihre Adresse nicht kennt, wird Ihre neue Website auch nicht angezeigt.
  12. Gehen Sie zu admin/structure/views/addund erstellen Sie eine neue Ansicht mit den folgenden Informationen

    • Anzeigename: Umgebungssuche> Beschreibung: Zeigt geocodierte Orte auf einer dynamischen Karte an, damit Benutzer Umgebungssuchen durchführen können. > Anzeigen: Inhalt des Typs: Ort sortiert nach: Unsortiert> Fortfahren und bearbeiten
  13. Fügen Sie die folgenden Felder hinzu und behalten Sie ihre Standardwerte bei, sofern nicht anders angegeben:

    1. Inhalt: Titel > Abhaken Label erstellen: "Titel"
    2. Inhalt: Adresse (Adresse)
    3. Inhalt: Geofield (Geofield)> Von der Anzeige ausschließen
    4. Nähe: Entfernung (Distance)
  14. Fügen Sie die folgenden Filterkriterien zu den vorhandenen hinzu:

    • Inhalt: Veröffentlicht (Ja) und
    • Inhalt: Typ (= Ort)
    • Nähe: Großkreis (exponiert)> Exponieren Sie diesen Filter für Besucher, damit diese ihn ändern können.> Bezeichnung: Nähe> Fügen Sie dem Feld Wert "10" hinzu
  15. Kopfzeile > Global: Textbereich> Anzeigen, auch wenn die Ansicht kein Ergebnis liefert

    • "Finden Sie einen Ort in Ihrer Nähe. Sie können anhand Ihrer Stadt, Ihres Bundeslandes oder einer Postleitzahl suchen."
  16. Kein Ergebnisverhalten > Global: Textbereich und fügen Sie Folgendes hinzu:

    • "Es wurden leider keine Ergebnisse gefunden.
      1.) Überprüfen Sie die Richtigkeit Ihrer Postleitzahl.
      2.) Überprüfen Sie die Rechtschreibung Ihrer Stadt, Ihres Bundeslandes oder Ihrer Provinz.
      3.) Erhöhen Sie die Entfernung in der Nähe."
  17. Text der Schaltfläche senden : Suchen

  18. Neue Anzeige hinzufügen : " OpenLayers Data Overlay "

  19. Format :

    • Einstellungen> Diese OpenLayer anwenden (überschreiben)> Kartendatenquellen: WKT> WKT-Feld: Geofield> Beschreibungsfeld>> Anwenden (diese Anzeige)
  20. Speichern Sie die Ansicht

  21. Gehe zu admin/structure/openlayers/maps

  22. Klonen Sie die Standardkarte

  23. Allgemeine Informationen> Name: location_map. Titel: Standortkarte> Kartenbeschreibung: Dies ist die Standard-Standortkarte.

  24. Ebenen & Stile> Ebenen überlagern (wählen Sie die gerade erstellte Ansicht aus) Positionen "Aktiviert" "Aktiviert" Machen Sie dasselbe für Platzhalter für Geofield Formatter

  25. Verhalten> Popup (muss erneut aufgerufen werden und "Ebene auswählen, auf die Popups angewendet werden sollen" )> Auf Ebene zoomen "Wählen Sie die Ebene aus, auf die beim Laden der Karte gezoomt werden soll" > Zoomstufe: 20 ****

  26. Speichern Sie die Karte

  27. Kehren Sie zu der gerade erstellten Ansicht zurück

    • admin/structure/views/view/proximity_search/edit
  28. Anzeige "Seite" hinzufügen

    • Pfad: /locator
    • Format: OpenLayers-Karte> Anwenden (diese Anzeige)> Karte: Positionskarte (die soeben in OpenLayers erstellte Karte)> Anwenden
  29. Speichern Sie die Ansicht (Wir sollten jetzt unsere Karte im Vorschaufenster am unteren Rand unserer Ansicht mit allen Testinhalten sehen

  30. Anzeige hinzufügen: "Anhang"

    • Format: Tabelle> Anwenden (diese Anzeige)
    • Anhängen an: Seite
    • Freiliegende Filter erben: Ja
    • Kopfzeile entfernen> Global: Textbereich> Übernehmen (diese Anzeige)
    • Anzuzeigende Elemente: Zeigt eine festgelegte Anzahl von Elementen an 5 Artikel
    • Pager erben: Ja
    • Pager rendern: Ja
  31. Ansicht speichern

  32. Verhalten> Pop Up> Ebenen> proximity_search_openlayers_1 (Die soeben erstellte Ansichts-Openlayers-Karte)

  33. Auf Ebene zoomen> Zoomt beim Laden der Karte auf die Ausdehnung einer bestimmten Ebene. >proximity_search_openlayers_1

  34. Wieder zurück zu admin/structure/types/manage/location/display> klicken Sie auf das Zahnradsymbol und ändern Preset Open Layers auf den Lageplan , dass wir gerade erstellt> Update> Speichern

Voila! Erledigt

mrP
quelle
1
Ihre Antwort ist so detailliert, dass ich ein Kopfgeld setzen und es Ihnen automatisch belohnen möchte: D Ich werde die Schritte jetzt ausprobieren und Sie wissen lassen, wie es funktioniert hat
F1234k
Es ist nicht nur eine Antwort, es ist ein Tutorial :)
Codium
+1, aber es ist wichtig zu beachten, dass die ol_locatorFunktion mit neueren Versionen von Modulen fehlerhaft sein kann und keine Versionsnummernbeschränkungen enthält. Ich habe es (leider) erlebt. Aber Ihre Antwort ist wirklich sehr detailliert.
Sk8erPeter
Wenn das Modul fehlerhaft ist, posten Sie es bitte in der Problemwarteschlange meines Moduls mit genau dem, was nicht funktioniert (vollständige Details). Ich habe keine Probleme, die Probleme zu beheben, aber ich muss über sie Bescheid wissen. :)
Ich habe gerade OpenLayers Locator ausprobiert und es funktioniert sehr gut und wie angekündigt. Danke @nicoz.
Nigel Waters
2

Verwenden Sie ein einfaches Google Maps- Modul. Es ist sehr einfach und leicht zu bedienen.

Niks
quelle