Учебники

Кордова — Геолокация

Геолокация используется для получения информации о широте и долготе устройства.

Шаг 1 — Установка плагина

Мы можем установить этот плагин, введя следующий код в окно командной строки .

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

Шаг 2 — Добавить кнопки

В этом уроке мы покажем вам, как получить текущую позицию и как следить за изменениями. Сначала нам нужно создать кнопки, которые будут вызывать эти функции.

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

Шаг 3 — Добавить прослушиватели событий

Теперь мы хотим добавить прослушиватели событий, когда устройство будет готово. Мы добавим пример кода ниже в функцию onDeviceReady в index.js .

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

Шаг 3 — Создание функций

Две функции должны быть созданы для двух слушателей событий. Один будет использоваться для получения текущей позиции, а другой — для просмотра позиции.

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

В приведенном выше примере мы используем два метода — getCurrentPosition и watchPosition . Обе функции используют три параметра. Как только мы нажмем кнопку CURRENT POSITION , в предупреждении будут показаны значения геолокации.

Кордова Геолокация

Если мы нажмем кнопку НАЧАТЬ ПОЛОЖЕНИЕ , то одно и то же предупреждение будет срабатывать каждые три секунды. Таким образом, мы можем отслеживать изменения движения устройства пользователя.

НОТА

Этот плагин использует GPS. Иногда он не может вернуть значения вовремя, и запрос вернет ошибку тайм-аута. Вот почему мы указали enableHighAccuracy: true и maximumAge: 3600000. Это означает, что если запрос не будет выполнен вовремя, мы будем использовать последнее известное значение. В нашем примере мы устанавливаем MaximumAge на 3600000 миллисекунд.