HTML5 geolocation API
// get position and pass callbacks
var options = {
enableHighAccuracy: boolean, // slower, more accurate location
timeout: milliseconds, // allowed response time
maximumAge: milliseconds // maximum age of cached position (0 means only fresh value can be returned)
};
var onsuccess = function(position) {
console.log('Your position is ' + position.coords.longitude + ', ' + position.coords.latitude + ' at ' + new Date(position.timestamp).toUTCString());
};
var onerror = function(error) {
switch (error.code) {
case error.TIMEOUT:
message = "Timeout.";
break;
case error.PERMISSION_DENIED:
message = "Permission denied.";
break;
case error.POSITION_UNAVAILABLE:
message = "Location could not be obtained.";
break;
case error.UNKNOWN_ERROR:
message = "Unknown error.";
break;
}
console.log(message);
};
navigator.geolocation.getCurrentPosition(onsuccess, onerror, options);
// watch position - repeated execution of callback
var watchID = navigator.geolocation.watchPosition(onsuccess, onerror, options);
// stop watching position
navigator.geolocation.clearWatch(watchID);