Google-Maps
Für den Fall das Sie die OpenImmo-Erweiterung als PRO Version nutzen, müssen Sie ggf. einen Google-Maps API-Key beantragen und hinterlegen. Dazu wechslen Sie auf die folgende Website und melden sich mit Ihrem Google-Konto an: https://console.cloud.google.com/apis/credentials
Wenn dies geschehen ist klicken Sie auf Create credentials -> Api Key.
Sofern Sie hier noch kein API-Projekt bei Google angelegt haben, fordert Google Sie nun auf eines anzulegen. Wenn der Key erfolgreich erstellt wurde, wird ihnen dieser angezeigt.
Dann klicken sie auf Restrict key. In der folgenden Ansicht wählen sie unter Application restrictions den Punkt HTTP referrers (websites)
und tragen bei Website restrictions ein neues Item für Ihre Domain ein. Für die www.typo3-openimmo.de müsste hier im Feld Restrict key usage requests to the specified websites: *.typo3-openimmo.de/*
stehen.
Darunter (API restrictions) verknüpfen sie Bibliotheken mit dem gerade erstellen API-Schlüssel. Dies wären die Google Maps JavaScript API, die Geocoding API und die Google Places API Web Service, welche wir für die Points of interest benötigen. Gegebenenfalls müssen sie diese erst im Menüpunkt "Library" für ihr Projekt aktivieren. Zum Schluss klicken sie auf Save.
Den gerade generierten API-Schlüssel müssen jetzt noch in Ihrem TYPO3 bekannt machen, damit die OpenImmo-Erweiterung diesen nutzen kann. Dafür weisen Sie den API-Key einfach der folgenden TypoScript-Konstante zu:
themes.configuration.extension.openimmo.googleMaps.apiKey = abc-xyz-...
Jetzt müssen Sie nur noch dafür sorgen, das die erforderlichen JavaScript-Bibliotheken in TYPO3 eingebunden werden. Für diese Aufgabe ist die nächste TypoScript-Konstante vorhanden:
themes.configuration.extension.openimmo.googleMaps.rootlinePages = 123,666,...
In dieser geben Sie einfach komma-separiert alle Seiten-Uids an, auf denen Sie eine Google-Maps Karte nutzen. Da es sich bei der in der Konstante angegebenen Seiten-Uids um sogenannte rootline pages handelt, können Sie auch ganze Seitenzweige angeben. Würden Sie beispielsweise hier die Wurzelseite Ihrer Website angeben, so würden die Google-Maps Bibliotheken auf allen Seiten eingebunden werden.
Standard Geo-Koordinaten
Manchmal kommt es vor, das eine Google-Karte angezeigt wird, es aber aktuell keinen Fokus-Punkt gibt. Für diesen Fall können Sie standard Geo-Koordinaten angeben, die immer dann verwendet werden wenn es keinen Ort zum Anzeigen gibt.
plugin.tx_openimmo {
settings {
googleMaps {
defaultGeoCoordinates {
# Default latitude for google maps
latitude = 51.4925921
# Default latitude for google maps
longitude = 7.4496687
}
}
}
}
Ermittlung der Geo-Koordinaten
Manchmal kann es vorkommen, das die verwendete Kunden-Software keine Geo-Koordinaten überträgt. Um auch in diesem Fall die Google-Karten nutzen zu können, ermöglicht es die OpenImmo-Erweiterung die Geo-Koordinaten anhand der Adresse zu ermitteln. Dafür sind folgende TypoScript-Einstellungen vorhanden:
plugin.tx_openimmo {
settings {
googleMaps {
fetchGeoCoordinates {
# Uses country and postal code for grabbing geo location
# But only when there are no geo coordinates available!
active = 1
# Save the grabbed geo coordinates in Immobilie record
# That's recommend, because of Google-Maps API restrictions and better performance.
save = 1
# API-Key for serverside requests (protected by IP address)
apiKey = {$themes.configuration.extension.openimmo.googleMaps.fetchGeoCoordinates.apiKey}
# Immobilie fields, which are used for fetching the geo coordinates
useFields {
# Multiple fields - the key identifies the immobilie node identifier.
# Search string is build in giving order.
# If you don't need such a detailed marker, set some values to 0.
geo_land_isoLand = 1
geo_plz = 1
geo_ort = 1
geo_regionalerZusatz = 1
geo_strasse = 1
geo_hausnummer = 1
}
# Convert country codes to country label (for fetching geo coordinates)
isoToCountry {
DEU = Deutschland
AUT = Östereich
CHE = Schweiz
}
report {
email = {$themes.configuration.extension.openimmo.googleMaps.fetchGeoCoordinates.report.email}
subject = {$themes.configuration.extension.openimmo.googleMaps.fetchGeoCoordinates.report.subject}
}
}
}
}
}
Dabei ist zu beachten, das die Geo-Koordinaten anhand der aktivierten useFields
-Parameter ermittelt werden. Das heißt es wird je nach Einstellung nicht der genaue Punkt der Immobilie genommen, so dass mögliche Interessenten nicht direkt dort hinfahren können. Des Weiteren muss ein zusätzlicher API-Key bereitgestellt werden, welcher eine Beschränkung nach IP-Adresse besitzt (nicht nach HTTP-Referrer) - es muss die Places und Geocoding API erlaubt werden. Um einen Report zu erhalten, falls mal eine Adresse nicht richtig ermittelt werden kann, kann eine E-Mailadresse hinterlegt werden an die bei jeder Ermittlung eine Mail geschickt wird.
Clustering der Übersichtskarte
Wenn Sie über sehr viele nah bei einanderliegende Immobilien verfügen, macht es Sinn das Marker-Clustering zu aktivieren. Mit dem Marker-Clustering werden nah aneinanderliegende Marker gruppiert und mit einer Zahl versehen. Wird dieser Gruppierungs-Marker angeklickt, so wird an dieser Stelle in die Karte gezoomt, so dass die Gruppierung aufgelöst werden kann.
Die Konfiguration des Clustering erfolgt mit Hilfe von TypoScript:
plugin.tx_openimmo {
settings {
googleMaps {
clustering {
# Activate/deactivate clustering
active = 0
# Path for clustering images
imagePath = typo3conf/ext/openimmo_pro/Resources/Public/Images/MapClustering/m
}
}
}
}
Weitere Konfigurationen finden Sie im Setup-TypoScript.
Points of interest
Für die Verwendung der Points of interest benötigt Ihr Google-Maps API-Key Zugriff auf die Places-API.
Bitte Berücksichtigen Sie, das die Places-API von Google eine Begrenzung von 60 Orten pro Anfrage hat. D.h. wenn in Ihrem angegebenen Radius nicht alle Orte gefunden werden, kann es sein das dieses Limit erreicht wurde. Sie müssten dann den Radius verkleinern.
Den Radius für die Points of interest können Sie mit Hilfe von TypoScript anpassen:
plugin.tx_openimmo {
settings {
googleMaps {
pointsOfInterest {
# Radius in meter
radius = 500
}
}
}
}
Die angebotenen Orts-Typen können Sie ebenfalls via TypoScript konfigurieren. Welche Typen es gibt können Sie hier nachlesen: https://developers.google.com/places/supported_types?hl=de
Die Definition sieht wie folgt aus:
plugin.tx_openimmo {
settings {
googleMaps {
pointsOfInterest {
available {
# Key for google place identifier
grocery_or_supermarket {
# Label für den Button
label = Supermärkte
# Inhalt des Markers
innerHtml = <i class="fa fa-shopping-cart"></i>
}
restaurant {
label = Restaurants
innerHtml = <i class="fa fa-cutlery"></i>
}
# ..weitere Einträge
}
}
}
}
}
Datenschutz
Wenn Sie es mit dem Datenschutz sehr genau nehmen und die Google-Karte erst anzeigen möchten, wenn der Besucher etwas bestätigt hat, ist dies auch möglich. Wenn die Nutzung der Google-Karten noch nicht bestätigt wurde, binden Sie die Google-Bibliotheken einfach gar nicht ein (dies könnte mit einer TypoScript-Condition passieren, welche ein Cookie abprüft). Erst wenn die Nutzung bestätigt wurden und die Google-Bibliotheken gefunden wurden, werden die Karten von der Openimmo-Erweiterung initialisiert.