Shape-Daten in der Datenbank zusammenfügen

Aus kvwmap
Version vom 18. Oktober 2006, 16:13 Uhr von Heinz Schmidt (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

--Heinz Schmidt 16:13, 18. Okt 2006 (CEST)
Es Bestand das Problem die Daten von mehreren Shape-Files mit gleicher Struktur (das ist Bedingung) zusammenzufügen. Man könnte auch die Shape-Files vereinigen und dann einen Shape-File in die Datenbank einlesen. Einfacher ist es PostGIS dieses machen zu lassen :-) Man erzeugt mit dem Kommando shp2pgsql eine SQL-Datei für die entsprechende Tabelle jeweils für jeden Shape-File.

Beispiel Erzeugung der SQL-Dateien mit den Daten der Shapefiles die vereinigt werden sollen:

/usr/local/pgsql/bin/shp2pgsql -c /datenpfad_zum_shapefile/shape1.shp -s 2398 tabellenname  > daten_aus_shape1.sql 
/usr/local/pgsql/bin/shp2pgsql -c /datenpfad_zum_shapefile/shape2.shp -s 2398 tabellenname  > daten_aus_shape2.sql 
...

Wichtig ist, dass man als user postgres in einem Verzeichnis steht, in dem man Schreibrechte hat. Die Angabe des EPSG-Codes sollte auch nicht fehlen, hier 2398. Die Pfade sind entsprechend anzupassen.

Dann in pgAdmin III die erste SQL-Datei öffnen und die Kommandos abschicken. Anschließend die weiteren Dateien in pgAdmin III öffnen und nur die darin enthaltenen INSERT-Statements abschicken, also das CREATE TABLE u.a. entfernen, weil die Tabelle ja schon besteht und nur neue Datensätze hinzugefügt werden sollen. Geht alles in Windeseile! Die Datenstruktur der Shapfiles muss aber gleich sein!