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.

18-12-15 SITEMAP

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.

dieseseite.de möchte: Ihren Standort abrufen Blockieren Zulassen

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.