名稱

ST_Equals — 測試兩個幾何物件是否包含相同的點集合

概要

boolean ST_Equals(geometry A, geometry B);

描述

如果給定的幾何物件在「拓撲上相等」,則返回 true。使用此方法可以獲得比「=」更好的答案。拓撲相等意味著幾何物件具有相同的維度,並且它們的點集佔據相同的空間。這表示拓撲上相等的幾何物件中,頂點的順序可能不同。要驗證點的順序是否一致,請使用 ST_OrderingEquals(必須注意,ST_OrderingEquals 比單純驗證點的順序是否相同更嚴格)。

用數學術語表示:ST_Equals(A, B) ⇔ A = B

以下關係成立:ST_Equals(A, B) ⇔ ST_Within(A,B) ∧ ST_Within(B,A)

[Important]

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

此方法實作了 OGC Simple Features Implementation Specification for SQL 1.1 的 s2.1.1.2 部分。

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

已變更:2.2.0 版本即使對於無效的幾何物件,如果它們在二進制上相等,也返回 true

範例

SELECT ST_Equals(ST_GeomFromText('LINESTRING(0 0, 10 10)'),
    ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));
 st_equals
-----------
 t
(1 row)

SELECT ST_Equals(ST_Reverse(ST_GeomFromText('LINESTRING(0 0, 10 10)')),
    ST_GeomFromText('LINESTRING(0 0, 5 5, 10 10)'));
 st_equals
-----------
 t
(1 row)