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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow