名前

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。

Availability: 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