2017-02-16 6 views
0

2つのポリゴンの実際の座標を含む2つのcsvファイルがあります。私は、csvファイルの内容をPostGISテーブル 'sample'にコピーする必要があります。私は2つのポリゴンの交差点と交差点を見つける必要があります。 enter image description herePostgISテーブルへのcsvファイルのコピー

PostGISの新機能です。私を助けてください。

+0

は非常に広範なトピックです...あなたはすでに何をしようとしているのですか?これを読んだのですか? https://www.postgresql.org/docs/9.6/static/sql-copy.html –

答えて

3

WGS84と仮定すると:

を最初に(区切り文字でいくつかの調整がかかる場合があります)テーブルにcsvファイルを挿入し

create table sample (lat float, lon float); 

テーブルを作成します。

alter table sample add column geom geometry(point, 4326) 
    using st_setsrid(st_makepoint(lon, lat),4326); 

次いでまず、ポリゴンを折れ線を作成することによって、ポイントテーブルからポリゴンを作成する:

copy sample from 'path_to_csv' delimiter ';' csv; 

次いで(従ってWGS84、SRID 4326を想定)点に緯度経度に変換します。線ストリングが閉じていることを確認します。これは、最初のポイントが最後のポイントと等しくなければならないことを意味します。 2つのポリゴンの交差領域を取得するには

select st_makepolygon(st_makeline(geom)) geom 
    into polygon1 
    from sample; 

select filename, st_makepolygon(st_makeline(geom)) geom 
    into polygons 
    from sample 
    group by filename; 
select st_area(st_intersection(a.geom,b.geom)) 
    from polygons a, polygons b 
    where a.filename == 'part1' and b.filename == 'part2' 
+0

最初のcsvファイルに新しいフィールド 'filename'を挿入し、その値を 'part1'以降に入力しました(2番目のcsvファイル) 'part2'で示されています。私はテーブルエントリをその 'ファイル名'に基づいてクラスタ化しました。私はpart1クラスタとpart2クラスタの交差領域を見つける必要があります。 – Aami

+0

2つのポリゴンの交差領域に到達するセクションを追加しました。 – kdd

関連する問題