Córdoba - Geolocalización

La geolocalización se utiliza para obtener información sobre la latitud y la longitud del dispositivo.

Paso 1: instalación del complemento

Podemos instalar este complemento escribiendo el siguiente código para command prompt ventana.

C:\Users\username\Desktop\CordovaProject>cordova plugin add cordova-plugin-geolocation

Paso 2: agregar botones

En este tutorial, le mostraremos cómo obtener la posición actual y cómo observar los cambios. Primero necesitamos crear botones que llamen a estas funciones.

<button id = "getPosition">CURRENT POSITION</button>
<button id = "watchPosition">WATCH POSITION</button>

Paso 3: agregar oyentes de eventos

Ahora queremos agregar detectores de eventos cuando el dispositivo esté listo. Agregaremos el ejemplo de código a continuación aonDeviceReady funcionar en index.js.

document.getElementById("getPosition").addEventListener("click", getPosition);
document.getElementById("watchPosition").addEventListener("click", watchPosition);

Paso 3: crear funciones

Deben crearse dos funciones para dos detectores de eventos. Uno se utilizará para obtener la posición actual y el otro para observar la posición.

function getPosition() {
   var options = {
      enableHighAccuracy: true,
      maximumAge: 3600000
   }
   var watchID = navigator.geolocation.getCurrentPosition(onSuccess, onError, options);

   function onSuccess(position) {
      alert('Latitude: '          + position.coords.latitude          + '\n' +
         'Longitude: '         + position.coords.longitude         + '\n' +
         'Altitude: '          + position.coords.altitude          + '\n' +
         'Accuracy: '          + position.coords.accuracy          + '\n' +
         'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
         'Heading: '           + position.coords.heading           + '\n' +
         'Speed: '             + position.coords.speed             + '\n' +
         'Timestamp: '         + position.timestamp                + '\n');
   };

   function onError(error) {
      alert('code: '    + error.code    + '\n' + 'message: ' + error.message + '\n');
   }
}

function watchPosition() {
   var options = {
      maximumAge: 3600000,
      timeout: 3000,
      enableHighAccuracy: true,
   }
   var watchID = navigator.geolocation.watchPosition(onSuccess, onError, options);

   function onSuccess(position) {
      alert('Latitude: '          + position.coords.latitude          + '\n' +
         'Longitude: '         + position.coords.longitude         + '\n' +
         'Altitude: '          + position.coords.altitude          + '\n' +
         'Accuracy: '          + position.coords.accuracy          + '\n' +
         'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
         'Heading: '           + position.coords.heading           + '\n' +
         'Speed: '             + position.coords.speed             + '\n' +
         'Timestamp: '         + position.timestamp                + '\n');
   };

   function onError(error) {
      alert('code: '    + error.code    + '\n' +'message: ' + error.message + '\n');
   }
}

En el ejemplo anterior, estamos usando dos métodos: getCurrentPosition y watchPosition. Ambas funciones utilizan tres parámetros. Una vez que hacemos clicCURRENT POSITION , la alerta mostrará los valores de geolocalización.

Si hacemos clic WATCH POSITION, la misma alerta se activará cada tres segundos. De esta manera podemos rastrear los cambios de movimiento del dispositivo del usuario.

NOTA

Este complemento utiliza GPS. A veces, no puede devolver los valores a tiempo y la solicitud devolverá un error de tiempo de espera. Por eso especificamosenableHighAccuracy: true y maximumAge: 3600000.Esto significa que si una solicitud no se completa a tiempo, usaremos el último valor conocido. En nuestro ejemplo, establecemos maximumAge en 3600000 milisegundos.