Wie integriere ich Google Maps in das Medienverzeichnis?
Das Medienverzeichnis erlaubt die Anzeige der erfassten Einträge auf einer Google Maps Karte.
API-Key einrichten
Für den Einsatz von Google Maps im Medienverzeichnis muss vor der Inbetriebnahme ein Google Maps API-Key erworben und bei den Grundeinstellungen hinterlegt werden.
Informationen dazu sind in der https://developers.google.com/maps/faq#using-google-maps-apis aufzufinden. Gehen Sie für die Einrichtung des API-Schlüssels wie folgt vor:
Erwerben Sie einen API-Key für Google Maps gemäss Dokumentation. Wichtig: Der API-Schlüssel muss Zugriff auf die APIs Maps JavaScript API und Geocoding API haben, damit die Integration im Medienverzeichnis korrekt funktioniert. Die Geocoding API wird für die Auflösung von Adressen zu Koordinaten (in der Erfassungsmaske) benötigt. Beispiel: API-Schlüssel Konfiguration bei Google
Nachdem Sie einen API-Key für Google Maps erworben haben, öffnen Sie den Bereich Administration > Grundeinstellungen > System > Mehr.
Hinterlegen Sie bei der Option Google Maps API-Schlüssel den API-Key.
Speichern Sie die getätigte Konfiguration:
Google Maps aktivieren
Die Verwendung von Google Maps zur Darstellung der erfassten Einträge auf einer Karte kann pro Formular individuell aktiviert werden:
Öffnen Sie den Bereich Medienverzeichnis > Einstellungen > Formularvorlagen.
Wählen Sie die gewünschte Formularvorlage aus, von welchem Sie die Einträge auf einer Google Maps Karte anzeigen lassen möchten und öffnen Sie dieses in der Bearbeitungsmaske. Alternativ kann auch ein neues Formular angelegt werden.
Fügen Sie ein neues Formularfeld durch Betätigung der Schaltfläche Feld hinzufügen hinzu: Wie definiere ich eine Datenstruktur einer Formularvorlage?.
Geben Sie dem Feld einen Namen (Feldname) und wählen den Feldtyp Google Map aus:
Speichern Sie die Änderung am Formular durch Betätigung der Schaltfläche Speichern
Einträge auf Karte platzieren
Erfassen oder Bearbeiten Sie nun Einträge des mit Google Maps erweiterten Formular. Bei der Bearbeitungsmaske wird beim entsprechenden Google Maps-Feld folgende Eingabemaske angezeigt:
Die Erfassung des Standortes via Adresse
Falls die Adresse des Eintrages bekannt ist, kann der Standort durch Eingabe der Felder Strasse und Hausnummer, Ort, PLZ und Betätigung der Schaltfläche Suchen gesetzt werden.
Die Erfassung des Standortes via Koordinaten
Falls die Koordinaten des Eintrages bekannt sind, kann der Standort durch Eingabe der Felder Längengrad, Breitengrad und Betätigung der ENTER-Schaltfläche gesetzt werden.
Die Erfassung des Standortes via Klick
Falls die genaue Adresse des Eintrages nicht bekannt ist, kann der Standort mittels drop and drop des Markers oder Klick an der gewünschten Stelle auf der Karte gesetzt werden.
Übersichtskarte im Frontend
Im Frontend kann eine Übersichtskarte angezeigt werden, welche alle entsprechenden Einträge enthält. Eine Übersichtskarte von ausgewählten Einträgen kann in den folgenden Bereich eingebunden werden:
Alle Einträge
Auf der spezifischen Anwendungsseite MAP (Anwendung: Medienverzeichnis / Bereich: map) kann mit dem Platzhalter[[MEDIADIR_GOOGLE_MAP]]
eine Google Maps Karte angezeigt werden, welche alle Einträge aus dem Medienverzeichnis enthält.Such-Resultate
Auf jeder Anwendungsseite des Medienverzeichnis, bei welcher die Such-Funktion eingebunden ist, kann mit dem Platzhalter[[MEDIADIR_SEARCH_GOOGLE_MAP]]
eine Google Maps Karte angezeigt werden, welche die von der Suche gefundenen Einträge enthält.Einträge einer Kategorie / Ebene
Auf jeder Anwendungsseite des Medienverzeichnis, bei welcher eine Kategorie oder Ebene ausgewählt ist, kann mit dem folgenden Block-Konstrukt eine Google Maps Karte angezeigt werden, welche die Einträge der ausgewählten Kategorie oder Ebene enthält:<!-- BEGIN mediadirCategoryLevelDetail --> [[MEDIADIR_CATEGORY_LEVEL_GOOGLE_MAP]] <!-- END mediadirCategoryLevelDetail -->
Standort-Karte auf Detailansicht im Frontend
Die Standort-Karte zeigt nur einen ausgewählten Eintrag an und steht zur Detailansicht eines Eintrages zur Verfügung. Die Google Maps Karte wird auf der Detailansicht über die normalen Platzhalter zur Anzeige des entsprechenden Formular-Feldes eingebunden.
Angenommen die ID des Formular-Feldes, welchem der Feldtyp Google Map zugewiesen wurde, ist 186
, dann wird die Google Maps Karte auf der Detailansicht wie folgt eingebunden:
<!-- BEGIN mediadir_inputfield_186 -->
[[MEDIADIR_INPUTFIELD_VALUE]]
<!-- END mediadir_inputfield_186 -->
Zugriff via API
Auf das Google Maps Objekt kann auf der Übersichtskarte wie folgt zugegriffen werden:
var map = cx.variables.get('map_1', 'mediadirGoogleMap');
Ist die Google Maps Karte auf der Detailansicht eines Eintrages eingebunden, so kann auf das Google Maps Objekt wie folgt zugegriffen werden:
Marker
Auf die Marker der Einträge kann im Frontend via JavaScript zugegriffen werden. Bei der Übersichtskarte kann auf die Marker wie folgt zugegriffen werden:
Ist die Google Maps Karte auf der Detailansicht eines Eintrages eingebunden, so kann auf die Marker wie folgt zugegriffen werden:
FIELD-ID und ENTRY-ID müssen durch die Formular-Feld-Id und ID des angezeigten Eintrages ersetzt werden.
mapMarkers ist ein Objekt, welches die Marker der jeweiligen Einträge als Kind-Elemente enthält. Die Kind-Elemente werden dabei über deren Eintrags-ID identifiziert. Beispiel:
Ein Marker Objekt verfügt über die folgenden Properties:
Property | Beschreibung |
---|---|
lat | Längengrad |
lon | Breitengrad |
info | HTML-Code für die Anzeige der Info-Box |
hideInfo | true falls die Info-Box bei der Initialisierung angezeigt werden soll. Ansonsten false |
click | JavaScript-Code (als String) welcher beim click-Event auf den Marker ausgeführt werden soll |
mouseover | JavaScript-Code (als String) welcher beim mouseover-Event auf den Marker ausgeführt werden soll |
mouseout | JavaScript-Code (als String) welcher beim mouseout-Event auf den Marker ausgeführt werden soll |
Jeder erfasste Eintrag wird mit einem Marker auf der Karte dargestellt:
© 2024 Cloudrexx AG | Schweizer Cloud CMS | Datenschutzerklärung