ST_CollectionHomogenize — ジオメトリーコレクションを与えると、最も単純な表現を返します。
geometry ST_CollectionHomogenize(geometry collection);
ジオメトリーコレクションを与えると、「最も単純な」表現を返します。
同種の要素からなるコレクションが適切なマルチ系ジオメトリーとして返されます。
タイプ混合のコレクションはフラットな単一の GEOMETRYCOLLECTION に変換されます。
単一の非マルチジオメトリー要素からなるコレクションはその要素が返されます。
非マルチジオメトリーは変更されずに返ります。マルチジオメトリーへの変換が必要ならST_Multiを使います。
|
|
|
この関数は結果ジオメトリーの妥当性を保証されず、隣接やオーバラップする複数ポリゴンからは不正な MULTIPOLYGON が生成されます。この状況に陥っているかはST_IsValidで確認でき、ST_MakeValidで修復できます。 |
Availability: 2.0.0
単一要素のコレクションから非マルチジオメトリーへの変換
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0))');
POINT(0 0)
ネスト下単一要素のコレクションから非マルチジオメトリーへの変換:
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(MULTIPOINT((0 0)))');
POINT(0 0)
コレクションからマルチ系ジオメトリーへの変換:
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0), POINT(1 1))');
MULTIPOINT((0 0),(1 1))
ネストしたタイプ混合のコレクションからフラットなジオメトリーコレクションへの変換:
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION(POINT(0 0), GEOMETRYCOLLECTION( LINESTRING(1 1,2 2)))');
GEOMETRYCOLLECTION(POINT(0 0), LINESTRING(1 1,2 2))
ポリゴンのコレクションから (不正な) マルチポリゴンへの変換:
SELECT ST_CollectionHomogenize('GEOMETRYCOLLECTION (POLYGON ((10 50,50 50,50 10,10 10,10 50)),POLYGON ((90 50,90 10,50 10,50 50,90 50)))');
MULTIPOLYGON(((10 50,50 50,50 10,10 10,10 50)),((90 50,90 10,50 10,50 50,90 50)))