= — 如果几何/地理 A 的坐标和坐标顺序与几何/地理 B 的坐标和坐标顺序相同,则返回 TRUE
。
boolean =(
geometry A , geometry B )
;
boolean =(
geography A , geography B )
;
如果几何/地理 A 的坐标和坐标顺序与几何/地理 B 的坐标和坐标顺序相同,则 =
运算符返回 TRUE
。PostgreSQL 使用为几何定义的 =、< 和 > 运算符来执行几何的内部排序和比较(即,在 GROUP BY 或 ORDER BY 子句中)。
只有在所有方面完全相等的几何/地理,具有相同的坐标,相同的顺序,才被此运算符视为相等。对于“空间相等”,忽略坐标顺序等内容,并且可以检测到以不同表示形式覆盖相同空间区域的要素,请使用 ST_OrderingEquals 或 ST_Equals |
此操作数不会使用几何上可能存在的任何索引。对于索引辅助的精确相等性测试,将 = 与 && 结合使用。 |
已更改:2.4.0,在之前的版本中,这是边界框相等,而不是几何相等。如果您需要边界框相等,请改用 ~=。
此方法支持圆形字符串和曲线。
此函数支持多面体曲面。
SELECT 'LINESTRING(0 0, 0 1, 1 0)'::geometry = 'LINESTRING(1 1, 0 0)'::geometry; ?column? ---------- f (1 row) SELECT ST_AsText(column1) FROM ( VALUES ('LINESTRING(0 0, 1 1)'::geometry), ('LINESTRING(1 1, 0 0)'::geometry)) AS foo; st_astext --------------------- LINESTRING(0 0,1 1) LINESTRING(1 1,0 0) (2 rows) -- Note: the GROUP BY uses the "=" to compare for geometry equivalency. SELECT ST_AsText(column1) FROM ( VALUES ('LINESTRING(0 0, 1 1)'::geometry), ('LINESTRING(1 1, 0 0)'::geometry)) AS foo GROUP BY column1; st_astext --------------------- LINESTRING(0 0,1 1) LINESTRING(1 1,0 0) (2 rows) -- In versions prior to 2.0, this used to return true -- SELECT ST_GeomFromText('POINT(1707296.37 4820536.77)') = ST_GeomFromText('POINT(1707296.27 4820536.87)') As pt_intersect; --pt_intersect -- f