PostGIS Shapefile Import

In diesem Beitrag beschreiben wir Möglichkeiten für den Import von Shapefiles in die PostgreSQL/PostGIS Datenbank. Als Demodaten verwenden wir dazu die frei verfügbaren Landesgrenzen von NaturalEarth [1] im Shapeformat. Für den PostGIS Shapefile Import kommen die Open Source Desktop GIS Software QGIS [2] bzw. das Commandline-Tool shp2pgsql [3] zum Einsatz.

QGIS

Im ersten Schritt werfen wir einen Blick auf das zu importierende Shapefile. Im folgenden Screenshot ist auch das Tool DB Manager, welches wir in diesem Beitrag verwenden werden, mit einem roten Rahmen markiert.
qgis_shapefile

Falls die Verbindung zur PostgreSQL-Datenbank noch nicht in QGIS angelegt wurde, ist jetzt ein guter Zeitpunkt diesen Schritt nachzuholen.
qgis_postgis_connection

Ist die Verbindung einmal angelegt, können Shapefiles mit einer in QGIS integrierten Funktionalität, den sog. DB Manager, importiert werden. Abschließend soll dann noch das Commandline-Tool shp2pgsql ausprobiert werden.

Variante 1 – DB Manager

Im DB Manager kann, nach erfolgter Auswahl der gewünschten Datenbankverbindung und des gewünschten Zielschemas, mit einem Klick auf den Import-Button, sehr einfach der Import eines Shapefile in die PostGIS-Datenbank vorgenommen werden.

Schritt 1 – Auswahl der DB-Verbindung und des Zielschemas

qgis_dbmanager1

Schritt 2 – Shapefile Import

Nach einem Klick auf den im Screenshot von Schritt 1 markierten Import-Button, öffnet sich das folgende Dialogfenster für den Import von Vector-Layern. Wir wählen im Feld Input das zu importierende Shapefile aus und belassen die restlichen Standardeinstellungen für den Import.
qgis_import_vector_layer

Schritt 3 – Überprüfen des Imports

Der DB Manager bietet mit dem Preview-Tab eine bequeme Möglichkeit, den Import “an Ort und Stelle” zu überprüfen.
qgis_dbmanager3

Variante 2 – shp2pgsql

Für Personen die den Umgang mit der Commandline bevorzugen oder aufgrund einer großen Anzahl zu importierender Shapefiles gezwungen diese zu verwenden, gibt es das Tool shp2pgsql dessen Anwendung im folgenden kurz exemplarisch dargestellt werden soll. Details zu dessen Verwendung und zu den einzelnen Parametern sind unter [3] zu finden bzw. der gesamte Importprozess auch sehr gut unter [4] beschrieben.

Nach erfolgtem Import und Änderung des Tabellen-Owners (bei unserem Beispiel wurde die Tabelle als User postgres angelegt) kann der PostGIS Layer nun in QGIS hinzugefügt und betrachtet werden.

qgis_add_postgis_layer

qgis_postgis_layer

In unserem nächsten Beitrag werden wir uns mit dem Import von Shapefiles in Oracle Datenbanken beschäftigen.


Links
[1] NaturalEarth Landesgrenzen 50m
[2] QGIS
[3] Using PostGIS: Data Management and Queries – Loading GIS Data
[4] Loading data into PostGIS from the Command Line