打印
[STM32F0]

ST_Geometry 的关系函数

[复制链接]
1434|43
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ST_Geometry 的关系函数
ST_Contains
ST_Crosses
ST_Disjoint
ST_Equals
ST_Intersects
ST_Overlaps
ST_Relate
ST_Touches
ST_Within
关系函数使用谓词来测试不同类型的空间关系。测试通过比较以下各项的关系达到此目的:

几何的外部 (E),即未被几何占用的所有空间
几何的内部 (I),即几何所占空间
几何的边界 (B),即几何内部和外部的分界

使用特权

评论回复
沙发
发顺丰更大nc|  楼主 | 2021-10-31 19:47 | 只看该作者
谓词用于测试关系。如果比较结果满足函数的条件,则谓词返回 1 或 t (TRUE);否则,返回 0 或 f (FALSE)。用于测试以确定空间关系的谓词对可具有不同类型或维度的几何对进行比较。

使用特权

评论回复
板凳
发顺丰更大nc|  楼主 | 2021-10-31 19:48 | 只看该作者
谓词可比较已提交几何的 x 和 y 坐标。将忽略 z 坐标和测量值(如果存在)。可将具有 z 坐标或测量值的几何与不具有 z 坐标或测量值的几何进行比较。

使用特权

评论回复
地板
发顺丰更大nc|  楼主 | 2021-10-31 19:49 | 只看该作者
Clementini 等人开发的维扩展九交模型 (DE-9IM) 在维度上扩展了 Egenhofer 和 Herring 的九交模型。DE-9IM 这种数学方法定义了不同类型和维度的几何之间的成对空间关系。此模型将所有类型的几何之间的空间关系表示为其内部、边界和外部的成对交集,还考虑到生成的交集的维度。

使用特权

评论回复
5
发顺丰更大nc|  楼主 | 2021-10-31 19:49 | 只看该作者
假设有几何 a 和 b,I(a)、B(a) 和 E(a) 分别表示 a 的内部、边界和外部,I(b)、B(b) 和 E(b) 分别表示 b 的内部、边界和外部。I(a)、B(a) 和 E(a) 分别与 I(b)、B(b) 和 E(b) 的交集生成了一个 3×3 矩阵。每个交集可生成不同维度的几何。例如,两个面的边界的交集可由点和线串组成,在这种情况下,dim(维度)函数将返回最大维度 1。

使用特权

评论回复
6
发顺丰更大nc|  楼主 | 2021-10-31 19:50 | 只看该作者
dim 函数返回值 -1、0、1 或 2。值 -1 对应于未找到交集时返回的空集或 dim(Ø)。

使用特权

评论回复
7
发顺丰更大nc|  楼主 | 2021-10-31 19:51 | 只看该作者
谓词交集示例
可通过将谓词结果与表示 DE-9IM 可接受值的模式矩阵进行比较来理解或验证空间关系谓词的结果。

模式矩阵包含每个交集矩阵单元的可接受值。可用的模式值如下:

T - 必须存在交集;dim = 0、1 或 2

F - 不得存在交集;dim = -1

* - 交集是否存在无关紧要;dim = -1、0、1 或 2

0 - 交集必须存在且最大维度必须为 0;dim = 0

1 - 交集必须存在且最大维度必须为 1;dim = 1

2 - 交集必须存在且最大维度必须为 2;dim = 2

每个谓词至少包含一个模式矩阵,但是有些谓词需要多个模式矩阵来描述各种几何类型组合的关系。

使用特权

评论回复
8
发顺丰更大nc|  楼主 | 2021-10-31 19:51 | 只看该作者
针对几何组合的 ST_Within 谓词的模式矩阵具有以下形式:

使用特权

评论回复
9
发顺丰更大nc|  楼主 | 2021-10-31 19:52 | 只看该作者
模式矩阵示例
简而言之,如果两个几何的内部相交,且 a 的内部和边界与 b 的外部不相交,则 ST_Within 谓词返回 TRUE。所有其他条件均无关紧要。

