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