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中查看数据