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