我的10個真實用戶設備使用取得位置顯著改變API運行一個小的應用程序的實驗兩週(所以他們去上班,回家,週末外出等)的測試運行大都市環境(意大利米蘭)。大約有1800個重要的位置更新事件被註冊。
核心結果是:
- 有大約每天10次的位置更新的平均
- 通過CoreLocation陳述的水平精度具有分佈如表中所示波紋管
- 這並不能保證但是,一旦用戶從最後一次位置更新定義的圓圈中移出,並且其水平精度CoreLocation將發送新的位置事件。換句話說,你無法確定用戶在任何特定時刻都在這個圈子裏。
- 如果其他應用程序使用設備上的全球定位系統(例如導航過程中),抵達我的應用程序的位置事件也更準確。
分配表應按如下方式閱讀:第一列是以米爲單位的水平精度,第二列是位置更新的百分比與第一列相等或更精確。
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米。
我同意,在顯著位置改變我的經驗來更新定期漂亮 - 當然這很大程度上取決於環境 - 在一個開放的空間,GPS接收會比在一個城市或室內更好。如果您的地區人口密集,您可能還想使用'CLCircularRegion'的'containsCoordinate'方法,以防更新觸發時您已經進入其中一個區域 – Paulw11 2014-09-10 23:53:34
實際上,除非某個應用程序(無論是系統還是第三方)積極使用位置服務,絕對*不*「跟蹤距離」。發射無線電以獲得解決方案 - 尤其是準確無誤 - 需要大量的功率。如果位置服務沒有被使用,系統會關閉它們以免殺死電池。你作爲開發人員必須決定你真正需要多少準確性。如果500米不夠準確,您希望使用定期的位置服務而不是重大更改。 – 2014-09-10 23:57:51