名前

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。

Availability: 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)))
図
Geometry figure for visual-st-removesmallparts-01
コード
SELECT ST_RemoveSmallParts('LINESTRING(10 10,20 20)',
    50, 50);
出力
LINESTRING EMPTY