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);


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow