I miei dati si trovano in un database PostGIS. Vorrei generare un file di forma da una query. Come lo posso fare?
I miei dati si trovano in un database PostGIS. Vorrei generare un file di forma da una query. Come lo posso fare?
Risposte:
Il modo consigliato per farlo è usare l' utilità pgsql2shp , che dovrebbe essere installata con PostGIS. Si noti che è necessario includere la colonna geometria nella query.
$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"
Esempio (crea qds_cnt.shp
nella directory corrente):
$ 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].
Se si desidera salvare un'intera tabella come shapefile, utilizzare semplicemente il nome della tabella come query.
Puoi anche usare l' utilità ogr2ogr , ma ha più dipendenze, quindi non dovrebbe essere la prima opzione. Se sei determinato, il comando equivalente sarebbe:
$ 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'"
Guarda anche
Non ho abbastanza punti reputazione per commentare la risposta di rudivonstaden, ma aggiungerei che scrivere comandi sql in lettere maiuscole è importante per pgsql2shp.
Ad esempio, questo non funzionerà:
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "Select sp_count, geom from grid50_rsa where province = 'Gauteng'"
mentre questo funzionerà:
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
A seconda del pezzo di dati che si desidera esportare, un altro modo è usare qgis o un prodotto simile: lì si apre una connessione o postgis e si selezionano i dati che ti interessano; quindi salvi come file di forma ...
Se vuoi esportare automaticamente e / o grandi parti di dati, rudivonstaden ha dato le soluzioni appropriate!
pgsql2shp
per esportare una vista in un file di forma?