Skip To Content

空间过滤器

GeoEvent 服务可过滤事件记录, 过滤基于与地理围栏的空间关系。 在配置空间过滤器之前,必须从发布的要素服务将指定地理围栏的几何导入 GeoEvent Server

支持以下空间运算符:

  • INSIDE - 如果事件记录的几何全部在地理围栏定义的区域内,则认为其几何在地理围栏内部。 该运算符可确定和事件记录相关联的点是否在感兴趣区域内。
  • OUTSIDE - 如果事件记录的几何全部在地理围栏定义的区域外,则认为其几何在地理围栏外部。 该运算符可确定和事件记录相关联的点是否在感兴趣区域外。

    地理围栏内外两条轨迹上的事件数据

  • ENTER - 当在同一追踪的前一事件记录位于地理围栏外部时,如果其几何在地理围栏定义的区域内,则认为事件记录的几何进入了地理围栏。 在检测到 ENTER 运算符后,事件记录便可通过过滤器,在识别另一次 ENTER 运算符前,追踪的对象必须至少报告一个地理围栏外部的事件。
  • EXIT - 当在同一追踪的前一事件记录位于地理围栏内部时,如果其几何在地理围栏定义的区域外,则认为事件记录的几何退出了地理围栏。 在检测到 EXIT 运算符后,事件记录便可通过过滤器,在识别另一次 EXIT 运算符前,追踪的对象必须至少报告一个地理围栏内部的事件。
    注:

    配置了 EXIT 运算符的空间过滤器的行为与事件检测器处理器略有不同。 当评估其闭合条件时, 事件检测器处理器会使用地理围栏内最后观测到的几何报告结束状态。 当 EXIT 运算符评估为 true 时,如果事件记录的几何位于地理围栏之外,则空间过滤器允许该事件记录通过过滤器。

    请于 Esri 社区进一步了解 EXIT 运算符在空间过滤器与事件检测器处理器中使用时的不同行为方式

    事件数据满足两个追踪的进入和退出运算符

通常,一组地理围栏会定义感兴趣区域并从提供面要素的要素服务导入。 地理围栏不是必须表示面区域,它们也可以从点和线要素导入。

以下空间运算符可用于不同类型的几何。 这些空间运算符返回一个布尔型参数,指明在地理围栏和事件记录的几何之间是否存在已描述的关系。 一些关系要求事件记录几何具有与其进行比较的地理围栏相同的尺寸,而其他关系则具有更灵活的尺寸约束。 以下许多空间运算符都是相互排斥的 Clementini 运算符。

  • CONTAINS - 如果地理围栏是某个事件的几何的子集且这两个几何的交集不为空,该事件的几何包含地理围栏。 CONTAINSWITHIN 在逻辑上相反。
    注:

    点几何不能包含折线或面,因此与事件关联的点不能包含作为 GeoFence 导入的线或区域。 点可以包含点或线以包含线,但不推荐测试这种空间关系。 由于投影导致的几何形状的细微差异可能生成一个您期望与 GeoFence 相重合但实际上不完全重合的点或线(在这种情况下,CONTAINS 关系评估为 false)。

    包含空间运算符示例

  • CROSSES - 如果相交存在于较小维度的几何中,那么事件的几何会与 GeoFence 交叉。 如果两条折线在一个或多个点处相交并且至少一个点不是端点,那么它们会交叉。 如果折线和面在面的内部共享一条折线或一个点(不等于整个折线),那么该折线与面交叉。 CROSSES 仅适用于折线/折线、折线/面或面/折线关系。 如果几何中的任何一个为空,则几何不交叉。

    交叉空间运算符示例

  • DISJOINT - 如果两个几何不相交,则事件的几何被认为与 GeoFence 不相交。 事件的几何可以与一个地理围栏不相交,同时与另一个地理围栏相交。 指定空间表达式后,定义事件的几何、范围(anyall),以及一组使用正则表达式模式匹配(例如 SomeCategory/.*)标识的地理围栏以获取准确结果。

    不相交空间运算符示例

  • EQUALS - 如果事件几何与 GeoFence 几何的对称差为空集,则它们的几何相等。 对于几何,对称差集是指每个几何不与其他几何重叠的部分。 如果事件几何与地理围栏几何之间的对称差集为空集,则意味着它们之间没有差异,使它们相等。 如果您要迭代每个几何中的各线段并比较线段类型和坐标,并且发现结果均相同(使用空间参考的拓扑容差确定坐标是否相等),则认为这两个几何相等。

    相等空间运算符示例

  • INTERSECTS - 如果两个几何相交,则事件的几何与地理围栏相交。 INTERSECTSDISJOINT 在逻辑上相反。 位于某个地理围栏区域(面)内的某个事件的点也与该地理围栏相交。 即使某个事件的折线或面未完全位于某个 GeoFence 内,也可以与该 GeoFence 交叉。 某个事件的几何可以与一组地理围栏内的某个地理围栏相交,并且仍然为 DISJOINT ANY(例如,不相交一个或多个)。 该事件的几何不是 DISJOINT ALL,因为它至少与集合中的一个地理围栏相交。
  • OVERLAPS - 如果相交尺寸等于正在考虑几何的尺寸,并且相交不等于事件几何或地理围栏,则事件几何与地理围栏重叠。OVERLAPS 仅适用于折线/折线、面/面以及多点/多点关系。 如果几何中的任何一个为空,则几何不重叠。

    重叠空间运算符示例

    几何不符合相等条件。 因此事件的点位置不能与几何也是点的 GeoFence 重叠。

  • TOUCHES - 如果存在交集并且交集的内部为空,则事件的几何与 GeoFence 接触。 这意味着两个几何仅在定义几何的折点处接触,而不是在折点之间的某个点处接触。 点/点关系未定义 TOUCHES。 如果几何中的任何一个为空,则几何不接触。

    接触空间运算符示例

  • WITHIN - 当两个几何相交并且它们内部的交集不为空时,则认为事件的几何被包含在 GeoEvent 内。 WITHINCONTAINS 在逻辑上相反。

    位于空间运算符示例

在 IRelationalOperator 接口 API 参考页面上了解有关关系运算符的详细信息

相关主题