基于WebGL的水利水电工程三维地理信息平台研究
2019-01-21罗天文
徐 锐,罗天文,刘 明
(贵州省水利水电勘测设计研究院,贵州 贵阳 550002)
0 引 言
随着BIM、GIS等技术的飞速发展,BIM与GIS的集成应用[1-3]成为了研究的热点。越来越多的水利水电行业人士开始探索BIM与GIS的集成平台,如吴世勇[4]等融合三维GIS和BIM建立了流域水电数字化管理平台;蒋乐龙[5]基于Skyline建立了长距离饮水工程建设管理系统;傅蜀燕[6]等基于WebGIS构建了区域数字水库安全管理系统平台。这些平台多在Skyline、ArcGIS等软件的基础上进行二次开发,以客户端(C/S)模式或在浏览器上安装插件进行浏览的模式为主,存在软件安装繁琐、兼容性差等问题,已不能满足互联网时代用户对便捷性的要求。
随着近几年WebGL技术的不断发展,为上述问题的解决提供了契机。WebGL是运用JavaScript脚本制作的Web交互式三维图形程序,不需要浏览器插件的支持,在任何平台上都能运行[7]。Cesium是一个使用WebGL来进行硬件加速图形化的三维地图引擎[8],支持3D、2D、2.5D的地图显示,可以集成不同的数据源,实现多种数据的三维可视化,以其易用性、实用性获得越来越多行业人士的青睐。本文基于B/S架构,集成Cesium三维引擎开发了水利水电工程三维地理信息平台,并通过地形、正射影像、BIM模型及倾斜摄影模型等的集成加载构建虚拟的三维交互场景,同时具有分析、数据管理等功能。
1 系统架构
系统采用B/S架构开发模式,以统一规划、分层实施为原则,基于WebGL技术搭建不需要第三方插件即可进行浏览的水利水电工程三维可视化平台。系统整体技术框架分为三层,从上到下分别为表现层、应用支持层以及数据层,具体如图1所示。
图1 平台整体框架
(1)数据层负责平台所需数据的存储。数据层由BIM模型数据库、空间数据库、地形影像数据库以及基础信息数据库组成,并通过数据库服务接口与应用支持层进行交互。
(2)应用支持层是数据层与表现层之间的桥梁,通过WebGIS引擎、信息搜索引擎以及采用JavaScript编写的程序组件为表现层提供业务功能接口,处理表现层发回的请求并与数据库进行交互。
(3)表现层为用户提供三维可视化的场景和响应式用户界面,采用HTML、CSS、JavaScript进行编写,可以在支持WebGL的浏览器上进行访问。
2 三维场景搭建
三维虚拟场景是WebGIS的基础,能给用户带来身临其境的体验。一个完整的水利水电工程三维场景需地形(DEM)、正射影像(DOM)为基础,集成BIM三维模型、倾斜摄影模型等组成。
2.1 地形的加载
Cesium中的地形系统是一种支持流式瓦片数据生成地形的技术,它支持两种类型的地形,STK World Terrain和Small Terrain。其中STK World Terrain是基于quantizedmesh的高分辨率的地形。Small Terrain是中等高分辨率,基于heightmap的地形,采用多分辨率四叉树的格式,其渲染的效果稍差,但也能体现原有数据精度,且其数据的生产方便,适用于小范围高精度地形生产的需要。本研究采用方案为:大范围区域使用STK World Terrain地形,水库枢纽等小范围区域采用高精度DEM生产的Small Terrain地形。
水利水电工程一般修建于高山峡谷地区,相较于其他行业对地形数据有更高的精度要求。在进行水利水电工程三维场景构建的过程中,由于获取的DEM的时间的限制,往往会出现导致DEM局部反应的地形情况和三维设计后的地形不一致,从而使得枢纽三维模型与地形间出现模型高于地形,或被地形覆盖等不贴合的情况。为了解决该问题,传统的方法是采用地形裁剪的方式,把不符合的区域以模型与地形的交线为边界进行裁切,形成一种贴合的视觉假象,但这种方法人为误差较大,且破坏了原始地形数据。
将Bentley平台场地平整软件Geopak生产的高精度地形模型经过数据格式的多重转换,转换为Cesium引擎支持的格式,实现枢纽三维模型与地形的完美贴合。具体方法为:①首先将bentley系列的场地平整软件Geopak制作的开挖后的地形模型转换为LandXML格式;②将LandXML格式的地形文件导入ArcMap软件中,并将其坐标系转换为WGS84;③导出为TIFF栅格文件,导出时将nodata值设置为0;④使用CTB工具对TIFF地形栅格数据进行处理,生成Cesium支持的格式,并发布到tomcat等服务器中;⑤使用Cesium提供的CesiumTerrainProvider接口加载处理后的地形数据。
图2为三维设计软件中的地形模型及集成在平台后的地形模型。
图2 设计地形模型与集成在平台后的地形
2.2 影像的加载
Cesium支持的影像分为影像服务和离线切片两种。其中影像服务类型包含BingMaps、ArcGisMap、WMS及GoogleMap等多种影像服务类型,通过ImageryProvider类实现不同影像数据的加载。影像数据默认覆盖于地形之上,同时不同的影像数据可以进行叠加,通过ImageryLayerCollection类可以调整多个影像的显示顺序。
本研究在全球范围采用Google影像服务,水库枢纽区域使用高精度正射影像,通过ArcGIS Server发布本地影像切片服务,这样即满足大范围影像数据的覆盖,又满足水库枢纽区域对高精度影像数据的要求。图3为正射影像叠加地形的显示效果。
图3 影像叠加地形
2.3 BIM模型集成
Cesium是应用于浏览器端的三维地图引擎,所以使用的三维模型数据需要适应Web环境下的存储、传输与显示。Cesium目前支持glTF及3D Tiles格式的数据模型,其中glTF是由Khronos工作组研制并定义的三维模型数据格式,自2015年10月发布以来,获得广泛的认可,但glTF主要针对单个模型,当模型较大时,应用效果欠佳。3D Tiles是由Cesium研发团队在glTF定义的基础上建立起来的三维模型瓦片数据结构,它集成了glTF的优点,并增加了LOD能力,适用于海量三维场景的传输与显示。
由于3D Tiles还处于发展阶段,目前还没有成熟的数据处理与生成工具可以将各大BIM软件产品生产的模型直接转换为3DTiles格式,本文采用的解决方案为:首先将三维设计软件生产的BIM模型导出为DAE或FBX等中间格式;并导入Autodesk 3D MAX软件中进行纹理贴图,同时对模型坐标进行归零处理,最终通过第三方工具转换为3D Tiles格式,同时将BIM模型的属性信息存储于数据库中,通过存储于3D Tiles中的唯一“ID”将模型与属性信息进行关联,以满足属性信息查询及管理的需要。
2.4 倾斜摄影模型加载
倾斜摄影是指由一定倾斜角的航摄像机所获取的影像,通过在同一飞行平台上搭载多台传感器,同时从垂直、倾斜等不同角度采集影像,获取地面物体更为完整准确的信息,再通过几何校正、平差、多视影像匹配等一系列处理,获得具有真实空间地理信息的立体模型。
本研究采用Bentley公司的Context Capture软件的生产倾斜摄影模型,该软件在计算完成后可以直接导出为Cesium支持的3D Tiles格式,无需第三方工具转换。之后再通过3DTileset类即可加载。图4为倾斜摄影模型加载效果。
图4 倾斜摄影模型加载
3 平台功能展示
3.1 可视化
平台可基于三维地形、影像及模型等数据构建虚拟三维场景,还可叠加各种专题图数据进行可视化展示,辅助分析决策。同时支持根据地名缩放到指定位置,在三维交互场景中移动、缩放、平移以及指定路线进行漫游等功能。图5为平台三维场景的效果。
图5 三维场景
3.2 分析功能
平台提供基本的分析计算功能,主要包括:①高程及坡度分析,根据地形高度及坡度信息对地形进行不同颜色的显示。②裁切分析,可对三维模型及地形进行裁切,以观察模型内部构造。③高程差值分析,可设置不同的高度间距显示地形的等高线。图6展示了各种分析工具的效果。
3.3 模型属性管理
平台将BIM模型及倾斜摄影模型与模型属性信息进行双向绑定,可通过分级树控件或鼠标点选的方式控制模型的显示、隐藏以及查询模型的属性信息,对应的文档图纸等功能,使用户可以方便的对模型属性信息进行查询以及管理。图7为大坝模型实时属性信息查询。
3.4 标注、距离及面积的量算
平台具有在三维场景中进行地理位置的标注,多种图形的绘制功能,同时还可进行距离、面积的量算统计。使用户可以便捷的在三维可视化场景中获取多种数据,辅助分析决策。图8展示了平台距离量测的效果。
4 结 语
本文采用B/S架构,基于Cesium三维地球引擎,研发了水利水电工程三维地理信息平台,通过地形、影像及BIM模型等的集成加载构建三维虚拟交互场景,解决了传统客户端模式或为浏览器安装插件进行浏览的模式下存在的兼容性差等问题,证明了通过WebGL技术构建水利水电工程三维地理信息平台的可能性和优越性。但是,本研究只是初步的探索,还有许多需要完善的部分。首先本研究只测试了小范围的数据,对于大范围的海量数据还需进一步测试优化;其次,平台目前只具备基本的功能,对于具体项目应用,仍需进一步完善。
图6 分析工具
图7 模型的属性信息管理
图8 距离量测
欢迎投稿欢迎订阅欢迎刊登广告