Postgresql导入矢量数据

前期准备

工具:PgAdmin,postgis-bundle

Postgres安装和postgis安装可以百度别的教程。

创建数据库添加扩展

如图,使用PgAdmin创建名为shp的数据库,并在扩展item中添加postgis扩展。

添加扩展方法可以用查询工具输入以下sql语句:

sql 复制代码
CREATE EXTENSION postgis;

或者在扩展item右键 ->创建->扩展,然后在弹出界面选择postgis,如图:

导入数据

打开postgis-bundle工具(全称应该是PostGIS PostGIS Bundle 1 for PostgreSQL x64 15 Shapefile and DBF Loader Exporter类似的名称)

点击上面的View connection details,指定连接参数。

连接成功后会有Connection succeeded相关提示,如下:

点击Add File,选择需要上传的shp文件,然后主要修改SRID(即EPSG,常用有4326和3857)

如果是Arcgis导出的数据,并且属性字段表没有乱码的情况下,直接点击Import应该没有什么问题,如果有乱码可能需要设置编码。

设置编码

点击Options

修改UTF-8为你的字段编码。

数据导入异常处理

如果按照前面的流程还是导入失败可以使用QGIS重新导出一份UTF-8编码的数据,再次导入即可。

用QGIS打开shp文件,先打开属性表检查是否乱码。

如果出现乱码则在图层上右键属性->源->数据源编码,如图:

选择正确的编码,一般常用的编码为GB2323,GBK,GB18030,UTF-8等都试一下,再次检查属性表,如果不乱码则编码设置正确。如下:

然后图层右键导出->要素另存为,在弹出的界面格式选择ESRI Shapefile文件,然后设置文件名称,编码就默认UTF-8即可。如下:

不放心可以再用ArcMap打开导出的shp文件,然后检查属性表看看是否有乱码(ArcMap使用UTF-8编码),然后再用postgis-bundle工具导入,Options编码设置为UTF-8,导入成功会有Shapefile import completed字样,如下:

路径和文件名不能有中文,不然可能出现不能读取*.dbf的错误,如果出现导入失败Shapefile type:Point类似字样,应该是数据库没有添加postgis扩展。

导入成功后可以再PgAdmin中进行查看,如下:

在有魔法的情况可以点击geom列左侧的图标在osm底图下预览,如下:

相关推荐
中云DDoS CC防护蔡蔡2 小时前
DDOS和CC攻击谁更可怕
运维·服务器·经验分享·网络安全·ddos
ClickHouseDB2 小时前
ClickHouse Cloud 与 Snowflake 实时性价比对比:CostBench 测试中的 412 倍差距来
运维·数据库·系统架构
m0_639906942 小时前
Redis入门|五种数据结构、使用场景、持久化RDB&AOF
数据结构·数据库·redis
上海广测检测科技有限公司3 小时前
蓝牙音箱的 BQB 认证:音频服务层组合、引用链判定与测试状态设定
经验分享
时间售卖铺3 小时前
触发器与函数实战:MySQL高效编程秘诀
运维·数据库·mysql·云原生
qetfw3 小时前
UOS MariaDB 数据库:安装、最小权限与备份验证
linux·数据库·mariadb·uos
数智园区合作社4 小时前
问数平台怎么把同一个指标锁成一个数
大数据·数据库·人工智能·ai
lbb 小魔仙4 小时前
Windows搭建PaddleOCR+飞书Webhook自动打卡通知机器人:识别、推送与远程触发完整教程
数据库·人工智能·prometheus·时序数据库
captain3765 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis
心中有你02146 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)
java·数据库·算法