Buscar..
Sintaxis
- navigator.geolocation.getCurrentPosition ( successFunc , failureFunc )
- navigator.geolocation.watchPosition ( updateFunc , failureFunc )
- navigator.geolocation.clearWatch ( watchId )
Observaciones
La API de geolocalización hace lo que puede esperar: recuperar información sobre el paradero del cliente, representada en latitud y longitud. Sin embargo, corresponde al usuario aceptar dar su ubicación.
Esta API se define en la especificación de la API de geolocalización W3C. Las características para obtener direcciones cívicas y para habilitar el geofencing / desencadenamiento de eventos se han explorado, pero no están ampliamente implementadas.
Para comprobar si el navegador es compatible con la API de geolocalización:
if(navigator.geolocation){
// Horray! Support!
} else {
// No support...
}
Obtener la latitud y longitud de un usuario
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);
};
Códigos de error más descriptivos.
En el caso de que la geolocalización falle, su función de devolución de llamada recibirá un objeto PositionError
. El objeto incluirá un atributo llamado code
que tendrá un valor de 1
, 2
o 3
. Cada uno de estos números significa un tipo diferente de error; La función getErrorCode()
continuación toma el PositionError.code
como su único argumento y devuelve una cadena con el nombre del error que ocurrió.
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";
}
};
Se puede utilizar en geolocationFailure()
así:
var geolocationFailure = function(err) {
console.log("ERROR (" + getErrorCode(err) + "): " + err.message);
};
Recibe actualizaciones cuando cambia la ubicación de un usuario
También puede recibir actualizaciones periódicas de la ubicación del usuario; por ejemplo, a medida que se mueven mientras usan un dispositivo móvil. El seguimiento de la ubicación a lo largo del tiempo puede ser muy delicado, así que asegúrese de explicar al usuario con anticipación por qué solicita este permiso y cómo utilizará los datos.
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);
};
Para desactivar las actualizaciones continuas:
navigator.geolocation.clearWatch(watchId);