kCLLocationAccuracyBestForNavigation vs kCLLocationAccuracyBest

时间:2017-08-23 16:23:47

标签: ios core-location

我正在构建一个速度计应用程序,显示用户正在行进的当前速度。我想显示最准确的速度,因此我想弄清楚是否应该使用kCLLocationAccuracyBestForNavigation或kCLLocationAccuracyBest。

根据Apple的文档,kCLLocationAccuracyBestForNavigation使用尽可能高的准确度并将其与其他传感器数据相结合,而kCLLocationAccuracyBest使用最高精度但未提及传感器数据。有谁知道这个额外的传感器数据是什么,以及它是否用于计算更准确的速度?

我从CLLocation对象获得速度。

  func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
    for location in locations {
      let speed = location.speed
      ...
    }
  }

2 个答案:

答案 0 :(得分:2)

kCLLocationAccuracyBestForNavigation使用加速度计,陀螺仪,wifi和手机信号塔。

由于您的目标是获得最佳的速度精度,我建议您使用此常量。

请记住,这也是最耗电的。

您的回调似乎与您期望的一致。

答案 1 :(得分:0)

我有一个怀疑!

我的 GPS 追踪器正在使用 kCLLocationAccuracyBestForNavigation(带有 CLActivityTypeOther)。对我来说,似乎 kCLLocationAccuracyBestForNavigation 会导致位置管理器也查找地图数据。当我骑自行车时,位置管理器有时会报告与我旁边道路相匹配的位置。但我不骑那条路...

接下来我将尝试 kCLLocationAccuracyBest,看看这个常数是否能阻止那些垃圾。