名稱

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****

[Note]

此函數會自動包含邊界框比較,該比較會利用幾何物件上可用的任何空間索引。若要避免使用索引,請改用 _ST_Touches

[Important]

增強功能:3.0.0 啟用對 GEOMETRYCOLLECTION 的支援

此方法實作了 OGC 簡單功能 SQL 1.1 實作規範。s2.1.1.2 // s2.1.13.3

此方法實作了 SQL/MM 規範。SQL-MM 3: 5.1.28

範例

在下列範例中,ST_Touches 述詞會返回 TRUE

POLYGON / POLYGON

POLYGON / POLYGON

POLYGON / LINESTRING

LINESTRING / LINESTRING

LINESTRING / LINESTRING

POLYGON / POINT

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)