名稱

ST_Expand — 傳回從另一個邊界框或幾何擴展的邊界框。

概要

geometry ST_Expand(geometry geom, float units_to_expand);

geometry ST_Expand(geometry geom, float dx, float dy, float dz=0, float dm=0);

box2d ST_Expand(box2d box, float units_to_expand);

box2d ST_Expand(box2d box, float dx, float dy);

box3d ST_Expand(box3d box, float units_to_expand);

box3d ST_Expand(box3d box, float dx, float dy, float dz=0);

描述

傳回從輸入的邊界框擴展的邊界框,可以指定一個單一距離,該框應在兩個軸上擴展,也可以為每個軸指定擴展距離。使用雙精度。可用於距離查詢,或將邊界框篩選器新增至查詢以利用空間索引。

除了接受和傳回幾何的版本之外,ST_Expand 還提供了接受和傳回 box2dbox3d 資料類型的變體。

距離單位與輸入的空間參考系統單位相同。

ST_Expand 與 ST_Buffer 類似,不同之處在於緩衝會向所有方向擴展幾何,而 ST_Expand 則會沿每個軸擴展邊界框。

[Note]

在 1.3 版之前,ST_Expand 與 ST_Distance 結合使用來執行可索引的距離查詢。例如,geom && ST_Expand('POINT(10 20)', 10) AND ST_Distance(geom, 'POINT(10 20)') < 10。這已被更簡單、更有效率的 ST_DWithin 函數取代。

可用性:1.5.0 行為已變更為輸出雙精度而不是 float4 座標。

增強功能:2.0.0 引入了對多面體表面、三角形和 TIN 的支援。

增強功能:2.3.0 新增了對在不同維度中以不同數量擴展盒子的支援。

此函數支援多面體表面。

此函數支援三角形和三角不規則網路表面 (TIN)。

範例

[Note]

以下範例使用美國國家地圖集等面積 (SRID=2163),這是一個公尺投影

		
--10 meter expanded box around bbox of a linestring
SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 110701,2312892 110714)', 2163),10) As box2d);
					 st_expand
------------------------------------
 BOX(2312882 110666,2312990 110724)

--10 meter expanded 3D box of a 3D box
SELECT ST_Expand(CAST('BOX3D(778783 2951741 1,794875 2970042.61545891 10)' As box3d),10)
							  st_expand
-----------------------------------------------------
 BOX3D(778773 2951731 -9,794885 2970052.61545891 20)

 --10 meter geometry astext rep of a expand box around a point geometry
 SELECT ST_AsEWKT(ST_Expand(ST_GeomFromEWKT('SRID=2163;POINT(2312980 110676)'),10));
											st_asewkt
-------------------------------------------------------------------------------------------------
 SRID=2163;POLYGON((2312970 110666,2312970 110686,2312990 110686,2312990 110666,2312970 110666))

		

另請參閱

ST_BufferST_DWithinST_SRID