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.
Laden Sie die folgenden Module herunter und aktivieren Sie sie:
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
Gehen Sie zu admin/structure/types/add
und erstellen Sie einen neuen Inhaltstyp mit dem Namen " Location
".
Gehen Sie zu admin/structure/types/manage/location/fields
und fügen Sie die folgenden Felder hinzu:
- Bezeichnung: Adresse> Feldname: Adresse> Feldtyp: Postanschrift> Widget: Dynamisches Adressformular
Wählen Sie aus der Liste die verfügbaren Länder aus, die Sie bevorzugen. Leer lassen, um alle zuzulassen.
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)
Bezeichnung: Geofield> Feldname: Geofield> Feldtyp: Geofield> Widget: Geocode aus einem anderen Feld
admin/structure/types/manage/ol_locator_location/display
Wechseln Sie zu und ändern Sie die Default
Anzeige für Geofield:
- Bezeichnung: Versteckt> Format: OpenLayers
Klicken Sie auf das Zahnradsymbol und wählen Sie Folgendes aus:
- OpenLayers-Voreinstellung: Geofield Formater-Karte> Datenoptionen: Volle Geometrie verwenden
Gehen Sie zu admin/structure/openlayers/layers/settings
und legen Sie Folgendes fest:
- Google Maps API-Version: v3.2
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.
Gehen Sie zu admin/structure/views/add
und 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
Fügen Sie die folgenden Felder hinzu und behalten Sie ihre Standardwerte bei, sofern nicht anders angegeben:
- Inhalt: Titel > Abhaken Label erstellen: "Titel"
- Inhalt: Adresse (Adresse)
- Inhalt: Geofield (Geofield)> Von der Anzeige ausschließen
- Nähe: Entfernung (Distance)
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
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."
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."
Text der Schaltfläche senden : Suchen
Neue Anzeige hinzufügen : " OpenLayers Data Overlay "
Format :
- Einstellungen> Diese OpenLayer anwenden (überschreiben)> Kartendatenquellen: WKT> WKT-Feld: Geofield> Beschreibungsfeld>> Anwenden (diese Anzeige)
Speichern Sie die Ansicht
Gehe zu admin/structure/openlayers/maps
Klonen Sie die Standardkarte
Allgemeine Informationen> Name: location_map. Titel: Standortkarte> Kartenbeschreibung: Dies ist die Standard-Standortkarte.
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
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 ****
Speichern Sie die Karte
Kehren Sie zu der gerade erstellten Ansicht zurück
admin/structure/views/view/proximity_search/edit
Anzeige "Seite" hinzufügen
- Pfad:
/locator
- Format: OpenLayers-Karte> Anwenden (diese Anzeige)> Karte: Positionskarte (die soeben in OpenLayers erstellte Karte)> Anwenden
Speichern Sie die Ansicht (Wir sollten jetzt unsere Karte im Vorschaufenster am unteren Rand unserer Ansicht mit allen Testinhalten sehen
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
Ansicht speichern
Verhalten> Pop Up> Ebenen> proximity_search_openlayers_1 (Die soeben erstellte Ansichts-Openlayers-Karte)
Auf Ebene zoomen> Zoomt beim Laden der Karte auf die Ausdehnung einer bestimmten Ebene. >proximity_search_openlayers_1
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
ol_locator
Funktion 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.Verwenden Sie ein einfaches Google Maps- Modul. Es ist sehr einfach und leicht zu bedienen.
quelle