名稱

ST_RemoveSmallParts — 移除幾何圖形中過小的部分(多邊形環或線串)。

概要

geometry ST_RemoveSmallParts(geometry geom, double precision minSizeX, double precision minSizeY);

描述

回傳一個沒有過小部分(外部或內部多邊形環,或線串)的幾何圖形

此函式可用作建立簡化地圖的預處理步驟,例如移除小島或孔洞。

它僅評估類型為 (MULTI)POLYGON 和 (MULTI)LINESTRING 的幾何圖形。其他幾何圖形保持不變。

如果 minSizeX 大於 0,則若部分的寬度小於 minSizeX,則將其剔除。

如果 minSizeY 大於 0,則若部分的高度小於 minSizeY,則將其剔除。

minSizeXminSizeY 均以幾何圖形的座標系統單位來測量。

對於多邊形類型,會針對每個環單獨進行評估,這可能會導致以下結果之一:

  • 原始幾何圖形、

  • 一個具有所有頂點較少之環的 POLYGON、

  • 一個具有減少數量之內部環(可能具有較少頂點)的 POLYGON、

  • 一個空的 POLYGON,或者

  • 一個具有減少數量之多邊形(可能具有較少內部環或頂點)的 MULTIPOLYGON,或者

  • 一個空的 MULTIPOLYGON。

對於線串類型,會針對每個線串進行評估,這可能會導致以下結果之一:

  • 原始幾何圖形、

  • 一個具有減少數量之頂點的 LINESTRING、

  • 一個空的 LINESTRING、

  • 一個具有減少數量之線串(可能具有較少頂點)的 MULTILINESTRING,或者

  • 一個空的 MULTILINESTRING。

範例:ST_RemoveSmallParts() 應用於多邊形。藍色部分保留。

可用性:3.5.0

範例

			SELECT ST_AsText(
			ST_RemoveSmallParts(
			ST_GeomFromText('MULTIPOLYGON(
				((60 160, 120 160, 120 220, 60 220, 60 160), (70 170, 70 210, 110 210, 110 170, 70 170)),
				((85 75, 155 75, 155 145, 85 145, 85 75)),
				((50 110, 70 110, 70 130, 50 130, 50 110)))'),
				50, 50));
		
		st_astext
		---------
			MULTIPOLYGON(((60 160,120 160,120 220,60 220,60 160)),((85 75,155 75,155 145,85 145,85 75)))
		
			SELECT ST_AsText(
			ST_RemoveSmallParts(
			ST_GeomFromText('LINESTRING(10 10, 20 20)'),
				50, 50));
		
		st_astext
		---------
			LINESTRING EMPTY