Geolocation prüfen
Wenn der Benutzer die Auskunft verweigert, kommt eine Fehlermeldung zurück. Der Browser muss beim Besucher rückfragen, bevor er die Daten – Longitude und Latitude – herausgeben darf.
Vorsichtshalber sollte auch geprüft werden, ob der Browser Geolocation unterstützt.
Ab Chrome 50 wird die Schnittstelle zur Geolocation nur noch auf HTTPS-Seiten funktionieren. Auf unverschlüsselten Seiten (HTTP) wird Geolocation keine Daten liefern.
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition); } else { x.innerHTML = "Geolocation wird nicht unterstützt"; }
Latitude / Longitude
Bei Desktop-Rechnern im Cityumfeld kann das WiFi zur Positionsbestimmung herangezogen werden und liefert bis auf 1000 Meter akkurate Daten. Ortsinformationen auf IP-Basis sind weniger exakt. Mobilgeräte gleichen die Signale von drei Satelliten im GPS zeitlich ab (Lateration / Trilateration) und können unter freiem Himmel bis auf 10 Meter genaue Standortdaten liefern.
if (navigator.geolocation) { navigator.geolocation.getCurrentPosition( function (position) { latitude = position.coords.latitude; longitude = position.coords.longitude; if (position.coords.altitude) { altitude = position.coords.altitude; } else { altitude = ' Keine Höhenangaben vorhanden '; } geoinfo.innerHTML = 'Latitude ' + latitude + '
Longitude ' …; }); } else { geoinfo.innerHTML = 'Dieser Browser unterstützt die Abfrage der Geolocation nicht.'; }
Wer jetzt den Standort nicht als Latitude und Longitude braucht, sondern z.B. als Köln, Venlo oder Le Buffet du Jardin in Antananarivo auf Madagaskar, braucht etwas wie Nominatim – Reverse Search
https://nominatim.openstreetmap.org/reverse.php?format=html&lat=-18.9100122&lon=47.52558&zoom=18
geolocation.getCurrentPosition
navigator.geolocation.getCurrentPosition gibt den Standort zurück, wenn der Benutzer den Zugriff ausdrücklich erlaubt:
- coords.latitude
- Latitude als Dezimalzahl
- coords.longitude
- Longitude als Dezimalzahl
- coords.altitude
- Altitude – Meter über Meeresspiegel
- coords.accuracy
- Genauigkeit der Angaben
- coords.altitudeAccuracy
- Genauigkeit der Webweichung
- coords.heading
- Grad Abweichung von Nord
- coords.speed
- Meter pro Sekunden
- timestamp
- ein Date-Objekt
Entfernung zwischen zwei Orten
Mit den Standortangaben Latitude und Longitude kann Javascript die Entfernung zwischen zwei Orten berechnen – allerdings natürlich nur Luftlinie.
Kurz und einfach: Calculate distance, bearing and more between Latitude/Longitude points
geolocation.watchPosition() und clearWatch
watchPosition() registriert einen Event Handler, der automatisch Positionsänderungen meldet. Der Aufruf von clearWatch cancelt einen vorangegangenen Aufruf von watchPosition.