Suche…
Syntax
- navigator.geolocation.getCurrentPosition ( successFunc , failureFunc )
- navigator.geolocation.watchPosition ( updateFunc , failureFunc )
- navigator.geolocation.clearWatch ( watchId )
Bemerkungen
Die Geolocation-API erfüllt alle Erwartungen, die Sie erwarten könnten: Abrufen von Informationen zum Aufenthaltsort des Clients, dargestellt in Längen- und Breitengrad. Es ist jedoch Sache des Benutzers, zuzustimmen, seinen Standort zu vergeben.
Diese API ist in der W3C- Geolocation-API-Spezifikation definiert . Funktionen zum Erhalten von Bürgeradressen und zum Ermöglichen von Geofencing / Auslösen von Ereignissen wurden erforscht, sind jedoch nicht weit verbreitet.
So prüfen Sie, ob der Browser die Geolocation-API unterstützt:
if(navigator.geolocation){
// Horray! Support!
} else {
// No support...
}
Holen Sie sich den Breiten- und Längengrad eines Benutzers
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationFailure);
} else {
console.log("Geolocation is not supported by this browser.");
}
// Function that will be called if the query succeeds
var geolocationSuccess = function(pos) {
console.log("Your location is " + pos.coords.latitude + "°, " + pos.coords.longitude + "°.");
};
// Function that will be called if the query fails
var geolocationFailure = function(err) {
console.log("ERROR (" + err.code + "): " + err.message);
};
Weitere beschreibende Fehlercodes
Falls die Geolocation fehlschlägt, empfängt Ihre Rückruffunktion ein PositionError
Objekt. Das Objekt enthält ein Attribut namens code
mit einem Wert von 1
, 2
oder 3
. Jede dieser Zahlen weist auf eine andere Art von Fehler hin. Die Funktion getErrorCode()
unten nimmt PositionError.code
als einziges Argument und gibt einen String mit dem Namen des aufgetretenen Fehlers zurück.
var getErrorCode = function(err) {
switch (err.code) {
case err.PERMISSION_DENIED:
return "PERMISSION_DENIED";
case err.POSITION_UNAVAILABLE:
return "POSITION_UNAVAILABLE";
case err.TIMEOUT:
return "TIMEOUT";
default:
return "UNKNOWN_ERROR";
}
};
Es kann in geolocationFailure()
wie folgt verwendet werden:
var geolocationFailure = function(err) {
console.log("ERROR (" + getErrorCode(err) + "): " + err.message);
};
Erhalten Sie Updates, wenn sich der Standort eines Benutzers ändert
Sie können auch regelmäßige Updates des Standortes des Benutzers erhalten. Zum Beispiel, wenn sie sich bewegen, während sie ein mobiles Gerät verwenden. Die Standortverfolgung im Laufe der Zeit kann sehr sensibel sein. Erklären Sie dem Benutzer daher im Voraus, warum Sie diese Berechtigung anfordern und wie Sie die Daten verwenden.
if (navigator.geolocation) {
//after the user indicates that they want to turn on continuous location-tracking
var watchId = navigator.geolocation.watchPosition(updateLocation, geolocationFailure);
} else {
console.log("Geolocation is not supported by this browser.");
}
var updateLocation = function(position) {
console.log("New position at: " + position.coords.latitude + ", " + position.coords.longitude);
};
So deaktivieren Sie fortlaufende Aktualisierungen:
navigator.geolocation.clearWatch(watchId);