API Geolocation

El API de geolocalización de JavaScript permite acceder a la información de localización geográfica del dispositivo desde el que se visita una web. Esta información se obtiene de diversas fuentes, por ejemplo, de la dirección IP, de la torre de conexión móvil o de las coordenadas GPS. JavaScript puede acceder así a la latitud y longitud del dispositivo y enviarlas al servidor web dónde se pueden utilizar con fines muy diversos, la mayoría relacionados con ofrecer recursos personalizados y cercanos al usuario.

navigator.geolocation;

Puedes ver también en github

1. Métodos

Existen 3 métodos.

Métodos de geolocation
MétodoDescripción
getCurrentPosition(successCallback,errorCallback,options)acceder a la posición actual del dispositivo. Una sola vez.
watchPosition(successCallback,errorCallback,options)Igual que anterior, se llama automáticamente cada vez que el dispositivo cambia de posición y genera un identificador de la operación. Activación continua.
clearWatch(watchId)cancela el proceso iniciado con anterior.

2. Parametros

Existen 3 parametros.

Parametros
ParametroDescripción
successCallbackobligatorio. Función callback que recibe el objeto Position con la información de posición actual en caso de que se obtenga correctamente.
errorCallbackopcional. Función callback en caso de error. Recibe un objeto PositionError.
options:opcional. objecto con opciones. Entre las opciones que se pueden especificar están timeout (tiempo máximo de espera en milisegundos para recibir la información de localización. Por defecto es infinito), enableHighAccuracy (true/false, el dispositivo intentará obtener los datos más exactos posibles, puede alargar el tiempo de respuesta. Por defecto es false) y maximumAge (tiempo de caché de la información expresado en milisegundos, por defecto es cero, valor que deshabilita la caché).

3. Propiedades objeto position

El método sucessCallBack recibe un objeto Position con los siguientes datos.

Propiedades objeto position
PropiedadDescripción
coords.latitudeLatitud (grados decimales)
coords.longitudelongitud(grados decimales)
coords.altitudeAltura (metros)
coords.accuracyRango error (metros)
coords.altitudeAccuracy
coords.headingRumbo en grados desde el norte = 0 (grados)
coords.speedVelocidad (m/seg)
timestampFecha y hora dispositivo, Date().

4. Propiedades objeto error

Propiedades objeto error
PropiedadDescripción
codeCodigo de erro
messageMensaje de error

5. Ejemplo

var options = {
  enableHighAccuracy: true,
  timeout: 6000,
  maximumAge: 0
};

navigator.geolocation.getCurrentPosition( success, error, options );

function success(position) {
  var coordenadas = position.coords;

  console.log('Tu posición actual es:');
  console.log('Latitud : ' + coordenadas.latitude);
  console.log('Longitud: ' + coordenadas.longitude);
  console.log('Rumbo: ' + coordenadas.heading);
};

function error(error) {
  console.warn('ERROR(' + error.code + '): ' + error.message);
};