忍者ブログ
[330] [329] [328] [327] [326] [325] [324] [323] [322] [321] [320]

DATE : 2024/04/20 (Sat)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2007/08/24 (Fri)

MULTILINE や MULTILINESTRING など、複数の幾何(geometry)オブジェクトが含まれるオブジェクト(GEOMETRYCOLLECTION)から各幾何オブジェクトを取り出すには、ST_Dump 関数を使用します。

GEOMETRYCOLLECTION からは、そこに含まれる幾何オブジェクトが1つずつ返され、GEOMETRYCOLLECTION 以外(POINT、LINESTRING など)からはそのオブジェクトがそのまま返されます。

ST_Dump 関数から返されるのは、geometry_dump 型のデータで、これは GEOMETRYCOLLECTION 内のインデックス(path、整数配列型)と幾何オブジェクト(geom、geometry 型)でできた複合型です。GEOMETRYCOLLECTION 以外の場合は、path は空の配列になります。

複合型なので、幾何オブジェクトのみを取り出すには、次のように列を指定します。

( <geometry_dump 型を返す列> ).geom

なお、次のような表記もできるようです。

geom( <geometry_dump 型を返す列> )

road テーブル内の MULTILINESTRING を LINESTRING に分解して取り出す SQL は次の通りです。geometry 型のデータは、the_geom 列に格納されているとします。

SELECT ( ST_Dump( the_geom ) ).geom
FROM road

なお、PostGIS 1.3 未満では、ST_Dump 関数ではなく、 Dump 関数を使用します。

参考文献

PR
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
ブログ内検索
最近の状況
リンク
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック