介绍:

不论是智慧城市、数字孪生、指控系统、边海防管控、智慧军营、遥感图像识别等等,基于地图的相关可视化开发越来越重要了。对于我们Web端地理信息系统开发来说,GIS数据来源不一,结构各异,首先要去处理的,就是将这些多源异构的数据处理成一个统一的格式(标准),然后才能丝滑流畅地加载并呈现在浏览器上,就目前来看,三维的地理信息系统大多数采用开源引擎Cesium来做开发的,因此在此记录一下最近一直在学习的一款数据处理工具-CesiumLab。
Cesium只支持了glb/gltf格式模型的加载,但建模师给我们建的模型大多数却是fbx、obj等等。此外,GIS数据中的建筑物轮廓、道路、桥梁、水域等则是点、线、面的shp数据,倾斜摄影技术得到的实景三维模型是osgb格式,点云数据多为las格式的,为把这些多源异构的模型数据统一起来,并综合考虑浏览器的渲染能力,Cesium采用了3DTiles格式来将这些数据的格式标准统一起来,并依据分层、分块的处理原则来进行数据处理和加载展示(类似于地图切片,分层加载)。+
ps:目前CesiumLab已经更新3.0版本了,图例使用的还是2.几版本的

1. shp矢量数据处理


上面的系统是不是看上去还是挺炫酷的,在浏览器上看就像是还原了城市的整体布局,包括城市的建筑物、道路、区域边界等。其实这些数据都可以运用shp数据再加工产生的,那么shp数据从哪里下载呢,我一般是从这个网站上下载的:extract.bbbike.org

extract.bbbike.org网站界面如上图所示,下载的数据类型选择ShapeFile(Esri),然后在地图上拖动到你想要下载的数据范围,框选出你想要的下载区域,填写你的邮箱地址,过个七八分钟你的邮箱就会收到下载的压缩包了。再此提醒一句,道路、铁路、桥梁等数据这里面下的还是比较全的,但是建筑轮廓数据在中国区域是非常不全且几乎没有属性信息(包括楼层高度、名称等等),所以如果想要下载建筑轮廓数据还是推荐用咸鱼找人代下,像北京的一个区的数据可能也就二三十块钱。
下载好的shp数据都是点、线、面类型的,如果想要呈现出立体的三维效果需要根据面数据的某些字段信息进行拉伸拔高。我们把下载的数据放到ArcGis软件中查看,可以发现shp数据含有属性信息,如下图,打开杭州市建筑矢量数据的属性表,里面有floor属性,我们可以大致的根据floor按照乘以某一系数的比例拉高建筑,加载后得到的就是第一个系统截图的城市模型了。Cesium推荐采用3Dtiles格式来加载数据,核心思想就是分级、分块,类似于地图切片一样,根据层级来加载。

CesiumLab的数据处理界面如图所示,处理shp数据选择通用模型处理,然后选择shp格式(ps:通用模型处理模块主要处理shp和人工建模fbx、obj等格式),然后选择模型拉伸字段,我们可以根据字段乘以固定值对地块进行拉伸,然后选择文件夹导出数据,导出后的数据就可以在Cesium中加载展示了。
加载3Dtiles数据方法是加载索引文件tileset.json,根据tileset.json和设置的最大屏幕空间误差值来决定加载模型的显示精度。加载处理好的shp白膜如下所示:

2.人工模型数据处理

如果我们的项目是专注于某个楼宇或者小范围场景,并需要去展示模型的具体细节(比如要查看某个楼层的布局、视频监控、室内场景的漫游等),我们通常需要建模工程师去人工建模。人工建模的数据格式也是各种各样,种类繁多的。一般来说,如果模型是一个较大的场景,或者说是一个层次细节很丰富的楼快(如楼内每一层都有精细建模),那么模型的数据量比较大,此时就需要对三维模型进行处理,转换为适合Web端展示的数据格式。
处理通用模型的软件目前免费使用的也有很多,但是本人还是十分推荐使用CesiumLab来进行数据处理,原因在于:CesiumLab处理出的3Dtiles数据不仅仅做了数据转换,而且会自动生成一个scenetree.json,这个json包含了模型的所有层次结构,我们WebGis开发仅仅通过读取这个json数据就可以在不具备建模知识或者使用专业的建模软件浏览模型的基础上了解建模师建模时的整体架构。scenetree.json的数据结构如下:

读取了这个文件,便可以根据children里面的嵌套来了解整个模型的层次结构了。最为关键的一点:我们可以根据每个结构的唯一id值或者name值来对模型的构建进行操作。比如说楼块某一层的抽拉效果、某些楼层的隐藏、某些重点建筑物的颜色加深标注等等,如楼层抽拉的效果如下所示:

