Umkreissuche

Umkreissuche mit Geokoordinaten
 

Umkreissuche mit PHP

Umkreissuche mit Geokoordinaten

SQL Abfrage für Umkreissuche

Das Beispiel zeigt eine einfache SQL Abfrage für eine Suche im Umkreis von 25 km. Die Variablen $breite und $laenge sind die Geokoordinaten des Standortes, um den herum gesucht werden soll.


$umkreis=25;//Umkreis von 25 km
$sql ="Select * from TABELLE where acos(sin(breite* PI( ) /180)*sin($breite* PI( ) /180)+cos(breite* PI( ) /180)*cos($breite* PI( ) /180)*cos($laenge* PI( ) /180-laenge* PI( ) /180))*6378<$umkreis"

Für TABELLE verwenden Sie den Name ihrer SQL Tabelle. Ordnen Sie $breite und $laenge die Latitude und die Longitude des Ortes zu, um den herum sie suche möchten. Als Ergebnis der Umkreissuche erhält man ein Array (sofern man nicht versehentlich Laengengrad und Breitengrad des Ortes vertauscht hat, um den man herum suchen möchte).

Geotags helfen Google bei der Suche

Formel für Entfernungsberechnung

Allgemeine Formeln

Erdoberfläche ist gekrümmt

Das Problem der Entfernungsberechnung auf der Erdoberfläche ist, dass die Erde bekanntlich eine abgeflachte Kugel ist. Man muss vor der Berechnung also entscheiden, ob man die Krümmung in die Berechnung einfliessen lässt, oder nicht.

Umkreissuche mit Geokoordinaten

Einfache Entfernungsberechnung

Für die Berechnung der Entfernung in Deutschland könnte man die Krümmung der Erdoberfläche vernachlässigen. Für eine einfache Umgebungssuche könnte man hier auf den Satz des Pythagoras a² + b² = c² zurückgreifen. Das benötigt weniger Rechenzeit, was bei größeren Datenmengen sicherlich vorteilhaft ist.

Genauere Entfernungsberechnung

Etwas komplexer wird die Entdernungsberechnung, wenn man die Krümmung der Erdoberfläche berücksichtigt. Längengrade und Breitengrade müssen dazu im Bogenmaß angegeben werden. Die Umrechung des dezimalen Formats in das Bogenmaß erfolgt über die Formel Grad / 180 x Π (≈ 3,141). Daraus ergibt sich die Formel, die wir im obigen Beispiel verwendet haben:

Entfernung=arccos( sin(latB)·sin(latA) + cos(latB)·cos(latA)·cos(lonB-lonA) ) * Erdradius

 

Geodaten zum kostenlosen Download

Auflistung der verfügbaren Geodaten nach Ländern
Die Datensätze mit den Geodaten für die einzelnen Länder stehen sofort kostenlos als CSV Datei zum Download bereit.