Meine Daten befinden sich in einer PostGIS-Datenbank. Ich möchte aus einer Abfrage ein Shapefile generieren. Wie kann ich das machen?
44
Die empfohlene Vorgehensweise ist die Verwendung des Dienstprogramms pgsql2shp , das mit PostGIS installiert werden sollte. Beachten Sie, dass Sie die Geometriespalte in die Abfrage aufnehmen müssen.
$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"
Beispiel (erstellt qds_cnt.shp
im aktuellen Verzeichnis):
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
Initializing...
Done (postgis major version: 2).
Output shape: Polygon
Dumping: XXXXXXXXXXXXXXXXXXXX [1947 rows].
Wenn Sie eine ganze Tabelle als Shapefile speichern möchten, verwenden Sie einfach den Tabellennamen als Abfrage.
Sie können auch das Dienstprogramm ogr2ogr verwenden , es weist jedoch mehr Abhängigkeiten auf, sodass dies nicht die erste Option sein sollte. Wenn Sie festgelegt sind, lautet der entsprechende Befehl:
$ ogr2ogr -f "ESRI Shapefile" qds_cnt.shp PG:"host=localhost user=postgres dbname=gisdb password=password" -sql "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
Siehe auch
pgsql2shp
eine Ansicht in ein Shapefile zu exportieren?Ich habe nicht genug Reputationspunkte, um die Antwort von rudivonstaden zu kommentieren, aber ich würde hinzufügen, dass es für pgsql2shp wichtig ist, SQL-Befehle in Großbuchstaben zu schreiben.
Zum Beispiel funktioniert das nicht:
in der Erwägung, dass dies funktionieren wird:
quelle
Je nachdem, welche Daten Sie exportieren möchten, können Sie auch qgis oder ein ähnliches Produkt verwenden: Dort öffnen Sie eine Verbindung zu postgis und wählen die Daten aus, an denen Sie interessiert sind. dann speichern Sie als Shapefile ...
Wenn Sie automatisch und / oder große Teile von Daten exportieren möchten, gab rudivonstaden entsprechende Lösungen!
quelle