【问题标题】:Save coordinates every x time using backgroundGeolocation and IONIC每次使用 backgroundGeolocation 和 IONIC 保存坐标
【发布时间】:2018-07-19 18:26:55
【问题描述】:

朋友们下午好。

我正在使用 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 进行相同配置的方法。谁能帮帮我?

【问题讨论】:

    标签: angular ionic-framework geolocation


    【解决方案1】:

    您需要利用 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();
    

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2020-02-01
    • 2013-03-31
    • 1970-01-01
    • 2020-11-28
    相关资源
    最近更新 更多