sql >> データベース >  >> RDS >> PostgreSQL

PostGISを使用してポリゴンデータを線分に変換する方法

    があるため、一般に、ポリゴンを線に変換するのは簡単ではありません。 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でラインストリングまたはポリゴンを個々のベクターに分解する



    1. Laravel SQLSTATE [22007]:無効な日時形式:1292不正な日時値:'2019-03-1002:00:39'列'updated_at'(夏時間?)

    2. csvをoracleでテーブルに変換する方法

    3. Postgres関数の列名としてパラメーターを使用する

    4. 長時間実行されているデータベース操作をキャンセルするにはどうすればよいですか?