名称

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 简单要素 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)

另请参阅

ST_IsValidST_OrderingEqualsST_ReverseST_Within