3.倾斜摄影数据处理

实景三维模型就是无人机倾斜摄影经过数据处理后得到的模型,随着科技的不断发展,无人机开始被广泛应用于人类生活的方方面面。在民用领域,无人机被用来进行灾难救援、野生动物观察、监控传染病、地形图测绘、影视拍摄等等。在军用领域,无人机则被应用于战场的侦察与监控、目标定位、边境巡逻等等。特别值得一提的是,在如今如火如荼的数字城市建设中,作为基础数据的城市实景三维模型就是由无人机航拍获得的海量相片通过三维重建得到的,借助于倾斜摄影测量相关技术手段便可大范围、高质量、低成本地获取城市真实的全景风貌。
倾斜摄影测量技术是近些年来测绘科学领域发展起来的一项高新技术,它采用大范围、高分辨率、高精度的方式感知目标区域的复杂场景,运用高效的数据采集仪器与设备以获取海量航拍相片和像控点点位信息,借助于倾斜摄影测量专业的数据处理软件对目标区域进行实景三维模型的重建,保证了三维模型的真实效果和测量精度。
简而言之倾斜摄影就是在无人机上搭载多个镜头(一般为3或5个),这些镜头中居中的一个为垂直角度采集影像,其余为倾斜角度采集影像,垂直姿态拍摄到的相片称为正片,倾斜角度获取的相片被称为斜片。如下图展示了倾斜影像的获取和同一区域不同角度拍摄的相片。


倾斜摄影测量建模流程一般分为五个步骤,由原始影像经过特征点匹配、空中三角测量、多基线多视匹配、三角网构建、自动纹理映射后得到三维模型成果。
倾斜摄影建模软件目前使用较多的是ContextCapture软件和大疆智图软件,处理后的数据格式如下所示:

通过CesiumLab软件的倾斜模型转换工具可以把海量数据的实景三维模型转换为3DTiles格式,在输入中数据路径选择原始数据的DATA,空间参考CeisumLab会自动读取metadata.xml文件,实景三维模型是自带空间坐标数据的,也就是说你采集的数据位置在哪,模型的坐标信息就在哪。
处理后会生成与上述类似的3DTiles数据。实景三维模型是真实还原场景的原始样貌,所以我们可以衍生出很多应用,比如说视频融合。
视频融合就是把实时的视频贴到模型上去,比如说在一个十字路口,我们对视频进行拼接,然后直接按照固定点去把视频完整的贴合在地面,这样就展示了静中有动,动中有静的真实态势。目前这种技术在公安系统中颇为常见。
不仅如此,虽然说实景三维模型只是一个徒有表像的空壳,但是我们可以人为地进行单体化操作,对每一个建筑,甚至于每一个楼层都进行单体化,然后赋予其属性信息,这样我们在界面就可以用可视化的方式查看每一个建筑的详细信息了。

4.BIM模型处理

BIM模型是一种能够存储建筑项目对象信息的特殊三维模型,BIM模型相比较于人工建模而言更为复杂,需要考虑建筑构件之间的相互关系,比如说,BIM模型完整描述了工程项目的设计信息(类型、构成材料、性能等级等),施工信息(施工方案与执行情况、工序安排和技术要求、进度、造价、质量、施工安全防护以及施工所用的人工、材料、机械台班等),维护信息(工程安全性能、材料耐久性能、管理维修等)。
值得注意的一点:用CesiumLab处理BIM模型需要借助一个它自己的插件,用固定版本的Revit导出固定的格式,然后再用CesiumLab进行数据处理。并且,CesiumLab的BIM处理工具需要购买,或者申请权限,申请权限需要填写个人信息和单位信息,但是权限只有三天的时间。处理后的BIM数据如下:

5.点云模型处理

点云数据一般采用车载激光扫描系统或者无人机去采集,本人对点云了解甚少,在此仅贴一张点云数据呈现效果作罢。

数据处理一直是CesiumLab软件的核心,它不仅提供了上述功能,还支持shp/kml/czml等数据的导入、浏览、数据发布服务等,与此同时,它还提供了一款基于Cesium二次开发的工具包——EarthSDK,EarthSDK封装了很多GIS常用的功能,如:视域分析/天气效果/热力图/标签标绘/VR模式等,是一款非常好用的开发工具。
本文仅对此软件的大致用途进行了简单学习和使用,具体数据处理的参数配置与使用方法,官方的文档更为详细。

