Geo-Entfernung
Das Attribut „Geo-Entfernung“ berechnet bei einer Umkreissuche die geografische Entfernung zwischen dem gespeicherten Koordinatenpaar eines Items und einem Suchpunkt. Das Ergebnis ermöglicht die Sortierung von Listen nach Entfernung. Typische Einsatzbereiche:
Händler- oder Filialsuche („Finde alle Händler im Umkreis von 50 km“)
Veranstaltungssuche nach geografischer Nähe
Sortierung von Ergebnissen nach Entfernung zum Standort des Nutzers
Das Attribut selbst speichert keine eigenen Datenwerte, sondern liest Koordinaten aus anderen Attributen des MetaModels (Breiten- und Längengrad) und berechnet die Entfernung auf Anfrage.
Siehe auch
Im Kochbuch:
Installation
Das Attribut wird über den Contao Manager oder Composer installiert:
composer require metamodels/attribute_geodistance
Einstellungen beim Anlegen des Attributs
Das Attribut bietet folgende spezifische Einstellungen, die in zwei Gruppen aufgeteilt sind:
Parameter
Option |
Beschreibung |
|---|---|
GET-Parameter für Adresse |
Name des URL-GET-Parameters, über den die Suchadresse übergeben wird
(z. B. |
Ländervorgabe |
Legt fest, wie das Land für die Adressauflösung ermittelt wird:
|
Daten
Option |
Beschreibung |
|---|---|
Datenmodus |
Legt fest, wie die Geokoordinaten in den MetaModels-Attributen gespeichert sind:
|
LookUp-Services |
Mehrspaltiger Assistent zur Konfiguration der Dienste, die eine Adresse in Geokoordinaten umwandeln. Verfügbare Dienste (je nach Installation):
Für Dienste, die einen API-Token benötigen, kann dieser im Feld „API Token“ eingetragen werden. |
Einstellungen bei den Render-Einstellungen
Das Attribut besitzt keine eigenen Render-Einstellungen. In der Attributliste einer Render-Einstellung stehen die üblichen Optionen zur Verfügung:
Option |
Beschreibung |
|---|---|
Template |
Auswahl eines eigenen Templates für die Ausgabe des Entfernungswerts. |
CSS-Klasse |
Optionale CSS-Klasse, die dem Ausgabeelement hinzugefügt wird. |
Einstellungen bei der Eingabemaske
Das Geo-Entfernung-Attribut erscheint nicht als editierbares Eingabefeld in der Eingabemaske — der Entfernungswert wird dynamisch berechnet und ist schreibgeschützt.
Filterregeln
Das Attribut wird typischerweise zusammen mit der Filterregel „Umkreissuche“
(aus dem Paket filter_perimetersearch) verwendet:
Filterregel |
Hinweis |
|---|---|
Umkreissuche |
Filtert Items anhand eines geografischen Umkreises um eine eingegebene Adresse. Das Geo-Entfernung-Attribut stellt dabei die berechneten Entfernungswerte zur Verfügung, nach denen anschließend sortiert werden kann. |
Sonderfunktionen
Berechnung
Die Entfernung zwischen Suchpunkt und gespeichertem Koordinatenpaar wird mit der Haversine-Formel berechnet, die die Erdkrümmung berücksichtigt. Das Ergebnis steht im Template als Entfernungswert (in km oder Meilen) zur Verfügung.
Caching
Aufgelöste Koordinaten (Adresse → Lat/Lng) werden in der Tabelle
tl_metamodel_perimetersearch zwischengespeichert, um wiederholte
API-Anfragen zu vermeiden.
Speicherung
Das Attribut legt keine eigene Spalte in der MetaModel-Tabelle an. Es liest die Koordinaten aus den konfigurierten Quellattributen und berechnet die Entfernung zur Laufzeit.
Sortierung nach Entfernung
Die berechneten Entfernungswerte können als Sortierkriterium in der MetaModels-Listensicht verwendet werden, sodass die nächstgelegenen Ergebnisse oben erscheinen.