什么是CoreLocation的区域监控系统定义的缓冲区?

我正在使用模拟器来testing区域监视。 在模拟器(debugging>位置>高速公路驱动器)中使用带有区域监视function的CoreLocation和高速公路驱动器testing位置path,我能够至less在视觉上模拟高速公路驱动器与各种叠加层相交的path。 只要我开始监视用户的位置,这些覆盖就会转换为区域并进行监视。 无论如何,这似乎没有工作得很好。 由我的覆盖表示的区域不会导致didEnter / didExit事件,当你“认为”他们会。 这些地区似乎比我指定的距离大得多。 我猜这是因为系统适用的缓冲。

苹果地区监测文件指出:

系统不会报告边界交叉点,直到超出边界加上系统定义的坐标距离。 这个缓冲值防止系统在用户行驶在边界附近时快速连续地产生许多进入和退出的事件。

文件似乎并没有说明这个坐垫是什么,确切地说。 也不是如何计算的。 有谁知道系统定义的坐垫是什么?

我想这是200米。 在区域监测文档的底部有一个松散地解释如何testing的段落:

在iOS模拟器或设备上testing您的区域监控代码时,请注意区域边界越过后,区域事件可能不会立即发生。 为了防止虚假的通知,iOS在达到某些阈值条件之前不会传递区域通知。 具体来说,用户的位置必须穿过区域边界并离开该边界最小距离,并且在通知被报告之前保持在该最小距离处至less20秒。

特定的阈值距离由当前可用的硬件和位置技术确定。 例如,如果Wi-Fi已禁用,则区域监视的准确性将大大降低。 但是,出于testing目的,您可以假设最小距离大约为200米。