WEBGIS开发 数据处理软件CesiumLab学习使用总结相关推荐

  1. WEBGIS开发 常用开发功能简介 数据处理 标绘 业务数据可视化 视频融合 Cesium EarthSDK

    WEBGIS开发总结: 本人2020年测绘工程硕士毕业后就参加了某国企研究所做前端开发了,前端三板斧都是跟着网上的网课一点点学习的,因为本人从事行业的关系,很多项目都跟地图开发相关,比如什么仿真系统/ ...

  2. WPF学习开发客户端软件-任务助手(下 2015年2月4日代码更新)

    时光如梭,距离第一次写的 WPF学习开发客户端软件-任务助手(已上传源码)  已有三个多月,期间我断断续续地对该项目做了优化.完善等等工作,现在重新向大家介绍一下,希望各位可以使用,本软件以实用性为主 ...

  3. B站硬核up主稚晖君:对于有志学习嵌入式开发的软件工程师,我有这些建议!...

    稚晖君,何许人也? 本硕就读于电子科技大学 华为AI架构师 热爱硬件开发 B站硬核UP主 "栈溢出"工程师 加入"华为天才少年计划" 或许当你看到这一堆Titl ...

  4. 【编程学习】每天进步一点点,编程学习之路:一款表格数据处理软件 - CSV表格数据处理器v1.0.1

    [编程学习]每天进步一点点,编程学习之路:一款表格数据处理软件 - CSV表格数据处理器v1.0.1 写在前面1:软件编写缘由 在读研实习期间,因为公司时常有处理大量表格数据的需求,加上自己有一些Py ...

  5. iPhone软件开发编程语言Objective C学习资料

    iPhone软件开发编程语言Objective C学习资料 一.XCode.Objective-C.Cocoa说的是几样东西? 答案:三样东西.   XCode:你可以把它看成是一个开发环境,就好像V ...

  6. 最全WebGIS开发学习和求职资源汇总

    GIS和WebGIS简介: 什么是GIS? GIS术语汇总 什么是WebGIS? WebGIS.桌面GIS.三维GIS的区别 常见的WebGIS框架 WebGIS开发框架的对比 地图和数据下载: 25 ...

  7. WebGIS开发入门

    目录 一 WebGIS: 二 GIS背景 三 如何入门webgis开发 1 gis数据处理 2 gis数据服务发布 3 gis数据服务调用 4 gis数据渲染 四 WebGIS核心价值 五 webgi ...

  8. 【软考中级】软件设计师学习笔记

    软件设计师学习笔记 计算机系统知识 程序语言设计 数据结构 操作系统 软件工程基础知识 结构化开发方法 创建型设计模式 行为型设计模式 结构型设计模式: 算法设计与分析 数据库技术基础 网络与信息安全 ...

  9. 【转贴】关于开发数学软件的想法

    [转贴]关于开发数学软件的想法 转自研学论坛,有兴趣的兄弟可以继续讨论! http://bbs.matwav.com/post/view?bid=12&id=11745&sty=1&a ...

最新文章

  1. WINDOWS SERVER 2003从入门到精通之配置DHCP服务器(上)
  2. css中的代码图标,认识CSS中字体图标(示例代码)
  3. 来自Yang Terry的关于SAP CRM One Order事件回调机制的分享
  4. 华为称不会退出海外市场;英伟达证实遭遇黑客攻击;TypeScript 4.6发布 | 极客头条...
  5. bat中冒号的作用(注释 ,跳转, 截取、替换字符串)
  6. NekoHtml 乱码出现问号的解决
  7. kali linux基本命令
  8. 格力董明珠和小米雷军的10亿赌局 --- 当年的理念谁赢谁输
  9. 用k-mer分析进行基因组调查:(二)用jellyfish进行k-mer频数统计
  10. CC00072.pbpositions——|HadoopPB级数仓.V01|——|PB数仓.v01|Griffin数据质量监控工具|概述|
  11. aligned内存对齐
  12. 短视频底层实操课,让你迅速从短视频新手变成高手
  13. KMP算法: Oulipo
  14. 5分钟完成核磁共振检查,Facebook的AI技术现在还经不住考验
  15. 1.1 显函数的图形
  16. 中国商用显示行业“十四五”前景规划及发展方向分析报告2022-2027年版
  17. 手势识别Python-OpenCV
  18. 地球物理:大地测量学综述002
  19. 学习现代 JavaScript 编程的最佳教程
  20. 【小制作】使用NE555和一个计数器制作一个流水灯

热门文章

  1. java swing 悬浮_[Java教程]JAVA Swing窗口在桌面上浮动_星空网
  2. 我的世界服务器聊天显示坐标,我的世界端游怎么显示坐标
  3. 前端html-部件模板收集(附源码)
  4. 域名命名规则及交易平台
  5. 计算机网络:常见的计网面试题整理(一)
  6. c#连mysql 连接字符串
  7. linux 查看系统变量
  8. 浏览器前缀/ css3 渐变 /
  9. windows安装Cygwin教程
  10. 汇编学习实战修改win32扫雷