があるため、一般に、ポリゴンを線に変換するのは簡単ではありません。 1対1のマッピングはありません ポリゴンのさまざまな要素がさまざまなラインストリングにマップされます(外部リング、内部リングなど)。
それを考慮すると、次のような可能なアプローチに従って、それぞれを個別に分割する必要があります。
SELECT ST_AsText( ST_MakeLine(sp,ep) )
FROM
-- extract the endpoints for every 2-point line segment for each linestring
(SELECT
ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) as sp,
ST_PointN(geom, generate_series(2, ST_NPoints(geom) )) as ep
FROM
-- extract the individual linestrings
(SELECT (ST_Dump(ST_Boundary(geom))).geom
FROM mypolygontable
) AS linestrings
) AS segments;
mypolygontable
に保存されているポリゴンデータによって異なります 、境界だけでなくダンプすることもできます(上記のようにST_Boundary
を使用) )だけでなく、他の要素。より詳細な概要を含む上記のコードは、postgis-usersリストから取得されます:ポリゴンをN行の文字列に分割
PostGISでラインストリングまたはポリゴンを個々のベクターに分解する