Shape-Daten in der Datenbank zusammenfügen: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
 
 
(Eine dazwischenliegende Version von einem anderen Benutzer werden nicht angezeigt)
Zeile 3: Zeile 3:
 
Man könnte auch die Shape-Files vereinigen und dann einen Shape-File in die Datenbank einlesen.  
 
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 :-)
 
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.
+
Man erzeugt mit dem Kommando ''shp2pgsql'' mit dem Parameter -c eine SQL-Datei für die Erzeugung der entsprechende DB-Tabelle und die Daten des ersten Shape-Files.
  
Beispiel Erzeugung der SQL-Dateien mit den Daten der Shapefiles die vereinigt werden sollen:
+
Beispiel Erzeugung der ersten SQL-Datei mit den Daten des Shapefiles:
  
 
  /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/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  
+
 
 +
Für die folgedateien benutzt man den Parameter -a für shp2pgsql.<br>
 +
Beispiel für die Erzeugung der SQL-Dateien der folgenden Shape-Files, die zusammengefügt werden sollen.
 +
 
 +
  /usr/local/pgsql/bin/shp2pgsql -a /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.
 
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!
+
Dann in pgAdmin III die erste SQL-Datei öffnen und die Kommandos abschicken. Anschließend die weiteren Dateien in pgAdmin III öffnen und abschicken. Geht alles in Windeseile! Die Datenstruktur der Shapfiles muss aber gleich sein!

Aktuelle Version vom 23. Oktober 2006, 08:17 Uhr

--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 mit dem Parameter -c eine SQL-Datei für die Erzeugung der entsprechende DB-Tabelle und die Daten des ersten Shape-Files.

Beispiel Erzeugung der ersten SQL-Datei mit den Daten des Shapefiles:

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

Für die folgedateien benutzt man den Parameter -a für shp2pgsql.
Beispiel für die Erzeugung der SQL-Dateien der folgenden Shape-Files, die zusammengefügt werden sollen.

/usr/local/pgsql/bin/shp2pgsql -a /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 abschicken. Geht alles in Windeseile! Die Datenstruktur der Shapfiles muss aber gleich sein!