使用backgroundGeolocation和IONIC

时间:2018-07-19 18:26:55

标签: angular ionic-framework geolocation

下午好。

我正在使用backgroundGeolocation插件在Ionic 2上做一个应用,我想每x次发送坐标,如Cordova documentation所述:

  

[地理位置] Android选项   @config {Integer millis} locationUpdateInterval

     

⚠️要使用locationUpdateInterval,还必须配置distanceFilter: 0distanceFilter会覆盖locationUpdateInterval

     

设置活动位置更新所需的时间间隔(以毫秒为单位)。

     

位置客户端将在此间隔内积极尝试获取应用程序的位置更新,因此它直接影响应用程序使用的电量。明智地选择时间间隔。

     

此间隔不精确。您可能根本不会收到更新(如果没有可用的位置来源),或者收到的更新速度可能比要求的要慢。您也可能比要求的接收速度更快(如果其他应用程序以更快的间隔请求定位)。

     

仅具有粗略位置许可的应用程序可能会默默地限制其时间间隔。

BackgroundGeolocation.configure({
  distanceFilter: 0,            // Must be 0 or locationUpdateInterval is 
  ignored!
  locationUpdateInterval: 5000  // Get a location every 5 seconds
});

但是我找不到使用IONIC进行相同配置的方法。谁能帮我吗?

1 个答案:

答案 0 :(得分:0)

您需要利用watchPosition方法返回的observable:

https://ionicframework.com/docs/native/geolocation/#watchPosition

由于其可见性,因此您可以通过管道传输它并设置所需的时间间隔:

const subscription = this.geolocation.watchPosition()
                              .pipe(debounceTime(500)); // import relevant rxjs operator
                              .subscribe(position => {
  console.log(position.coords.longitude + ' ' + position.coords.latitude);
});

// To stop notifications
subscription.unsubscribe();

如果需要详细信息,请分享您的代码。