2013-07-29 88 views
0

在遇到this question後,我擔心這個問題不會有答案,但我希望,無論如何。CLRegion隱藏緩衝區?

我已經設置了幾個geofences(最小和最大)。我正在使用模擬器,並輸出了大的半徑CLRegion,它告訴我在某個座標周圍的半徑爲10881.98米,但是當我模擬距離同一座標的地理位置爲11281.86米時,它不會觸發爲大區域提供的locationManager:didExitRegion:委託方法。

儘管大區域不會觸發locationManager:didExitRegion:,但我確認小區域每次都會觸發委託方法。有沒有理由爲什麼這不是射擊?區域周圍是否有距離緩衝區?它是否記錄在某處?

任何幫助將是偉大的。

編輯:從測試中,我需要削減半徑大約45.28%,以便有地理柵欄觸發器。顯然,這不是一個很好的解決方案,因爲它非常不精確,而且與地理圍欄的整個想法背道而馳。

回答

0

我的猜測是這是模擬器特有的問題。雖然CLRegion技術上沒有緩衝區或填充,但操作系統花費較長時間才能確定您實際上已離開地理柵欄區域。在這種尺寸的柵欄上,我會想象它可能需要更長的時間。在較小的地區,100-200M,我看到它需要幾分鐘的駕駛時間,但在觸發事件之前,容易在300-400M之間。根據蘋果工程師在WWDC 2013上告訴我的,操作系統花時間確定你離開了。由於依賴蜂窩塔三角測量和已知的無線網絡,系統確定您離開也很困難。在它可以安全地觸發退出事件之前,它需要遠遠超出已知的網絡。

我知道這不是一個確切的答案,但希望你能更多地瞭解他們如何在引擎蓋下工作以及Apple對他們的期望是什麼。祝你好運。