2014-01-23 38 views
2

我正在使用模擬器來測試區域監控。在模擬器(Debug> Location> Freeway Drive)中使用CoreLocation以及區域監視和Freeway Drive測試位置路徑,我可以至少在視覺上模擬Freeway Drive與各種疊加層相交的路徑。只要我開始監視用戶的位置,這些覆蓋圖就會轉換爲區域並進行監視。無論如何,這似乎並不奏效。當我們認爲他們會這樣做時,由我的疊加層代表的區域不會導致didEnter/didExit事件。這些區域似乎比我指定的距離大得多。我猜這是因爲系統適用的緩衝區。什麼是CoreLocation的區域監控系統定義的坐墊?

蘋果Region Monitoring documentation指出:

,系統沒有報告過境通道,直到邊界加上超過了系統定義的坐墊距離。此緩衝值可防止系統在用戶靠近邊界邊緣時快速連續生成大量進入和退出的事件。

該文檔似乎並沒有說明這個坐墊是什麼,完全是。也不是如何計算的。有誰知道系統定義的坐墊是什麼?

回答

4

我認爲它是200米。在區域監測資料的底部有鬆散地介紹瞭如何測試一個段落:

當iPhone模擬器或設備上測試你的區域監管碼,實現區域事件可能不是一個區域邊界後立即發生被越過。爲了防止虛假通知,iOS在達到某些閾值條件之前不會傳遞區域通知。具體而言,用戶的位置必須穿過區域邊界並離開該邊界最小距離,並且在報告通知之前保持該最小距離至少20秒。

具體的閾值距離由當前可用的硬件和位置技術確定。例如,如果Wi-Fi已禁用,則區域監控的精確度將大大降低。 但是,出於測試目的,您可以假定最小距離大約爲200米。