我应该为 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 选择哪种所需的精度?的主要内容,如果未能解决你的问题,请参考以下文章
获取用户当前位置坐标:MKMapItem vs CLLocationManager
为啥 CLLocationManager 在设置精度低时如此懒惰?
CLLocationManager.location 在 10.10 中为零,但在 10.11 中有效