2017-02-16 62 views
0

我有两个包含两个多边形实际坐标的csv文件。我需要将csv文件的内容复制到名为'sample'的PostGIS表中。我需要找到两个多边形和相交区域的交集。 enter image description here将csv文件复制到PostGIS表中

我是PostGIS中的新成员。请帮帮我。

+0

是一个很广泛的话题......你什么都已经尝试过?你读过这个了吗? https://www.postgresql.org/docs/9.6/static/sql-copy.html –

回答

3

假设WGS84:

第一创建表

create table sample (lat float, lon float); 

然后将CSV到表(可能需要用定界符一些调整)。

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

然后纬度经度转换为点(因此假设WGS84,SRID 4326):

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

然后通过首先创建线串,则多边形创建从点表中的多边形。确保线串已关闭,这意味着第一个点必须等于最后一个点!

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文件中插入了一个新字段“文件名”,并将其值作为“part1”输入,之后(第二个csv文件)由'part2'表示。我根据它的'文件名'聚集表项。我需要找到part1簇和part2簇的交集区域。 – Aami

+0

我添加了一个部分来到达两个多边形的交集区域。 – kdd

相关问题