Answers:
推荐的方法是使用pgsql2shp实用程序,该实用程序应与PostGIS一起安装。请注意,您必须在查询中包括“几何”列。
$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"
示例(qds_cnt.shp
在当前目录中创建):
$ 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].
如果要将整个表另存为shapefile,只需使用表名作为查询。
您也可以使用ogr2ogr实用程序,但是它具有更多的依赖性,因此不应该作为首选。如果确定,等效命令将是:
$ 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'"
也可以看看
我没有足够的信誉度来评论rudivonstaden的答案,但我想补充一点,以大写字母编写sql命令对pgsql2shp很重要。
例如,这将不起作用:
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "Select sp_count, geom from grid50_rsa where province = 'Gauteng'"
而这将工作:
$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"
pgsql2shp
将视图导出到shapefile?