Mit dem Kommandozeilen-Tool “shp2pgsql” kannst du osm-Daten, die im esri-shapefile-Format vorliegen, in eine *.sql umwandeln. In einem zweiten Schritt werden diese *.sql in die PostGIS-Datenbank geladen. Die Tools findest du beide im Pfad deiner Installation (…\PostgreSQL\9.0\bin\).
shp2pgsql.exe -c -I -s 4326 DeinShapefile.shp natural osm > DeineSQL.sql
Erläuterung zu den Optionen:
- -c: Erstellt eine neue Tabelle
- -I: Erstellt einen spatial index
- -s: Legt den SRID (spatial reference ID) fest. In diesem Fall epsg: 4326
- DeinShapefile.shp: Pfad zu dem Shapfile, dass du in deine PostGIS-Datenbank importieren möchtest
- natural: Name der Tabelle
- osm: Name der Datenbank
- > DeineSQL.sql: Name und Pfad des Outputfiles
Nachdem du nun erfolgreich das Shapefile in eine SQL-Datei umgewandelt hast, muss dieses in deine PostGIS geladen werden. Dies passiert im zweiten Schritt:
psql.exe -U postgres -d osm -f DeineSQL.sql
Erläuterung zu den Optionen:
- -U: Der Benutzername deiner PostGIS-Datenbank.
- -d: Name der Datenbank
- -f: Pfad und Name des erstellten *.sql-files
Beim Vergleich der importierten Tabelle und der Attributtabelle fällt auf, dass die Struktur die gleiche geblieben ist. In der Datenbank existieren jedoch zwei weitere Spalten: Zum einen der primary key und zum anderen die Spalte „the_geom“. Der primary key wurde mit dem flag „-I“ erstellt. Die Geometriespalte „the_geom“ beinhaltet die Informationen über die Geometrien der einzelnen Features (also ob es sich um Punkte, Linien oder Polygone handelt).
Die Vorteile beim Import mit „shp2pgsql“ sind seine Zuverlässigkeit auch bei größeren Datenmengen. Wenn jedoch nur die Geometrien, beispielsweise für kartographische Darstellungen benötigt werden, so ist dieses Kommandozeilen-Tool meine erste Wahl. Ansonsten lohnt sich ein Blick auf osmosis.
Die ebenfalls angebotene shp2pgsql-GUI versagt bei größeren Datenmengen recht schnell und ist daher nur für kleinere Datensätzen zu empfehlen.
Trackbacks