2017-06-02 12 views
1

ポイントレイヤーの周りに50メートルのサークル(バッファー)内に12セクション(パイのようなウェッジ)を生成するクエリがあります。PostgreSQL/PostGISで円のようなウェッジ(ジオメトリ)のIDを生成

With buffer as(
SELECT gid as pt_id, (ST_DumpPoints(ST_Buffer(geom,50,3))).geom as geom 
FROM my_point_table group by gid, geom 
UNION ALL 
SELECT gid as pt_id, geom FROM my_point_table 
) 
SELECT gid, (ST_Dump(ST_DelaunayTriangles(ST_Collect(geom),0, 0))).geom geom 
FROM buffer 
GROUP BY pt_id 

私はこのようなこれらのセクションにIDを割り当てるしたいと思います:これを行う方法について

assigning IDs to circle pie-like wedges

提案が高く評価されるだろう。

+0

は[gis.se]に属します –

+0

ありがとうございます。私はそこでそれを聞くかもしれない。 –

答えて

1

あなたは最初の部分はあなたの「my_point_table」テーブルを模擬することである

With my_point_table as (
    select 1 as gid, 'POINT(0 0)'::geometry as geom 
    union 
    select 2 as gid, 'POINT(1 1)'::geometry as geom 
), buffer as(
    SELECT gid as pt_id, (ST_DumpPoints(ST_Buffer(geom,50,3))).geom as geom 
    FROM my_point_table group by gid, geom 
    UNION ALL 
    SELECT gid as pt_id, geom FROM my_point_table 
) , tr as (
    SELECT pt_id, (ST_Dump(ST_DelaunayTriangles(ST_Collect(geom),0, 0))).geom geom 
    FROM buffer 
    GROUP BY pt_id 
) 
select row_number() OVER (partition by pt_id), pt_id, geom from tr 

このような何かを試すことができます。

row_number()OVER(pt_idによるパーティション) は、各機能の連続番号を生成するものです。

+0

よくありがとうございます。それは役に立ちましたが、期待どおりの結果を出していませんでした。モックポイントと自分のポイントレイヤの両方で試しました。 IDは1から6まで、次に12,11,7,8,9,10の順になっていました。 –

関連する問題