= — 如果几何/地理 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