我正在創建一個基於位置的提醒,EKReminder
。創建基於位置的提醒:如何處理水平精度?
對於座標,我使用CLGeocoder
將地址轉換爲CLLocation
。
當談到提醒本身時,我認爲有兩個因素決定了提醒將會觸發的'area'(radius/circle)。
1)CLLocation
的水平精度。 該文檔將horizontalAccuracy
屬性描述爲「位置的不確定性半徑,以米爲單位(只讀)」。
有前一個問題更多這方面的良好的信息: What do horizontalAccuracy and verticalAccuracy of a CLLocation refer to?
如該回答表明,該horizontalAccuracy
爲100m。
2)財產EKStructuredLocation
。有關此屬性的討論註釋請閱讀「要使用默認半徑,請將此屬性設置爲0」。
如果我在股票,蘋果的Reminders應用程序中創建一個基於位置的提醒,它將與radius = 0
和horizontalAccuracy = 0
一起提供。因此,它使用默認的「提醒半徑」(不知道是什麼),其值爲0
,表示水平位置的不確定性...
我想避免在提醒中出現兩個邊距。我認爲有兩個選項來實現這一點:
一)將其設置爲0
使用的EKStructuredLocation
默認radius
轉換結果來從CLGeocoder
回到有0米一horizontalAccuracy
。
B)保持horizontalAccuracy
(100米,或不同的,取決於環境)從CLGeocoder
- 但不是使用默認radius
爲EKStructuredLocation
並將其設置爲小東西,像1米。
想法?我是否正確理解這些API?
- 如果我使用返回的
horizontalAccuracy
和默認值爲radius
,我會得到「雙倍餘量」嗎? CLLocation
對象的horizontalAccuracy
對象是從座標引入一個半徑還是純粹提供關於位置不確定性的信息?
乾杯
horizontalAccuracy是位置值的不確定性的估計值。 – progrmr 2013-02-20 16:01:08