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

相关推荐
.Eyes1 小时前
OceanBase 分区裁剪(Partition Pruning)原理解读
数据库·oceanbase
MrZhangBaby2 小时前
SQL-leetcode— 2356. 每位教师所教授的科目种类的数量
数据库
一水鉴天2 小时前
整体设计 之定稿 “凝聚式中心点”原型 --整除:智能合约和DBMS的在表层挂接 能/所 依据的深层套接 之2
数据库·人工智能·智能合约
Loving_enjoy2 小时前
智能合约漏洞检测技术综述:守护区块链世界的“自动售货机”
经验分享·机器学习·课程设计·facebook
翔云1234563 小时前
Python 中 SQLAlchemy 和 MySQLdb 的关系
数据库·python·mysql
孙霸天3 小时前
Ubuntu20系统上离线安装MongoDB
数据库·mongodb·ubuntu·备份还原
Java 码农3 小时前
nodejs mongodb基础
数据库·mongodb·node.js
TDengine (老段)3 小时前
TDengine IDMP 运维指南(4. 使用 Docker 部署)
运维·数据库·物联网·docker·时序数据库·tdengine·涛思数据
TDengine (老段)3 小时前
TDengine IDMP 最佳实践
大数据·数据库·物联网·ai·时序数据库·tdengine·涛思数据
彬彬醤4 小时前
Mac怎么连接VPS?可以参考这几种方法
大数据·运维·服务器·数据库·线性代数·macos·矩阵