空间查询的基本算子

空间查询是通过几何对象之间的空间位置关系来构建过滤条件的一种查询方式。应用程序目前支持 8 种空间查询的基本算子,包括:交叉、包含、被包含、重叠、分离、邻接、重合、相交。

空间查询涉及三个要素,分别为:待查询图层、查询图层及查询结果。对各算子的图示中查询图层用绿色表示,待查询图层中未被查询出的对象用黑色表示,查询结果用红色表示。

交叉

返回待查询图层(线、面、CAD)中与查询对象(线)交叉的所有对象。

  • 基本关系:查询图层(A)穿越待查询图层(B)。
  • 线查线:A 从 B 内部的一侧进入并在 B 内部的某处另一侧穿出。A 的内部与 B 的内部交集不为空,且拓扑维数为0维。
  • 线查面:A 的内部与B的内部的交集不为空;A 的内部与B的外部的交集不为空。

交叉算子详细说明:
Cross

包含

返回待查询图层(点、线、面、文本、CAD)中包含查询图层(点、线、面)的对象。(不一定要完全包含,边界有交集也可以。)

  • 基本关系:待查询图层(A)包含查询图层(B)(A、B边界交集可以不为空)。
  • A 的外部与 B 的内部的交集为空,且内部交集不为空或 A 的边界与 B 内部无交集。
  • A的维数 >= B 的维数。

包含算子详细说明:

Contain1

被包含

返回待查询图层(点、线、面、CAD)中被查询图层包含(点、线、面)的对象。如果返回的对象是面,其必须包含(包括在边界上)待查询图层;如果返回的对象是线,其必须完全包含待查询图层;如果返回的对象是点,其必须在待查询图层上。

  • 基本关系:待查询图层(A)被查询图层(B)包含。被包含是包含的逆算子。

被包含算子详细说明

Within1

叠加

返回待查询图层(线、面、CAD)中与查询图层(线、面)部分重叠的对象。

  • 基本关系:查询图层(A)与待查询图层(B)交叠。
  • A 与 B 的维数相同。
  • A 的内部与 B 的内部交集(C)不为空,A 的外部与 B 的内部交叉,B 的外部与 A 的内部交叉。
  • C 的类型仍与 A 的类型相同。

叠加算子详细说明:

Overlap

分离

返回待查询图层(点、线、面、CAD)中与查询图层(点、线、面)相离的对象。

  • 基本关系:查询图层(A)和待查询图层(B)相离,即无任何交集。

分离算子详细说明:

Disjoint

邻接

返回待查询图层(点、线、面、CAD)中其边界与查询图层(点、线、面)边界相触的对象。

  • 基本关系:查询图层(A)内部和待查询图层(B)内部交集为空且(A内部和B边界交集不空 或 A边界B内部交集不空 或 A边界和B边界交集不空)。

邻接算子详细说明:

Touch

重合

返回待查询图层(点、线、面、CAD)中与查询图层(点、线、面)完全重合的对象,但对象上的控制点可以不完全相同。

  • 基本关系:查询图层(A)与待查询图层(B)的类型必须相同,且A内部与B内部交集不为空,A边界和B外部交集空,A内部和B外部交集空,节点可以不同。

重合算子详细说明:

Identity

相交

返回与查询图层(点、线、面、文本、CAD)相交的所有待查询图层对象(点、线、面)。

  • 基本关系:查询对象(A)和待查询对象(B)有交集。

相交算子详细说明:

Intersect