Skip to content

适用虚谷数据库版本

v12.9



适用虚谷数据库版本

v12.9


ST_CROSSES

📄字数 426
👁️阅读量 加载中...

功能描述

比较两个几何对象,如果它们的交集“空间交叉”,则返回 TRUE;

语法格式

sql
BOOLEAN ST_CROSSES( GEOMETRY geomA , GEOMETRY geomB );

参数说明

  • geomA:第一个目标 GEOMETRY 对象。
  • geomB:第二个目标 GEOMETRY 对象。

函数返回类型

BOOLEAN 类型

使用说明

  1. 两个几何图形有一些但不是所有的内部点是共同的。
  2. 两个几何图形内部的交集必须非空,并且维度必须小于两个输入几何图形的最大维度。
  3. 两个几何图形的交集不得等于任一个源几何图形。 否则,返回 FALSE。
  4. 数学术语: ST_CROSSES(A, B) ⇔ (dim( Int(A) ⋂ Int(B) ) < max( dim( Int(A) ), dim( Int(B) ) )) ∧ (A ⋂ B ≠ A) ∧ (A ⋂ B ≠ B)
  5. 如果 DE-9IM 交集矩阵匹配,则几何图形交叉:
  • T*T*****: 适用于点/线、点/面和线/面情况。
  • T***T**: 用于线/点、区域/点和区域/线情况。
  • 0********: 用于线/线情况。
  • 对于点/点和区域/区域情况,结果是 FALSE。
  1. 此功能自动包括利用几何上可用的任何空间索引的边界框比较。
  2. 此函数支持 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)