将矢量数据导入PostGIS的方法有很多种,本文列举了每种方法的使用场景,请大家根据实际情况,做选择。
注意:无论选用哪种导入方式,均需要开启如下扩展。
CREATE EXTENSION postgis;
CREATE EXTENSION postgis_topology;
PostGIS自带的工具【PostGIS Shapefile Import/Export Manager】
首选推荐!
安装完PostGIS插件后,无需再安装其他软件,在开始菜单中即可找到此工具。数据库连接成功后,选择待导入的矢量数据后,点击Import,等待完成即可。

QGIS工具箱【导出到PostgreSQL】
使用QGIS也是不错的选择!即方便导入数据,也便于查看数据结果。在工具箱中数据库节点下,找到导出到PostgreSQL。

QGIS插件QGIS PostGIS Toolbox
这个插件同时提供了矢量和栅格数据的导入。点击这里,了解更多插件信息。
PostGIS默认提供的shp2pgsql
命令行工具更适合业务流程处理,便于与其他系统集成使用。使用示例如下。访问官网,获得详细参数解释。
shp2pgsql -c -D -I d:\1\甲4.shp public.jia4 > d:\1\jia4.sql
psql.exe -h localhost -p 5432 -U postgres -f d:\1\jia4.sql
自定义导入工具
当然,有时需要根据一些特定需求,自己实现一套矢量数据的导入工具。由于篇幅有限,暂时只把大体思路说明,以后再单独说明开发注意的细节。
1.使用GDAL打开矢量数据
2.获取控件空间参考信息,并在PostGIS中查询该空间参考是否支持。
3.新建一个表,列内容为矢量数据的属性字段以及geom字段。
4.通过ogr接口,获取每个矢量要素的Envelope,并将其转为WKT格式。构建Insert语句并执行。主要使用ST_GeogFromText,构建地理对象。
需要更多技术支持,联系我们。转载请注明出处。