如何使用 shp2pgsql

How to use shp2pgsql

对于像我这样不是自学成才的新手的人来说,我的问题应该很容易回答...

此页面上有一个备忘单,涉及在 GIS/DB 环境中使用的函数:http://www.bostongis.com/pgsql2shp_shp2pgsql_quickguide.bqg

我想创建一个脚本,允许用户在提供适当数据的情况下只需单击它即可启动该过程。但我不明白如何使用它。它显然不能在 Python 控制台中工作,也不能直接在 windows 控制台中工作。它应该如何工作?这是什么语言?

谢谢

shp2pgsql 确实是一个命令行工具。它与您的 PostgreSQL/PostGIS 安装(通常)一起提供,如果无法通过 PATH 变量访问,可以(通常)从您的 PostgreSQL 安装的 /bin 文件夹中 运行。如果需要,您也可以随时 'make' 自己在任何位置的源程序。

编辑:

设置脚本的一种方法(无论您是否在 qgis 自己的 python 环境中使用它)是使用 Pythons subprocess (or os.system) module (check related question here) 写入shell 并执行 shp2pgsql.

通过脚本(批量)插入(多个)shapefile 的稍微复杂的解决方案可能是通过 python 中的 gdal/ogr 模块实现 ogr2ogr(检查 this blog). That, however, would require a working installation of the gdal core library,以及相应的Python 绑定(至少要在 QGIS Python 环境之外使用,它预装了 AFAIK),有时会让人厌烦。一旦正确安装,它提供了一个强大的(我敢说是全能的) ) 通过 Python 进行地理数据管理和操作的工具集。

除此之外,blog link I provided also states the implementation of a batch insert script/tool (which operates ogr2ogr) in qgis 2.8 toolbox...maybe that can help you, either with your work directly or (via sourcecode) 为您指明了创建自己的工具的方向。