目前倾斜摄影三维模型的可视化技术主要有:一是利于专业的软件平台,如Smart3D、超图的Super Map、Skyline的Photomesh等;二是在Web方面,可利用浏览器加载插件方式;三是利用支持WebGL的浏览器,直接加载。上述三种方式中,方式一的特点是显示效果好、应用功能强大,缺点是使用费用高、局限在本机使用;方式二需要在浏览器中安装特定插件,用户体验欠佳;方式三具有可视化效果好、使用方便等特点,是目前发展趋势。
2 研究目标
倾斜摄影三维模型数据格式主要有OBJ、DAE和OSGB(Open Scene Gragh Binary)等,本文采用比较常用的OSGB格式的倾斜摄影模型数据作为研究对象,它数据组织方式是二进制的,带有嵌入式链接纹理数据(.jpg)。OSGB模型数据主要由data文件夹,里面包括LOD分级的模型数据;metadata.xml配置文件,可设置模型的投影和SRS原点等参数;osgb.s3c是倾斜摄影数据的索引文件,通过索引文件可加载模型数据进行可视化。
研究目标是利用开源的JavaScript地图引擎Cesium,对经过格式处理的OSGB倾斜摄影三维模型进行Web端加载和可视化,并实现模型高亮显示和查询等。使倾斜摄影三维模型数据可视化及应用真正脱离大型的专业软件平台,如Smart3D,实现倾斜摄影三维模型数据在不同部门的共享和共用,以加快三维模型数据的使用范围和普及率。
3 技术架构
Cesium是一个开源的JavaScript编写的使用WebGL地图引擎库,支持3D、2.5D、2D三种形式的地图展示,Cesium支持的地图数据基本符合OGC标准,包括对WMS,WMTS,TMS,Google Maps等地图文件的支持,支持WebGL的浏览器都能可以使用Cesium,如Google和FireFox和IE11及以上。为了使OSGB能利用Cesium进行加载及可视化,需下载和编译Github上的3d-tiles安装包,编译后会在安装目录下生成build目录和里面的Cesium.js文件,在页面中引用该js文件,就可使用3DTiles中的各种方法。3DTiles是Cesium推出的Web环境下海量三维模型数据规范,目前还在测试阶段,所以转成3DTiles规范的三维模型数据工具还没有推出,需要自己根据规范去开发。三维模型在Web应用中的一个难点就是单体化,由于倾斜摄影三维模型都是一个整体,想要选中单个对象是无法实现的,所以需要对三维模型场景中的单个对象进行单体化,以实现对象的高亮、查询等要求。目前三维模型的单体化主要有切割、矢量化和在三维模型中添加属性及空间数据等方法。切割法会破坏模型自带的LOD优点,影响模型加载性能;利用叠加矢量面可使三维模型拥有二维模型各种空间分析、查询等的功能,但矢量面生成需要采用商业软件,费用高;利用工具把OSGB数据转成3DTiles,并在3DTiles中嵌入属性和空间信息,实现OSGB模型的单体化和存储属性信息,用来实现模型的高亮和查询等,该方法应该是未来发展的趋势之一。转换好的模型数据需利用Node.js进行解析和发布,Node.js是一个基于ChromeV8引擎的JavaScript运行环境。Node.js使用了一个事件驱动、非阻塞式I/O的模型,使其轻量又高效。通过html网页在浏览器中就可以查看发布后的三维模型,并可像查询二维数据一样对三维模型进行查询和高亮显示等操作。整个系统技术架构图如图1所示:
图1 技术架构图

4 应用实例
利用一个实际实例来详细说明如何利用Cesium加载倾斜摄影数据,并进行可视化和交互操作。
首先,利用Smart3D导出倾斜摄影三维数据模型,示例数据为一个化工厂,导出格式为OSGB,存放在Cesium安装目录里,利用自己开发的格式转换软件把OSGB数据转为3DTiles格式,并在转换过程中加入各对象的属性和空间信息,用于三维模型查询、高亮显示、叠加分析等各种空间分析功能,转换后的数据格式也是按照OSGB数据组织一样,分层存放,并具有LOD功能,不过数据格式变成了后缀为b3dm数据格式,在数据分层文件夹同一目录有个Tileset.json文件,这是3DTiles瓦片数据的元数据定义,三维数据可视化和渲染的时候需要读取元数据中的一些配置,并调用实际瓦片中的数据进行渲染和可视化。
其次,开启Node.js服务,方法为执行Node Cesium所在的文件夹下的Server.js路径,编写Cesium调用三维模型html代码。利用IIS或Tomcat发布上述html代码,在浏览器中就可查看三维模型,用鼠标选中某个实体,则该实体高亮,并弹性实体属性信息窗口,效果如图2所示:
图2 单体模型高亮和显示属性窗口

5 结论
利用开发工具实现倾斜摄影OSGB数据转成Cesium的3DTiles格式,实现自动单体化,利用优秀的开源地图引擎Cesium实现了模型的加载和可视化,并实现查询和高亮显示,并通过一个实例进行了详细说明操作。实验结果显示,Cesium作为一个优秀的开源地图引擎,具有操作简单、支持数据格式多,使用方便等特点,可作为构建Web三维系统的技术之一,提高三维数据模型的使用率,使三维数据模型在建设、规划、国土、测绘等部门中发挥更大作用。
参考文献
[1]徐生望.无人机倾斜摄影技术的应用[J].世界有色金属,2017,(5).
[2]周杰.基于倾斜摄影测量技术构建实景三维模型的方法研究[J].价值研究,2016,(25).
[3]孙亮,夏永华.基于无人机倾斜摄影技术测绘大比例尺地形图的可行性研究[J].价值工程,2017,(8).
[4]朱栩逸,苗放.基于Cesium的三维WebGIS研究及开发[J].科技创新导报,2015,(34).