名稱

= — 如果幾何/地理 A 的座標和座標順序與幾何/地理 B 的座標和座標順序相同,則傳回 TRUE

概要

boolean =( geometry A , geometry B );

boolean =( geography A , geography B );

描述

如果幾何/地理 A 的座標和座標順序與幾何/地理 B 的座標和座標順序相同,則 = 運算子會傳回 TRUE。 PostgreSQL 使用為幾何定義的 =, < 和 > 運算子來執行幾何的內部排序和比較(例如在 GROUP BY 或 ORDER BY 子句中)。

[Note]

只有在所有方面完全相等,具有相同的座標,且順序相同的幾何/地理,才會被此運算子視為相等。對於「空間相等」,忽略座標順序等因素,並能檢測以不同表示形式覆蓋相同空間區域的特徵,請使用 ST_OrderingEqualsST_Equals

[Caution]

此運算元將不會使用任何可能在幾何上可用的索引。對於索引輔助的精確相等性測試,請將 = 與 && 結合使用。

已變更: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

另請參閱

ST_Equals, ST_OrderingEquals, ~=