ST_RemoveSmallParts — 删除几何图形中的所有小部分(多边形环或线串)。
geometry ST_RemoveSmallParts(geometry geom, double precision minSizeX, double precision minSizeY);
返回不包含小部分(外环、内环或线串)的 geometry。
此函数可用于地图简化中的预处理步骤,例如删除小岛屿或孔洞。
只有 (MULTI)POLYGON 和 (MULTI)LINESTRING 类型的几何体会被评估。其他几何体不会发生变化。
如果 minSizeX 大于 0,则会分割出宽度小于 minSizeX 的部分。
如果 minSizeY 大于 0,则会分割出高度小于 minSizeY 的部分。
minSizeX 和 minSizeY 都是以几何体坐标系的单位进行度量的。
对于多边形类型,评估是针对每个环单独进行的,可能会得出以下结果之一:
原始几何图形,
所有环的顶点减少的多边形 (POLYGON),
内环数量减少的多边形 (POLYGON)(可能还会减少顶点数),
POLYGON EMPTY,或者
一个多边形数量减少的 MULTIPOLYGON(可能还减少了内部环的数量或顶点数),或者
MULTIPOLYGON EMPTY。
对于线串类型,评估是针对每个线串进行的,因此可能会得出以下结果:
原始几何图形,
一个顶点数减少的 LINESTRING,
LINESTRING EMPTY,
一个线串数量减少的 MULTILINESTRING(可能还减少了顶点数),或者
MULTILINESTRING EMPTY。
可用性:3.5.0
SELECT ST_RemoveSmallParts('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);
MULTIPOLYGON(((60 160,120 160,120 220,60 220,60 160)),((85 75,155 75,155 145,85 145,85 75)))
SELECT ST_RemoveSmallParts('LINESTRING(10 10,20 20)',
50, 50);
LINESTRING EMPTY