Name

ST_Equals — 测试两个几何图形是否包含同一组点

Synopsis

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 的支持

此方法实现了 SQL 1.1 的 OGC 简单功能规范。 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)