【问题标题】:What is CoreLocation's Region Monitoring system defined cushion?什么是 CoreLocation 的区域监控系统定义的缓冲垫?
【发布时间】:2014-01-23 00:30:00
【问题描述】:

我正在使用模拟器来测试区域监控。将CoreLocation 与区域监控和模拟器中的高速公路驾驶测试位置路径(调试> 位置> 高速公路驾驶)一起使用,我能够模拟,至少在视觉上可以模拟高速公路驾驶的路径,因为它与各种叠加层相交。一旦我开始监视用户的位置,这些叠加层就会转换为区域并进行监视。无论如何,这似乎不太好用。当您“认为”时,我的叠加层表示的区域不会导致 didEnter/didExit 事件。这些区域的大小似乎比我指定的距离宽得多。我猜这是因为系统应用了缓冲。

Apple 的 Region Monitoring documentation 声明:

在超过边界加上系统定义的缓冲距离之前,系统不会报告边界交叉。此缓冲值可防止系统在用户靠近边界边缘时快速连续生成大量进入和退出事件。

文档似乎没有准确说明这个缓冲垫是什么。也不知道是怎么计算的。有谁知道系统定义的缓冲垫是什么?

【问题讨论】:

    标签: ios monitoring cllocationmanager region


    【解决方案1】:

    我认为是 200m。在 Region Monitoring 文档的底部有一段粗略地解释了如何测试:

    在 iOS 模拟器或设备上测试您的区域监控代码时,请注意区域事件可能不会在跨越区域边界后立即发生。为了防止虚假通知,iOS 在满足某些阈值条件之前不会发送区域通知。具体来说,用户的位置必须跨越区域边界并从该边界移开最小距离,并在报告通知之前保持该最小距离至少 20 秒。

    具体的阈值距离由硬件和当前可用的定位技术决定。例如,如果禁用 Wi-Fi,则区域监控的准确性会大大降低。 但是,出于测试目的,您可以假设最短距离约为 200 米。

    【讨论】:

      猜你喜欢
      • 2013-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      • 1970-01-01
      • 2013-07-04
      • 1970-01-01
      • 2012-05-10
      相关资源
      最近更新 更多