名称

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)