Shp2pgsql

Aus Geoportal
Version vom 3. Juni 2019, 16:17 Uhr von Felde (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

<translate>

Um Shapefiles in eine PostGIS-Datenbank zu laden, benutzen Sie das Werkzeug shp2pgsql , welches über ein Komandozeilenprogramm gestartet werden kann und dann zur Verfügung steht, wenn eine PostGis-Installation erfolgt ist. Gewöhnlich ist das Verzeichnis indem sich das Programm befindet bereits in den Suchpfad des Kommandozeilenprogramms integriert. Anderfalls muss zunächst in das Verzeichnis verzweigt werden, welches das Programm enthält (z.B. /var/lib/pgsql/bin). Der Programmaufruf hat folgende Syntax:

shp2pgsql [-options] shapefile.shp tabellenname dbname > name.sql

Beispiel:
shp2pgsql -s 31466 -W ISO-8859-1 bezirke.shp bezirksgenzen Verwaltungseinheiten > gemeindebezirke.sql


Options Verwendung Beispiel
s Angabe eines Koordinatenreferenzssytems im EPSG-Code, indem der Datenbestand importiert werden soll 31466
W Encoding ISO-8859-1
D Dieser Parameter benutzt beim Einlesen der Daten das Dump-Format, dadurch werden die Datensätze schneller eingelen als im standardmäßig eingestellten Insert-Format, welches jede eingefügte Zeile parst.
i Benutzt für alle Integer-Werte ein 32bit Integer-Format
a Dieser Parameter fügt Datensätze an eine exestierende Datenbanktabelle unter der Voraussetzung an, dass in den Tabellenspalten die richtige Anzahl und Datentypen für jedes Arttribut verfügbar sind.
I Erstellt einen GiST Index (Generalized Search Tree)


Das Programm erzeugt aus dem Shapefile eine Textdatei, die SQL-Statements zum Erstellen einer Tabelle in der Datenbank enthält. Diese Datei muß dann nur noch mittels psql eingelesen werden. Wichtig ist, dass man als user postgres in einem Verzeichnis steht, in dem man Schreibrechte hat. Die Syntax hierzu ist:

psql -f shapefile.sql

Beispiel:
psql -U postgres -d Verwaltungseinheiten -f gemeindebezirke.sql
Options Verwendung Beispiel
U Angabe des Users postgres
d Datenbankname Verwaltungseinheiten
f Angabe der SQL-Datei gemeindebezirke.sql

</translate>