HTML5 Geolocation abfragen

navigator.geolocation

Im HTML5 Standard wurde die JavaScript API um ein navigator.geolocation Klasse erweitert. Geolocation berechnet die Position aufgrund von GPS Daten, sofern ein GPS Gerät zur Verfügung steht (iPhone, Android), oder mittels WiFi und IP Auswertungen über einen Google Service.

Die Funktion navigator.geolocation.getCurrentPosition bekommt zwei Callback Funktionen als Parameter. Zum einen success zum anderen error

Wird der success Callback aufgerufen, so bekommt die Funktion ein Positionsobjekt als Parameter. Dieses Objekt enthält eine Menge Attribute, wobei das Unterobjekt coords wohl am interessantesten ist.

coords enthält z.B. die Informationen latitude oder longitude

Veränderungen der Position können dann sogar mit den Funktionen navigator.geolocation.watchPosition und navigator.geolocation.clearWatch beobachtet werden.

Der Code

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(success, error);
} else {
  alert("Not Supported!");
}

Der succes Callback

function success(position) {
  console.log(position.coords.latitude);
  console.log(position.coords.longitude);
}

Der error Callback

function error(msg) {
  console.log(typeof msg == 'string' ? msg : "error");
}

Veränderung der Position des Benutzers tracken

var watchId = navigator.geolocation.watchPosition(function(position) {  
  console.log(position.coords.latitude);
  console.log(position.coords.longitude);
});

Stoppen der Beobachtung

  navigator.geolocation.clearWatch(watchId);