ST_Equals

确定两个空间对象在空间上是否等效。ST_Equals 的两个对象的坐标及其 WKT/WKB 表示必须完全匹配才能返回 TRUE。

在确定空间等价关系时点的顺序不重要:

  • LINESTRING(1 2, 4 3) 等于 LINESTRING(4 3, 1 2)。

  • POLYGON ((0 0, 1 1, 1 2, 2 2, 2 1, 3 0, 1.5 -1.5, 0 0)) 等于 POLYGON((1 1 , 1 2, 2 2, 2 1, 3 0, 1.5 -1.5, 0 0, 1 1))。

  • MULTILINESTRING((1 2, 4 3),(0 0, -1 -4)) 等于 MULTILINESTRING((0 0, -1 -4),(1 2, 4 3))。

坐标存储为 FLOAT 类型。因此,在导入熟知文本 (WKT) 值时,由于浮点数表示的限制,预期会出现舍入误差。

g1g2 必须都是 GEOMETRY 对象或都是 GEOGRAPHY 对象。此外,g1g2 不能都是 GeometryCollection 类型。

行为类型

不可变

语法

ST_Equals( g1, g2 )

参数

g1
要与 g2 相比的空间对象,类型为 GEOMETRY 或 GEOGRAPHY
g2
要与 g1 相比的空间对象,类型为 GEOMETRY 或 GEOGRAPHY

返回

BOOLEAN

支持的数据类型

示例

以下示例显示了 ST_Equals 的用法。

两个线串:

=> SELECT ST_Equals (ST_GeomFromText('LINESTRING(-1 2, 0 3)'),
   ST_GeomFromText('LINESTRING(0 3, -1 2)'));
 ST_Equals
--------------
 t
(1 row)

两个多边形:

=> SELECT ST_Equals (ST_GeographyFromText('POLYGON((43.22 42.21,40.3 39.88,
   42.1 50.03,43.22 42.21))'),ST_GeographyFromText('POLYGON((43.22 42.21,
   40.3 39.88,42.1 50.31,43.22 42.21))'));
 ST_Equals
--------------
 f
(1 row)