我应该为 CLLocationManager 选择哪种所需的精度?

Posted

技术标签:

【中文标题】我应该为 CLLocationManager 选择哪种所需的精度?【英文标题】:Which desired accuracy for CLLocationManager should I choose? 【发布时间】:2013-07-15 14:03:25 【问题描述】:

有谁知道哪些定位机制与CLLocationManager 的所需精度相关(例如,kCLLocationAccuracyBest 表示如果可用,将使用 GPS)或者是否有任何文档?

我需要在短时间内保持良好的准确性,但 GPS 可能会很慢,无法足够快地确定位置,所以我宁愿使用不太准确的机制来快速生成可能的最佳数据。

我应该使用哪个desiredAccuracy

【问题讨论】:

我们谈论的时间有多短?因为 kCLLocationAccuracyBest 最多会在几秒钟内为您提供所需的所有信息。 这正是我们所说的秒数 :) 我认为像蜂窝塔三角测量这样的方法可能更快...... 细胞三角剖分会更快一些,而且它也会消耗更少的能量,这只是一个额外的好处。但我不认为你能像 GPS 那样精确定位 您需要哪种精度? 30m还是1000m? 我不认为1000m可以被认为是“好”,但30m以下应该没问题 【参考方案1】:

仅仅因为您设置了 kCLLocationAccuracyBest(GPS) 并不意味着您只能获取 GPS 位置:

只需配置 kCLLocationAccuracyBest,然后您可能会在第一秒内获得 1000m 的不准确定位(属性 horiconatlAcuracy 设置为以米为单位的估计精度,例如 1000),由蜂窝塔三角测量接收。

如果这足够了,那就拿这个吧。 或者等待更长时间,直到 GPS 提供精度

只有当你想避免高电池使用时,然后通过设置 kCLLocationAccuracyKilometer 来避免 GPS。

但是,没有任何保证可以避免 GPS,Apple 也没有记录哪个传感器使用哪种模式。

【讨论】:

以上是关于我应该为 CLLocationManager 选择哪种所需的精度?的主要内容,如果未能解决你的问题,请参考以下文章

如何在特定时间段内运行 CLLocationManager

获取用户当前位置坐标:MKMapItem vs CLLocationManager

为啥 CLLocationManager 在设置精度低时如此懒惰?

CLLocationManager.location 在 10.10 中为零,但在 10.11 中有效

监控 CLLocationManager 重大位置更改时应用程序不会重新启动 - iPhone

CLLocationManager,核心数据和数组