名称

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