ST_CROSSES
📄字数 426
👁️阅读量 加载中...
功能描述
比较两个几何对象,如果它们的交集“空间交叉”,则返回 TRUE;
语法格式
sql
BOOLEAN ST_CROSSES( GEOMETRY geomA , GEOMETRY geomB );参数说明
- geomA:第一个目标 GEOMETRY 对象。
- geomB:第二个目标 GEOMETRY 对象。
函数返回类型
BOOLEAN 类型
使用说明
- 两个几何图形有一些但不是所有的内部点是共同的。
- 两个几何图形内部的交集必须非空,并且维度必须小于两个输入几何图形的最大维度。
- 两个几何图形的交集不得等于任一个源几何图形。 否则,返回 FALSE。
- 数学术语:
ST_CROSSES(A, B) ⇔ (dim( Int(A) ⋂ Int(B) ) < max( dim( Int(A) ), dim( Int(B) ) )) ∧ (A ⋂ B ≠ A) ∧ (A ⋂ B ≠ B)。 - 如果 DE-9IM 交集矩阵匹配,则几何图形交叉:
T*T*****: 适用于点/线、点/面和线/面情况。T***T**: 用于线/点、区域/点和区域/线情况。0********: 用于线/线情况。- 对于点/点和区域/区域情况,结果是 FALSE。
- 此功能自动包括利用几何上可用的任何空间索引的边界框比较。
- 此函数支持 GEOMETRYCOLLECTION。
示例
sql
SQL> SELECT ST_CROSSES('LINESTRING(0 0,3 3)'::GEOMETRY,'LINESTRING(0 1,1 0)'::GEOMETRY);
+-------+
| EXPR1 |
+-------+
| T |
+-------+
(1 row)有重叠,但不交叉:
sql
SQL> SELECT ST_CROSSES('LINESTRING(0 0,3 3)'::GEOMETRY,'LINESTRING(0 0,1 1)'::GEOMETRY);
+-------+
| EXPR1 |
+-------+
| F |
+-------+
(1 row)