我正在编写一个移动iOS应用程序,它使用iOS重要位置更改服务来管理大量地理围栏,在我们从CoreLocation Framework收到此消息时启用和禁用地理围栏。
在Apple开发者网站上,它说:
重要更改位置服务仅在设备位置发生重大变化(例如500米或更长)时才会提供更新。
真正让我失望的是“500米以上”,具体的位置变更服务究竟是基于什么以及我们实际拥有什么保证?
此API是否可靠地跟踪区域之间的变化,以便在收到消息时我们知道是时候重新分配我们的地理围栏(假设每500米半径的地理围栏少于20个)?
答案 0 :(得分:14)
我在10个真实用户设备上使用重要的位置更改API运行了一个小型应用程序,进行了为期两周的实验(因此他们正在上班,回家,周末出去等等)。大都市环境(米兰,意大利)。注册了大约1800个重要的位置更新事件。
核心结果是:
分配表应如下所示:第一列是以米为单位的水平精度,第二列是多少%的位置更新与第一列相等或更准确。
Accuracy Cumulative distribution
10m 23.76%
20m 23.76%
50m 23.76%
100m 49.86%
200m 65.09%
400m 65.31%
500m 65.31%
1000m 68.66%
2000m 92.64%
4000m 97.82%
>4000m 100.00%
换句话说,几乎2/3部分的位置更新比200米更准确。
答案 1 :(得分:1)
500米是0.31英里 - 大约三分之一英里。他们没有详细说明它的确切程度,但是基于使用GPS和核心位置框架的测试,它非常准确(即使在代码中没有调用startupdatinglocation方法,也应该逐步跟踪距离) )。