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底图下预览,如下:

相关推荐
爬山算法7 小时前
Redis(162)如何使用Redis实现消息队列?
数据库·redis·缓存
u***32437 小时前
【Redis】centos7 systemctl 启动 Redis 失败
数据库·redis·缓存
煎蛋学姐7 小时前
SSM社区生鲜电商平台dq96z(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·用户管理·ssm 框架·社区生鲜电商·商品信息管理
杨云龙UP7 小时前
从0搭建Oracle ODA NFS异地备份:从YUM源到RMAN定时任务的全流程
linux·运维·数据库·oracle
倔强的石头_7 小时前
从 Oracle 到 KingbaseES:破解迁移痛点,解锁信创时代数据库新可能
数据库
踢足球09297 小时前
Redis的典型应用
数据库·redis·缓存
hadage2337 小时前
--- redis 常见问题 ---
数据库·redis·mybatis
O***P5718 小时前
redis批量删除namespace下的数据
数据库·redis·缓存
5***26228 小时前
SQL Server导出和导入可选的数据库表和数据,以sql脚本形式
数据库·sql
JSUITDLWXL8 小时前
Oracle记录被锁的查询与强制删除方法
数据库·oracle