1 版本说明
- PostgreSQL 10
- PostGIS Bundle 2.5 for PostgreSQL 10
- PostGIS 2.0 Shapefile and DBF Loader Exporter
- QGIS 3.10
2 在 PostgreSQL 中创建数据库
- 打开 PG Admin4,创建新的数据库
- 添加 PostGIS 扩展
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b514acb0a1da6896e868eed1f16e580f.png#pic_center)
3 使用 PostGIS 导入 shp 数据
- 在管理器中连接上一步中创建的数据库表
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9a5a5d4b50853f547d50e4e041c449e2.png#pic_center)
- 导入文件,注意 shp 文件不要使用中文名,会有 .dbf file 无法打开的错误
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/713fb8f1ac6088817fd55281b52e6bec.png#pic_center)
- 在 SRID 配置使用的坐标系,然后导入
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2e09231c0bf24a081c2333ef6551e430.png#pic_center)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/390e2860d84462b705aa1d1b7432b5dd.png#pic_center)
4 打开数据库查看导入的文件
- 数据库表中可以看到,前面的字段属性对应的就是 shp 文件的属性表
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d65af3b0e598ff7d9856c647b01f679f.png#pic_center)
- 最后一个字段 **geom(geometry)**存储的就是地理空间位置信息,这是 shp 文件用 wkt / wkb 解析而成的, 转化后存在 PG 库中
geometry = GeomFromWKB(bytea WKB, SRID);
geometry = GeometryFromText(text WKT, SRID);
5 使用 QGIS 连接 PG 库并查看 shp 文件
- 连接数据库并测试连接
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/931618b8f167e8e0e1ed4430d5bf2117.png#pic_center)
- 加载库里的数据
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3a7fd808c6401e4c853a9b176f7d721e.png#pic_center)
6 shp 文件概述
- dbf:属性表
- shp:空间位置信息
- prj:投影信息
- shx:要素几何特征索引 ?????