Liedtke.IT

Beratung - Projektmanagement – Programmierung – Support

Home  |   Biete  |   Website warum?  |   Produkte  |   Open Source  |   Kontakt  |   Impressum/Datenschutz
Umkreissuche mit Hilfe der OpenGeoDB

Mit Hilfe der OpenGeoDB ist es möglich, zu einem Ort, alle Orte in einem bestimmten Umkreis zu finden. Für eine Suche werden Longitude (geographische Länge) und Latitude (geographische Breite) des Standortes benötigt. Eine Suche aller Orte in einem Umkreis von 10 km um den Punkt lat=54 und lon=10 kann mit dem folgenden SQL-Statement gegen die Datenbank erfolgen:

SELECT plz, name AS ort,
ACOS( SIN(RADIANS(lat)) * SIN(RADIANS(54)) + COS(RADIANS(lat)) * COS(RADIANS(54)) * COS(RADIANS(lon) - RADIANS(10)) ) * 6380 AS distance
FROM geodaten
WHERE ACOS( SIN(RADIANS(lat)) * SIN(RADIANS(54)) + COS(RADIANS(lat)) * COS(RADIANS(54)) * COS(RADIANS(lon) - RADIANS(10)) ) * 6380 < 10
ORDER BY distance


Das Ergebnis kann man hier betrachten.

Wie kommt man zu den Daten von Longitude und Latitude? Eine Möglichkeit ist, man nimmt Postleitzahl und/oder Ort und sucht damit in der OpenGeoDB.

Wenn man den eigenen Standort halbwegs genau wissen möchte, reicht etwas Javascript. Die Funktion navigator.geolocation weist den Browser an, mit Hilfe von IP-Adresse und, wenn vorhanden, der empfangbaren WLAN-Netze, die Daten für Longitude und Latitude zu ermitteln. Wird diese Funktion aussgeführt, bittet der Browser jedoch zuvor um Erlaubnis. Probieren Sie es aus




Weiter