名前

ST_Dump — ジオメトリg1から作られたgeometry_dump(geom, path)行の集合を返します.

概要

geometry_dump[]ST_Dump(geometry g1);

説明

これは集合を返す関数(SRF)です.ジオメトリ(geom)と整数配列(path)からなるgeometry_dump行を返します. 入力ジオメトリが単純型(POINT,LINESTRING,POLYGON)の場合は,単一の行で返り,pathには空配列,geomには入力ジオメトリが入ります.入力ジオメトリがジオメトリコレクションまたはMULTI系の場合は,要素ごとの行で返り,pathはコレクション内の要素位置を表します.

ST_Dumpはジオメトリを拡張するのに便利です.新しい行を作る点では,GROUP BYの逆です.たとえば,MULTIPOLYGONをPOLYGON内に拡張するために使われます.

初出バージョン: PostGIS 1.0.0RC1, PostgreSQL 7.3以上が必要です.

[注意]

1.3.4より前では,この関数は曲線が含まれるジオメトリで使うとクラッシュしました.これは1.3.4以上で訂正されています.

この関数は三次元をサポートします.Zインデクスを削除しません.

このメソッドは曲線ストリングと曲線をサポートします.

SELECT sometable.field1, sometable.field1,
      (ST_Dump(sometable.the_geom)).geom AS the_geom
FROM sometable;

--複合曲線をLINESTRINGとCIRCULARSTRINGに分ける
SELECT ST_AsEWKT(a.geom), ST_HasArc(a.geom)
  FROM ( SELECT (ST_Dump(p_geom)).geom AS geom
         FROM (SELECT ST_GeomFromEWKT('COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))') AS p_geom) AS b
        ) AS a;
          st_asewkt          | st_hasarc
-----------------------------+----------
 CIRCULARSTRING(0 0,1 1,1 0) | t
 LINESTRING(1 0,0 1)         | f
(2 rows)

関連情報

geometry_dump, 「 PostGISジオメトリダンプ関数 」, ST_Collect, ST_Collect, ST_GeometryN