Учебники

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

Этот плагин используется для добавления плагина геолокации в приложение Ionic.

Использование геолокации

Существует простой способ использовать плагин геолокации. Нам нужно установить этот плагин из окна командной строки.

C:\Users\Username\Desktop\MyApp>cordova plugin add cordova-plugin-geolocation

Следующий код контроллера использует два метода. Первый — это метод getCurrentPosition, который покажет нам текущую широту и долготу устройства пользователя. Второй — это метод watchCurrentPosition , который возвращает текущую позицию устройства при ее изменении.

Код контроллера

.controller('MyCtrl', function($scope, $cordovaGeolocation) {
   var posOptions = {timeout: 10000, enableHighAccuracy: false};
   $cordovaGeolocation
   .getCurrentPosition(posOptions)
	
   .then(function (position) {
      var lat  = position.coords.latitude
      var long = position.coords.longitude
      console.log(lat + '   ' + long)
   }, function(err) {
      console.log(err)
   });

   var watchOptions = {timeout : 3000, enableHighAccuracy: false};
   var watch = $cordovaGeolocation.watchPosition(watchOptions);
	
   watch.then(
      null,
		
      function(err) {
         console.log(err)
      },
	   function(position) {
         var lat  = position.coords.latitude
         var long = position.coords.longitude
         console.log(lat + '' + long)
      }
   );

   watch.clearWatch();
})

Вы могли также заметить объекты posOptions и watchOptions . Мы используем тайм-аут, чтобы настроить максимальный промежуток времени, который может проходить в миллисекундах, а enableHighAccuracy имеет значение false. Можно установить значение true, чтобы получить наилучшие результаты, но иногда это может привести к некоторым ошибкам. Существует также опция MaximumAge, которая может использоваться, чтобы показать, как принимается старая позиция. Используются миллисекунды, так же, как и опция тайм-аута.

Когда мы запустим наше приложение и откроем консоль, оно запишет широту и долготу устройства. Когда наша позиция изменяется, значения lat и long будут меняться.