1.工具shp2pgsql.exe
安装PostGIS时,会在其安装目录下生成shp2pgsql.exe。
2.数据库增加空间扩展功能
如果数据库没有空间扩展功能,则.shp文件导入会失败。
create extension postgis;
create extension postgis_topology;
create extension fuzzystrmatch;
create extension postgis_tiger_geocoder;
3.导入命令
shp2pgsql -s 3857 -a -W GBK 文件名.shp 命名空间名.表名 | psql -h localhost -U postgres -d 数据库名-p 5432
其中,命令中的参数含义如下:
参数 | 含义 |
---|---|
-s | 空间参考标识符(SRID) |
-d -a -c -p |
重新建立表,并插入数据 在同一个表中增加数据 建立新表,并插入数据(缺省) 只创建表 |
-g | 指定要创建的表的空间字段名称(在追加数据时有用) |
-D | 使用dump方式,比缺省生成sql的速度快 |
-G | 使用类型geography |
-k | 保持标识符(列名,模式,属性)大小写。 |
-i | 将所有整型都转为标准的32-bit整数 |
-I | 在几何列上建立GIST索引 |
-S | 生成简单几何,而非MULTI几何 |
-t | 指定几何的维度 |
-w | 指定输出格式为WKT |
-W | 输入的dbf文件编码方式 |
-N | 指定几何为空时的操作 |
-n | 只导入dbf文件 |
-T | 指定表的表空间 |
-X | 指定索引的表空间 |
-? | 帮助 |
4.导入实例
shp2pgsql -s 26918 -d -W GBK nyc_homicides.shp | C:\"Program Files"\PostgreSQL\10\bin\psql -h localhost -U postgres -d Testpg -p 5433
其中,命令中的参数含义如下:
参数 | 含义 |
---|---|
-s 26918 | 空间参考标识符(SRID)为26918 |
-d | 重新建立表,并插入数据 |
-W GBK | 编码方式GBK |
nyc_homicides.shp | 待导入的文件名 |
执行命令时,需要输入数据库密码。
5.QGIS中查看数据