以下部分介绍用于空间关系的不同谓词。在这些部分的插图中,列出的第一个输入几何以黑色显示,第二个输入几何以橙色描绘。

使用特权

评论回复
10
发顺丰更大nc|  楼主 | 2021-10-31 19:52 | 只看该作者
ST_Contains
如果第一个几何完全包含第二个几何,则 ST_Contains 返回 1 或 t (TRUE)。ST_Contains 谓词返回的结果与 ST_Within 谓词的结果完全相反。

使用特权

评论回复
11
发顺丰更大nc|  楼主 | 2021-10-31 19:53 | 只看该作者

使用特权

评论回复
12
发顺丰更大nc|  楼主 | 2021-10-31 19:53 | 只看该作者
ST_Contains 谓词的模式矩阵规定两个几何的内部必须相交,并且次要几何(几何 b)的内部和边界不得与主要几何(几何 a)的外部相交。

使用特权

评论回复
13
发顺丰更大nc|  楼主 | 2021-10-31 19:54 | 只看该作者

使用特权

评论回复
14
发顺丰更大nc|  楼主 | 2021-10-31 19:55 | 只看该作者
ST_Contains 矩阵
使用 ST_Within 或 ST_Contains 可仅标识完全落入其他几何内部的几何。这有助于从选择内容中消除会影响结果的要素。在以下示例中,流动冰淇淋商贩希望确定哪个邻域的孩子(潜在客户)数量最多,以便将路线限制为前往那些区域。他将指定邻域面比作人口普查区域,此面具有的一项属性为 16 岁以下儿童的总数。

使用特权

评论回复
15
发顺丰更大nc|  楼主 | 2021-10-31 19:56 | 只看该作者
除非居住在人口普查区域 1 和人口普查区域 3 中的所有儿童都居住在落在 Westside 内部的细长区域中,否则在选择中包括这些区域会错误地增加 Westside 邻域中儿童的数量。通过指定仅包括完全位于邻域内部的人口普查区域 (ST_Within = 1),冰淇淋商贩可避免在 Westside 的那些区域浪费时间从而节约支出。

使用特权

评论回复
16
发顺丰更大nc|  楼主 | 2021-10-31 19:56 | 只看该作者
ST_Crosses
如果交集形成了一个维度比两个源几何的最大维度小一的几何,并且交集位于两个源几何内部,则 ST_Crosses 返回 1 或 t (TRUE)。ST_Crosses 只会为 ST_MultiPoint/ST_Polygon、ST_MultiPoint/ST_LineString、ST_Linestring/ST_LineString、ST_LineString/ST_Polygon 以及 ST_LineString/ST_MultiPolygon 这些比较返回 1 或 t (TRUE)。

使用特权

评论回复
17
发顺丰更大nc|  楼主 | 2021-10-31 19:57 | 只看该作者

使用特权

评论回复
18
发顺丰更大nc|  楼主 | 2021-10-31 19:58 | 只看该作者
此 ST_Crosses 谓词模式矩阵适用于 ST_MultiPoint/ST_LineString、ST_MultiPoint/ST_MultiLineString、ST_MultiPoint/ST_Polygon、ST_MultiPoint/ST_MultiPolygon、ST_LineString/ST_Polygon 和 ST_LineString/ST_MultiPolygon。此矩阵规定内部必须相交,并且规定至少主要几何(几何 a)内部与次要几何(几何 b)外部必须相交。

使用特权

评论回复
19
发顺丰更大nc|  楼主 | 2021-10-31 19:58 | 只看该作者

使用特权

评论回复
20
发顺丰更大nc|  楼主 | 2021-10-31 19:59 | 只看该作者
ST_Crosses 矩阵 1
此 ST_Crosses 谓词矩阵适用于 ST_LineString/ST_LineString、ST_LineString/ST_MultiLineString 和 ST_MultiLineString/ST_MultiLineString。此矩阵规定内部与内部交集的维度必须为 0(在某点相交)。如果交集的维度为 1(在某线串处相交),则 ST_Crosses 谓词会返回 FALSE,但 ST_Overlaps 谓词会返回 TRUE。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

214

帖子

0

粉丝