ジオメトリオブジェクトから geometry_dump レコードのセットを返し、コレクションを個々のコンポーネントに展開します。
構文
geometry_dump[] ST_Dump(geometry g1);パラメーター
| パラメーター | 説明 |
|---|---|
g1 | 指定するジオメトリオブジェクト。 |
説明
ST_Dump は、ジオメトリオブジェクトのコンポーネントを抽出します。返される各 geometry_dump レコードには、次の 2 つのフィールドが含まれます:
geom:コンポーネントのジオメトリオブジェクトpath:元のジオメトリ内でのコンポーネントの位置を示す整数配列
動作は入力タイプによって異なります:
Point、LineString、またはポリゴン入力 — 空の
path配列と入力ジオメトリをgeomとして含む単一のレコードを返します。マルチジオメトリまたはコレクション入力 — コンポーネントごとに 1 つのレコードを返し、コレクション内での各コンポーネントの位置を示す
path配列を含みます。
ST_Dump は GROUP BY の逆の操作です。GROUP BY が行を集約して単一のジオメトリにするのに対し、ST_Dump は単一のジオメトリを複数の行に展開します。典型的なユースケースは、MultiPolygon を個々のポリゴンに展開することです。
この関数は、Circular String、曲線、Polyhedral Surface、Triangle、不規則三角形網 (TIN) サーフェス、3D オブジェクトなどのジオメトリタイプをサポートします。
例
次の例では、MULTILINESTRING をそのコンポーネントである LINESTRING ジオメトリに展開します。path 列は、各コンポーネントの位置を示します。
SELECT (t.dump).path, ST_AsText((t.dump).geom)
FROM (
SELECT ST_Dump('MULTILINESTRING((0 0,0 2),(0 1,0 3))'::geometry) AS dump
) AS t;出力:
path | st_astext
------+---------------------
{1} | LINESTRING(0 0,0 2)
{2} | LINESTRING(0 1,0 3)
(2 rows)