ST_Touches — 测试两个几何对象是否至少有一个公共点,但它们的内部不相交
boolean ST_Touches(
geometry A, geometry B)
;
如果 A 和 B 相交,但它们的内部不相交,则返回 TRUE
。等价地,A 和 B 至少有一个公共点,并且公共点位于至少一个边界上。对于点/点输入,该关系始终为 FALSE
,因为点没有边界。
用数学术语表示: ST_Touches(A, B) ⇔ (Int(A) ⋂ Int(B) = ∅) ∧ (A ⋂ B ≠ ∅)
如果两个几何对象的 DE-9IM 交集矩阵与以下之一匹配,则此关系成立
FT*******
F**T*****
F***T****
此函数自动包含一个边界框比较,该比较利用几何对象上任何可用的空间索引。要避免使用索引,请改用 |
增强:3.0.0 启用了对 |
此方法实现了 OGC 简单要素 SQL 实现规范 1.1 s2.1.1.2 // s2.1.13.3
此方法实现了 SQL/MM 规范。SQL-MM 3: 5.1.28
在以下示例中,ST_Touches
谓词返回 TRUE
。
|
|
|
|
|
|
SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(1 1)'::geometry); st_touches ------------ f (1 row) SELECT ST_Touches('LINESTRING(0 0, 1 1, 0 2)'::geometry, 'POINT(0 2)'::geometry); st_touches ------------ t (1 row)