【发布时间】:2013-02-05 04:26:37
【问题描述】:
我正在创建一个基于位置的提醒,EKReminder。
对于我使用CLGeocoder 将地址转换为CLLocation 的坐标。
说到提醒本身,我认为有两个因素决定了提醒将触发的“区域”(半径/圆)。
1) CLLocation 的水平精度。
文档将horizontalAccuracy 属性描述为“位置的不确定性半径,以米为单位。(只读)”。
在上一个问题中有更多关于此的有用信息: What do horizontalAccuracy and verticalAccuracy of a CLLocation refer to?
正如该答案中所建议的,horizontalAccuracy 是 100m。
2) EKStructuredLocation 上的 radius 属性。此属性的讨论说明为“要使用默认半径,请将此属性设置为 0。”
如果我在 Apple 的 Reminders 应用程序中创建基于位置的提醒,它会出现 radius = 0 和 horizontalAccuracy = 0。所以它使用默认的“提醒半径”(不知道那是什么),其值为0,用于水平位置的不确定性......
我想避免在我的提醒中出现两个边距。我认为有两种选择可以实现这一目标:
a) 将EKStructuredLocation 的默认radius 设置为0,并将CLGeocoder 返回的结果更改为horizontalAccuracy 为0m。
b) 将horizontalAccuracy 与CLGeocoder 保持一致(100m,或不同,视情况而定) - 但不要为EKStructuredLocation 使用默认的radius,并将其设置为较小的值,例如 1m。
想法?我是否正确理解了这些 API?
- 如果我使用返回的
horizontalAccuracy和radius的默认值,我会得到“双倍边距”吗? -
CLLocation对象的horizontalAccuracy是从坐标引入半径,还是仅提供有关位置不确定性的信息?
干杯
【问题讨论】:
-
horizontalAccuracy 是对位置值不确定性的估计。
标签: iphone ios ios6 core-location cllocation