我用模拟器来测试区域监控。在模拟器(Debug > location > Freeway Drive)中使用带有区域监视和高速公路驱动测试位置路径的CoreLocation,我能够模拟,至少可以直观地模拟高速公路驱动器的路径,因为它与各种覆盖交叉。当我开始监视用户的位置时,这些覆盖被转换为区域并被监视。不管怎样,这似乎不太好用。当您“认为”时,由我的覆盖所代表的区域并不会导致didEnter/didExit事件。这些区域的面积似乎比我指定的距离要宽得多。我想这是因为系统应用的缓冲。
苹果的区域监测文件声明:
系统不报告边界跨越,直到边界加上一个系统定义的缓冲距离被超越。此缓冲值防止系统在用户接近边界时快速连续地生成大量输入和退出的事件。
医生们似乎并没有说出这个垫子到底是什么。也不知道它是如何计算的。有人知道系统定义的缓冲是什么吗?
发布于 2014-02-20 01:16:24
我想是200米。在“区域监控文档”的底部,有一个段落松散地解释了如何测试:
在iOS模拟器或设备上测试区域监视代码时,要意识到区域事件可能不会在区域边界被跨越之后立即发生。为了防止虚假通知,iOS在满足某些阈值条件之前不会传递区域通知。具体而言,用户的位置必须跨越区域边界,以最小距离离开该边界,并在报告通知之前至少停留在该最小距离上20秒。 具体的阈值距离由硬件和当前可用的定位技术决定。例如,如果Wi被禁用,区域监控的准确性就会大大降低.但是,为了测试目的,您可以假设最小距离约为200米。
https://stackoverflow.com/questions/21297021
复制相似问题