无论使用哪种方式导入shapefile数据,只要是导入空间数据,第一步都是在postgreSQL中创建PostGIS空间扩展模块:
STEP1.打开pdAdmin,新建一个数据库或选择已有数据库,右键选择Query Tool
STEP2.在Query Editor中输入如下语句,运行
create extension postgis
目录
方法1:通过PostGIS导入
STEP1.打开PostGIS中的PostGIS Bundle 3 for PostgreSQL,连接目标数据库
连接目标数据库
STEP2.观察到数据库连接成功后,点击add field,选择要导入的文件,import即可
方法2:直接在pdAdmin中导入
STEP1.找到postgreSQL的安装目录(我的路径为D:\Program Files\PostgreSQL\13\bin),在bin文件下打开CMD,输入如下语句,运行
shp2pgsql E:\test.shp public.test > E:\test.sql
其中,E:\test.shp为要导入的目标shapefile文件路径, public.test为导入后名称,E:\test.sql为上述语句运行后生成的sql文件储存路径,按需修改。
STEP2.在postgreSQL中找到目标数据库,右键Query Tool,导入step1中生成的.sql文件,运行即可
方法3:通过QGIS导入
STEP1.打开QGIS,在Browser项目栏中找到PostGIS,右键新建连接
创建连接:
创建成功后,Browser项目栏的PostGIS下会出现我们新创建的连接
点击PostGIS_1,会弹出一个对话框,照旧输入postgreSQL的账号密码即可
STEP2.在数据库管理器中导入数据,通过连接进入postgreSQL
在工具栏中找到Database,点击DB Manager
选中连接后点击import导入数据 ,注意一定要点开连接旁边的小三角
Input加载数据,Options自选,点击OK即可
总结:
三种方法中,方法一比较简捷,但失败率比较高,尽量使用英文路径;方法二操作最多,但成功率接近100%,且在批量导入时有优势;方法三操作又麻烦成功率也不高。