当前位置:网站首页>postgis空间数据导入及可视化
postgis空间数据导入及可视化
2022-08-10 17:56:00 【yelangking1】
众所周知,postgis是一个开源的高性能空间数据库,其基于postgresql数据库进行扩展,完整支持OGC标准,同时提供了空间管理及空间分析等丰富的函数支撑。
当你拿到矢量数据后,为了让大家进行共享数据,而不是依赖于读取文件这种方式进行数据读取,可以采用数据库这种方式进行分享。同时可以基于标准sql进行数据操作,提高数据处理与分析效率。
本文将以矢量数据为例,分享三种常见的矢量数据导入到postgis数据库的方法。同时在pgadmin中进行空间数据的可视化。
一、系统操作环境说明:
1、操作系统:windows7 专业版 64位
2、gdal 3.4
3、postgis 12
4、postgresql 12
二、需要提前配置好的环境
1、在postgresql中创建一个数据库,安装后执行以下postgis扩展。
CREATE EXTENSION postgis;
2、执行以下语句,如果没有报错,说明扩展安装成功
SELECT ST_SetSRID(ST_Point(-87.71,43.741),4326),ST_GeomFromText('POINT(-87.71 43.741)',4326)
三、使用postgis shapefile 导入工具
1、打开postgis shapefile导入工具,点击开始,找到postgis工具
2、打开后看到以下页面
3、配置postgis连接
4、选择需要导入的shapefile文件。
5、选择文件后,点击import将矢量数据导入到postgis中
四、使用gdal的ogr2ogr命令进行导入
1、在gdal的bin\gdal\apps目录下,可以看到有很多gdal提供的命令行函数,通过调用这些命令行函数可以完成许多空间数据处理,分析。其中ogr2ogr就是一个矢量数据处理命令。
2、ogr2ogr函数说明
这里简单说几个比较常用的参数:
# -loc LAUNDER=NO -- 为了保持数据名,字段的是大小写区分的,不然会默认为小写字母。lco GEOMETRY_NAME=geom 将空间字段重命名。-nln biz_china3 表示对图层导入后表名进行修改。
参考命令如下:
ogr2ogr.exe -f PostgreSQL PG:"host=localhost port=5432 user=postgres password=postgres dbname=yelang_test" F:/vector_data/other/gdal_demo_data/china-data/china.gdb -overwrite -progress --config PG_USE_COPY YES -lco LAUNDER=YES -lco GEOMETRY_NAME=geom -nln biz_china3
五、使用geotools结合gdal进行更多自定义处理
关于使用geotools进行矢量数据导入的例子,可以参阅之前的博客,基于GeoTools的GeoJson导入到PostGis实战以及干货!使用Geotools解析shap数据实例。
六、使用pgadmin查看导入的空间数据
总结:本文重点介绍在postgis中,三种矢量数据的导入管理方式,分别是使用postgis导入工具、gdal的ogr2ogr函数以及编程式。其中,编程式的灵活度最高,还可以自定义处理逻辑,但对研发人员要求较高。其它两种使用成本低,开箱即用。各位可以根据自身业务需要进行选型采用。采用编程式导入还有一个好处就是可以进行投影和坐标转换,而前两者都会或多或少存在一些问题。希望文章对您有帮助,欢迎指正交流。
边栏推荐
- 不止跑路,拯救误操作rm -rf /*的小伙儿
- Toronto Research Chemicals农药检测丨Naled-d6
- 产品-Axure9英文版,A页面内a1状态跳转B页面的b2状态,(条件跳转状态)
- 去除富文本标签样式
- 【2011】【论文笔记】用THz-TDS观察水树——
- 实用工具在线网站
- Toronto Research Chemicals萜烯分析丨(+)-柠檬烯
- ZLMediaKit 服务器源码解读---RTSP推流拉流
- R语言使用ggpubr包的ggsummarystats函数可视化箱图(通过ggfunc参数设置)、在可视化图像的下方添加描述性统计结果表格、设置add参数为jitter添加抖动数据点
- 多线程与高并发(11)——经典面试题之实现一个容器,提供两个方法,add,size。
猜你喜欢
Flexsim 发生器和暂存区设定临时实体流颜色和端口
接口测试进阶接口脚本使用—apipost(预/后执行脚本)
【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
zabbix配置触发器
【图像分割】基于元胞自动机实现图像分割附matlab代码
忍不住 - 发个新帖子【为什么把红圈的功能入口隐藏?需要移动到鼠标到位置驻停才显示?】- 请投票
施工企业数字化转型解决方案设计思路
Wuling Hongguang MINI EV, the only drawback is safety
Toronto Research Chemicals萜烯分析丨(+)-柠檬烯
Toronto Research Chemicals霉菌毒素分析丨T2 四醇
随机推荐
关于奉加微PHY62xx系列如何选型?PHY6222/PHY6212/PHY6252
产品说明丨Android端使用MobPush快速集成方法
从Delta 2.0开始聊聊我们需要怎样的数据湖
函数柯里化(curry)
Active users of mobile banking grew rapidly in June, hitting a half-year high
【FAQ】【Push Kit】 华为怎么设置角标
const的自己理解
关于技术分享的思考
期货开户前要第一时间确认手续费
机器人控制器编程实践指导书旧版-实践三 直流电机(执行器)
Toronto Research Chemicals农药检测丨Naled-d6
Thoughts on Technology Sharing
【HMS core】【FAQ】Account Kit、push Kit典型问题合集1
CDH6.3.2之Kerberos安全认证_大数据培训
Toronto Research Chemicals 对乙酰氧基苯乙酮说明书
三星Galaxy Watch5产品图片流出 非Pro表款亦有蓝宝石加持
EasyGBS连接mysql数据库提示“can’t connect to mysql server”,如何解决?
忍不住 - 发个新帖子【为什么把红圈的功能入口隐藏?需要移动到鼠标到位置驻停才显示?】- 请投票
开发模式对测试的影响
机器人控制器编程实践指导书旧版-实践四 步进电机(执行器)