【开发者笔记】利用shp2pgsql将shape文件导入到postgresql中

导入shp文件到postgresql中

1、首先,你需要让shp2pgsql命令可用,百度下载,加入环境变量即可。

  下载地址:https://download.osgeo.org/postgis/windows/pg96/

  

  如图,打开网址,下载目标文件,解压得到如下目录:

  将该目录添加到环境变量,然后cmd可运行shp2pgsql即可。

  

2、命令如下:

  

shp2pgsql -s 3857 -a -W GBK 文件名.shp 命名空间名.表名 | psql -h localhost -U postgres -d 数据库名-p 5432

3、可能会出现导入失败,因为要先给导入的数据库增加空间扩展功能:

create extension postgis;
create extension postgis_topology;
create extension fuzzystrmatch;
create extension postgis_tiger_geocoder;

4、命令行提示输入密码

  为了在程序中免密码输入,我们加入pgpass.conf文件。在postgresql的安装目录下有该文件。如图

  文件内容如下:localhost:5432:databaseName:username:password

  将该文件拷贝到如下目录:C:Users你的电脑名字AppDataRoamingpostgresql

  OK,大功告成!

5、注意事项

  a、表名全部小写,postgresql识别不了大写表名

  b、文件名路径不能过长,最好不要包含中文

  c、编码格式采用GBK不乱码,如果乱码可以试试UTF-8

原文地址:https://www.cnblogs.com/wyongbo/p/shp2pgsql.html