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_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