Navigator: Geolocation und getCurrentPosition

Javascript Geolocation getCurrentPosition

Die Geolocation ist die Basis für die Positionsbestimmung in mobilen Apps und unterliegt besonderen Vorkehrungen zur Wahrung der Privatsphäre: Bevor der Browser die Daten herausgibt, wird der Benutzer um Erlaubnis gefragt.

getCurrentPosition() gibt die Koordinaten zurück.

23-02-02 SITEMAP CSS HTML JS Basis JS Web Tutorial SVG

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.

Abfrage, ob Geolocation zugelassen

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.