Android 离子地理定位:每1分钟检查一次手表位置

Android 离子地理定位:每1分钟检查一次手表位置,android,cordova,parse-platform,geolocation,ionic,Android,Cordova,Parse Platform,Geolocation,Ionic,在我的ionic应用程序中,我需要记录gps坐标以解析核心后端 var opts={ enableHighAccuracy:true, timeout: 8000, maximumAge: 5000 }; var watch = $cordovaGeolocation.watchPosition(opts).then(function () { /* Not used */ }, f

在我的ionic应用程序中,我需要记录gps坐标以解析核心后端

  var opts={
        enableHighAccuracy:true,
        timeout: 8000,
        maximumAge: 5000
    };
    var watch = $cordovaGeolocation.watchPosition(opts).then(function () { /* Not  used */
           },
           function (err) {

           }, function (position) {
             var lat  = position.coords.latitude;
             var long = position.coords.longitude;
             $scope.slat=lat;
             $scope.slong=long;
             var uob=JSON.parse(localStorage.getItem('meemp'));
             console.log(uob);
             var point = new Parse.GeoPoint({latitude: lat, longitude: long});
             console.log(point);
             console.log(uob["objectId"]);
             $timeout(function() {
               var PeopleObject = Parse.Object.extend("PeopleObject");
               var person = new PeopleObject();
               person.set("lat", point);
               person.set("uid", uob["objectId"]);
               person.save(null, {});
             },30000);

           });
上面的代码检查位置中的任何更改,并将geopoint与objectid一起添加到解析核心中。但只要有变化,这种情况就会发生。我只需要每1秒记录一次更改。上述代码记录每次gps坐标变化。因此,有时它每分钟记录30-40次变化。。我每分钟只需要一个条目。。
如何执行此操作???

您可以使用
getCurrentPosition()
获取单个位置,然后以固定的间隔调用它。大概是这样的:

var opts = {
    enableHighAccuracy: true,
    timeout: 8000,
    maximumAge: 5000
};
var timer = setInterval(function(){
    $cordovaGeolocation.getCurrentPosition(opts).then(function () { /* Not  used */
   },
   function (err) {

   }, function (position) {
     var lat  = position.coords.latitude;
     var long = position.coords.longitude;
     $scope.slat=lat;
     $scope.slong=long;
     var uob=JSON.parse(localStorage.getItem('meemp'));
     console.log(uob);
     var point = new Parse.GeoPoint({latitude: lat, longitude: long});
     console.log(point);
     console.log(uob["objectId"]);
     $timeout(function() {
       var PeopleObject = Parse.Object.extend("PeopleObject");
       var person = new PeopleObject();
       person.set("lat", point);
       person.set("uid", uob["objectId"]);
       person.save(null, {});
     },30000);

   });
}, 1000);

只要你的应用在前台,它就会工作。如果您需要在应用程序处于后台时记录位置,则需要使用不同的方法,例如。