如何从无到有创造GIS数据

介绍

在实际项目执行过程中,我们常常面临无法通过网络获取某些GIS(地理信息系统)数据的情况。这种情况可能由数据的敏感性和安全性问题导致,或者是因为复杂的获取流程。不管遇到哪种障碍,当必要的数据不可获得时,我们必须自己动手创造这些数据。本文深入探讨了这个需求,提供了一个实用的指南,介绍如何快速有效地创造几种基本的GIS数据。

工具准备

工具 说明
r2v 可以将位图转换为矢量数据的软件
illustrator 矢量图像设计软件
QGIS 开源GIS工具,提供数据的显示、编辑和分析功能
CesiumJS 用于做GIS数据展示
CesiumLab 可以将SHP数据转为3DTiles建筑白模
水经注 GIS数据下载工具,Level高的数据需要收费

行政区域边界

数据说明

在网上查找我国的行政区域划分时,通常能够获取到省级、地级、县级和乡级(含镇、民族镇、乡、民族乡、街道办事处)等四级完整的行政区划数据。然而,村居级别的详细信息往往并不统一公开发布在网络上,这个数据我们可以通过位图转矢量的方式获取。

操作步骤

  1. 获取原始图片,可以通过拍摄纸质地图或者下载电子版地图得到原始文件,尽量正面高清光照均匀无投影,以便后续操作。
  2. 使用图像处理工具(photoshop之类)处理原始图片,清除文字、斑纹,仅保留点线面之类的地理信息,提高对比度,让背景尽量纯净无杂色。
  3. 使用工具进行边界识别并自动矢量化,导出.shp格式的文件,后面会介绍位图矢量化的三种方法。
  4. 把矢量数据拖到QGIS中修复处理,以卫星影像图垫底,把文件导入QGIS创建图层,调整尺寸、角度、位置以契合影像图,然后将破碎的区域边界修复。
  5. 完整的边界线图层可以直接转换为多边形数据图层。另外还需要补充行政区域中心,新建点图层后,参照原始图片绘制中心点即可。
  6. 将每个图层数据导出geojson数据格式,导出前记得选择合适的坐标系(默认wgs84),就可以在地图引擎上使用了。

位图矢量化的三种方法

  1. 使用chatGPT识别图片并返回svg矢量图,不得不说AI真的很强大,它马上写了个python脚本并生成了最终文件,可惜出来的数据太破碎了后期加工成本太高,等我学会了用python微调,这应该会是最便捷的方法。

  2. 使用illustrator自带的位图转矢量功能,这个方法效率也挺高的,还可以在转换完成后直接做修复处理,但问题是对原始图片要求较高,对比度较差的区域转换出来的内容破碎感还是比较严重

  3. 使用专业的r2v工具将位图转换为矢量,这个工具的好处就是它可以提前调整好边界阈值,最终出来的数据,相比之下破碎内容是最少的

建筑轮廓

数据说明

高质量的城市建筑轮廓数据需要通过专业的遥感卫星、航拍摄影、激光雷达(LiDAR)等手段进行精确测绘,并结合实地调查予以修正和完善,这是一项耗时耗力且成本高昂的工作,导致拥有此类数据的机构或个人不愿意轻易公开。如果项目对城市模型的精细化要求没有特别高,可以在AI技术的辅助下快速生成一些数据。

操作步骤

  1. 使用GIS数据下载工具(水经注等)下载高清的卫星影像图,截取项目展示所需的区域即可,精细度级别需要L18(空间分辨率1.19米)或者以上,导出TIF格式文件。

  2. 使用阿里云的AI-SEG进行单目标提取,直接生成SHP格式的矢量数据,极大程度减少人工绘制工作量。

  3. AI识别当然会有缺陷,这部分缺陷需要识别参数微调和人工二次处理来修复,在步骤二经过微调或者尽可能准确的数据后,直接导入到QGIS进行二次处理,比如粘连在一起的建筑轮廓,需要手工把它们切开;批量给建筑轮廓赋予名称、面积、高度等属性。

  4. 将SHP转换为3DTiles模型图层。在QGIS将SHP格式数据导出,打开Cesiumlab通用模型切片功能进行转换,即可快速生成白模。

  5. 如果对白模不满意,可以在转换前准备好各种条件的模型模型贴图,并设置好贴图规则(比如高度为1层的模型使用贴图1,高度为2层的模型使用贴图2等),这些规则的可用参数就是步骤3我们为每个建筑轮廓设定的属性。

  6. 导出3DTiles文件在地图引擎中使用。cesiumlab导出的文件包可以作为静态文件独立部署,或者放到项目工程中,调用入口文件tileset.json这些就不赘述了,可以看以往文章《在高德地图中实现3DTiles》

总结

以上就是在面对无法通过互联网获取GIS数据的情况时,我们可以尝试的方法,这里面全是个人经验总结。可以发现使用了很多工具,碍于篇幅无法对这些工具的操作步骤开展细说,即使展开了可能也会不慎全面。在实践中我们会遇到各种无法预料的问题,且将本文作为指南,具体操作中的问题和解决方法可以由作为读者的你来分项。

相关链接

CesiumLab 数据转换平台

AI Earth 地理数据云平台

水经注 地理数据下载工具

相关推荐
蓝帆傲亦几秒前
Web 前端搜索文字高亮实现方法汇总
前端
用户6937175001384几秒前
Room 3.0:这次不是升级,是重来
android·前端·google
漫随流水1 小时前
旅游推荐系统(view.py)
前端·数据库·python·旅游
踩着两条虫2 小时前
VTJ.PRO 核心架构全公开!从设计稿到代码,揭秘AI智能体如何“听懂人话”
前端·vue.js·ai编程
jzlhll1234 小时前
kotlin Flow first() last()总结
开发语言·前端·kotlin
蓝冰凌4 小时前
Vue 3 中 defineExpose 的行为【defineExpose暴露ref变量】详解:自动解包、响应性与实际使用
前端·javascript·vue.js
奔跑的呱呱牛4 小时前
generate-route-vue基于文件系统的 Vue Router 动态路由生成工具
前端·javascript·vue.js
柳杉5 小时前
从动漫水面到赛博飞船:这位开发者的Three.js作品太惊艳了
前端·javascript·数据可视化
Greg_Zhong5 小时前
前端基础知识实践总结,每日更新一点...
前端·前端基础·每日学习归类