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) 值时,由于浮点数表示的限制,预期会出现舍入误差。
g1
和 g2
必须都是 GEOMETRY 对象或都是 GEOGRAPHY 对象。此外,g1
和 g2
不能都是 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)