OGC 定义了描述以下内容的属性
-
空间对象的特征
-
对象之间可能存在的空间关系
Vertica 提供了用于测试和分析以下属性和关系的函数。
OGC 定义了描述以下内容的属性
空间对象的特征
对象之间可能存在的空间关系
Vertica 提供了用于测试和分析以下属性和关系的函数。
定义空间对象限制的点集:
点、点集合和 GeometryCollection 没有边界。
线串的边界是点集合对象。此对象包含其起点和终点。
线串集合的边界是点集合对象。此对象包含构成线串集合的所有线串的起点和终点。
多边形的边界是在同一点开始和结束的线串。如果多边形包含一个或多个孔,则边界是包含外部多边形边界和任何内部多边形边界的线串集合。
多边形集合的边界是包含构成多边形集合的所有多边形的边界的线串集合。
与空间对象边界的距离小于或等于指定距离的所有点的集合。该距离可能为正值或负值。
正缓冲区:
负缓冲区:
如果一个空间对象的内部包括了另一个空间对象的所有点,则表示前者包含后者。如果某个对象(例如点或线串)仅沿多边形的边界存在,则多边形未包含该对象。如果某个点在线串上,则线串包含该点;线串的内部是指线串上除起点和终点以外的所有点。
Contains(a, b) 在空间上等同于 within(b, a)。
包含一个或多个空间对象的最小凸多边形。
在下图中,虚线表示一个线串和一个三角形的凸包。
如果以下两项均成立,则表示两个空间对象交叉:
两个对象具有部分但非全部的公共内点。
它们的相交结果的尺寸小于两个对象的最大尺寸。
没有任何公共点的两个空间对象;它们既不相交也不接触。
包含空间对象的最小边界矩形。
以下多边形的包络表示为下图中的虚线。
如果两个空间对象的坐标完全匹配,则二者相等。与在空间上等同同义。
在确定空间等价关系时点的顺序不重要:
LINESTRING(1 2, 4 3) 等于 LINESTRING(4 3, 1 2)。
POLYGON ((0 0, 1 1, 1 2, 2 2, 2 1, 3 0, 1.5 -1.5, 0 0)) 等于 POLYGON((1 1 , 1 2, 2 2, 2 1, 3 0, 1.5 -1.5, 0 0, 1 1))。
MULTILINESTRING((1 2, 4 3),(0 0, -1 -4)) 等于 MULTILINESTRING((0 0, -1 -4),(1 2, 4 3))。
空间对象或其边界均未包含的点集。
任何支持的空间对象类的零个或更多个对象的集合。
空间对象中包含的点集,不包括其边界。
两个或更多个空间对象的公共点集。
如果某个空间对象与另一个对象共享空间,但没有包含在该对象内,则表示这两个对象重叠。对象必须在其内部重叠;如果两个对象在单个点接触,或仅仅沿边界相交,则它们没有重叠。
按照 DE-9IM 模式矩阵字符串的定义,某个空间对象与另一个对象在空间上相关。
DE-9IM 模式矩阵字符标识了两个空间对象彼此在空间上的相关性。有关 DE-9IM 标准的详细信息,请参见了解空间关系。
对于点、点集合、线串或线串集合,如果未与自身相交也没有自切点,则为简单空间对象。
多边形、多边形集合和 GeometryCollection 始终为简单空间对象。
一对空间对象中没有彼此相交的所有点的集合。此差集在空间上等同于两个对象的并集减去其交集。余集包含交集的边界。
在下图中,阴影区域表示这两个矩形的余集。
下图显示了两个重叠的线串的余集。
所有对象中的所有点的集合(针对两个或更多个空间对象)。
对于多边形或多边形集合,如果以下所有项均成立:
它是封闭的;其起点与终点相同。
其边界是一组线串。
边界中没有任何两个交叉的线串。边界中的线串可能在某个点接触,但它们不能交叉。
内部的任何多边形都必须完全包含在其中;这些多边形不能接触外部多边形边界除顶点以外的任何位置。
有效的多边形:
无效的多边形:
当一个空间对象的所有点都在另一个对象的内部时,前者被视为在后者范围内。因此,如果某个点或线串仅沿多边形的边界存在,则不被视为在该多边形范围内。多边形边界不属于其内部。
如果某个点在线串上,则被视为在该线串范围内。线串的内部是线串上除起点和终点以外的所有点。
Within(a, b) 在空间上等同于 Contains(b, a)。