1

私は空間データにpostgresとpostgisを使用しています。交点のセットを含むテーブルがあります。以下はテーブルの構造です。

ここに画像の説明を入力してください

各ポイントは、2つの道路間の交差点を表します。しかし、2本ではなく3本の道路が交差する道路がいくつかあり、そのために3つの異なるポイントが作成されています。次の画像は問題を示しています。

ここに画像の説明を入力してください

3つの異なるポイントを1つのポイントにまとめたいと思います。そのポイントは、3つの異なる道路ではなく、3つの道路すべての交差点を表します。

st_collectとst_convexhullを使用し、st_centroidよりもポイントから単一のポイントを見つけることを考えていました。しかし、私はそれを機能させることができません、おそらく私は間違ったアプローチを取っています。

そのような問題にどのように取り組むのが最善ですか?

4

1 に答える 1

1

この例では、st_convexhull を使用せずに 3 点から重心を計算する方法を示しています。凸包を使用する理由がわかりません。

with mypoints as (
    select 1 id, 1 cat, ST_MakePoint(5, 5) geom
    union all
    select 2 id, 1 cat, ST_MakePoint(5, 10) geom
    union all
    select 3 id, 1 cat, ST_MakePoint(8, 8) geom
)
select st_astext(st_centroid(st_collect(geom))) from mypoints group by cat;
于 2013-02-25T20:56:09.163 に答える