2017-02-16 3 views
0

Ich habe zwei CSV-Dateien mit den tatsächlichen Koordinaten von zwei Polygonen. Ich muss den Inhalt von CSV-Dateien in die PostGIS-Tabelle mit dem Namen "sample" kopieren. Ich muss den Schnittpunkt zweier Polygone und den Schnittpunkt finden. enter image description hereCOPY CSV-Datei in PostGIS-Tabelle

Ich bin neu in PostGIS. Bitte hilf mir.

+0

ist ein ziemlich breites Thema ... Was haben Sie schon versucht? Hast du das gelesen? https://www.postgresql.org/docs/9.6/static/sql-copy.html –

Antwort

3

Angenommen WGS84:

zuerst die Tabelle erstellen

create table sample (lat float, lon float); 

legen Sie die CSV in die Tabelle (möglicherweise einige Anpassung mit Begrenzern dauern).

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

dann lat lon konvertieren Punkte (also WGS84 vorausgesetzt, SRID 4326):

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

dann erstellen, das Polygon aus dem Punkttabelle, indem zunächst ein Linienfolge zu schaffen, wird ein Polygon. Stellen Sie sicher, dass die Linienfolge geschlossen ist, dh der erste Punkt muss gleich dem letzten Punkt sein!

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

Um den Kreuzungsbereich der beiden Polygone zu erhalten:

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

Ich habe ein neues Feld 'Dateiname' in der ersten CSV-Datei eingefügt und seinen Wert als 'part1' und später (zweite csv-Datei) eingegeben angezeigt durch 'part2'.I gruppiert die Tabelleneinträge basierend auf seinem' Dateiname '. Ich muss den Schnittbereich von Part1-Cluster und Part2-Cluster finden. – Aami

+0

Ich habe einen Abschnitt hinzugefügt, um zum Schnittbereich der beiden Polygone zu gelangen. – kdd