psql2shp怎么将数据库的地图数据导出为shp文件
1、默认的PostgreSQL数据库只安装了postgresql95-server以及postgis这两个安装包,而psql2shp这样的工具是在另外的安装包里,需要单独安装的。安装命令是:yum install postgis24_95-utils postgis24_95-client postgis24_95 -y即需要安装postgis24_95-utils postgis24_95-client postgis24_95这三个安装包,如下面图中所示:
2、等到安装完毕后,会提示complete,同时也升级了相关的安装包,这个时候我们在postgresql的安装目录下,就能够看到已经安装好的psql2shp命令了,如下面第二张图中所示:
3、为了确认命令正常,我们先执行一下这个命令的帮助格式:psql2shp --help从下面图中可以看到,能够输出相关的帮助选项,说明命令配置正确。
4、现在我们就可以使用这个命令来导出数据了,导出的完整命令是:psql2shp -f /mydata/chn.shp -h 192.168.1.204 -u postgres -p password -g bbox ground "select * from init_region where region_id like 'CHN%' order by level asc";-f选项是导出需要的文件完整路径,-h指需要连接的主机, -u是用户名,-p是密码,-g是指的地图格式的字段名称。ground是数据库名,最后面是需要筛选出来的语句,相信搞IT的都比较熟悉。命令无误后,就可以看到执行成功,能看到执行的进度条。
5、执行完毕后,我们看一下生成的文件,可以看到默认情况下生成chn.shp这个shape格式的文件,以及另外4个附属文件。
6、我们将这5个文件拷贝到windows电脑上来,然后使用excel打开。就可以看到所有的数据都成功导出了。
7、但是处理数据的时候还发现了一个问题,就是shp文件处理程序只识别小写的字段,而我们导出的数据里面所有的字段都是大写的。最后查看pgsql2shp这个文件的帮助信息发现,原来还需要加上一个-k选项,来保证不修改数据库里的字段大小写。这样最终导出的数据才是数据库里的原始数据,如下面第二张图中所示。至此,数据导出为shp文件这个问题才算圆满解决。