名称

ST_RemoveSmallParts — 删除几何图形中的所有小部分(多边形环或线串)。

大纲

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

描述

返回不包含小部分(外环、内环或线串)的 geometry

此函数可用于地图简化中的预处理步骤,例如删除小岛屿或孔洞。

只有 (MULTI)POLYGON 和 (MULTI)LINESTRING 类型的几何体会被评估。其他几何体不会发生变化。

如果 minSizeX 大于 0,则会分割出宽度小于 minSizeX 的部分。

如果 minSizeY 大于 0,则会分割出高度小于 minSizeY 的部分。

minSizeXminSizeY 都是以几何体坐标系的单位进行度量的。

对于多边形类型,评估是针对每个环单独进行的,可能会得出以下结果之一:

  • 原始几何图形,

  • 所有环的顶点减少的多边形 (POLYGON),

  • 内环数量减少的多边形 (POLYGON)(可能还会减少顶点数),

  • POLYGON EMPTY,或者

  • 一个多边形数量减少的 MULTIPOLYGON(可能还减少了内部环的数量或顶点数),或者

  • MULTIPOLYGON EMPTY。

对于线串类型,评估是针对每个线串进行的,因此可能会得出以下结果:

  • 原始几何图形,

  • 一个顶点数减少的 LINESTRING,

  • LINESTRING EMPTY,

  • 一个线串数量减少的 MULTILINESTRING(可能还减少了顶点数),或者

  • MULTILINESTRING EMPTY。

可用性:3.5.0

示例

Code
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)))
Figure
Geometry figure for visual-st-removesmallparts-01
Code
SELECT ST_RemoveSmallParts('LINESTRING(10 10,20 20)',
    50, 50);
栅格输出
LINESTRING EMPTY