天天看点

如何使用shp2pgsql 将shp格式的GIS数据导入到PostgreSQL

postgis 2.2.0dev手册文档中涉及到一些基本的数据,这些数据需要导入到数据库中。使用qgis页面方式导入有一些问题。下面是导入过程

如果用qgis方法,导入过程中,会有一些sql错误,这些错误会引起导入中断,实际上shp文件会转换成sql语句 并且在sql文件末尾才加上commit,如果中途中断就等于事务中断,没有提交。

如何使用shp2pgsql 将shp格式的GIS数据导入到PostgreSQL

为了让正常进行,我们需要使用shp2psql这个命令先生成sql语句,然后再对sql进行改造,中间加上若干commit语句,然后使用psql命令执行

step1:服务器上面必须装上postgis,这样才会有shp2psql命令,安装略

step2:把f:personal studypostgispostgis-datadata目录下的数据上传到服务器上面,注意不止是要shp文件,其他文件要需要上传

这些文件是从这里下载的:

<a href="http://giswiki.hsr.ch/postgis-beispiele">http://giswiki.hsr.ch/postgis-beispiele</a>

如何使用shp2pgsql 将shp格式的GIS数据导入到PostgreSQL

shp2pgsql -s 4326 bc_roads.shp bc_roads&gt;bc_roads.sql

这里面有16w行数据

但是有些数据有些问题

在其中插入一些commit

然后执行sql语句

psql -d postgres -upg952 -f bc_roads.sql &gt;/home/pg9.5.2/bc_roads.log

导入数据即可

数据量比较大,产生的日志最好重定向一下