APP下载

基于CesiumJS的三维WebGIS研究与开发

2020-06-15崔邓闫中亚

视界观·上半月 2020年5期
关键词:开发计算机研究

崔邓 闫中亚

摘    要:由于传统的二维WebGIS不能完全反映三维世界,随着计算机软硬件的发展,应用需求的强烈推动,WebGL技术与GIS技术结合成为三维WebGIS发展的重要方向。基于CesiumJS的开源JavaScript库,系统开发实现地图、地形、模型的加载,以及地图标注、三维量测、查询和空间分析等功能。

关键词:计算机;研究;开发

引言

CesiumJS源于2011年Analytical Graphics Incorporation (AGI)公司由一组图形开发人员创立,使用于Web浏览器支持创建2D地图和3D地球的Javascript库,实现真正的二三维一体化。其不需要安装任何插件就能够在支持HTML5的标准浏览器上运行,使用WebGL作为图形渲染引擎,因为它在动态数据可视化方面具有很大的优势。

一、系统的总体设计

(一)总体架构设计

采用JAVA作为开发语言,在MyEclipse集成开发环境下使用jQuery和vue.js等前端技术进行开发,以Postgresql空间数据库进行数据的管理和分析,采用三层的开发架构。

(二)技术路线

表现层即为浏览器表示层,主要负责浏览器端对二三维信息的展现,以及用户的交互,向服务端发送请求,增删改查空间数据,在地图上进行二三维图形模型和属性数据的展现等功能。应用服务层主要是基于用户操作获取数据进行空间分析,将结果返回到浏览器端。数据层使用PostgreSQL数据库,结合PostGIS可以對空间数据进行管理转换,并在服务器容器中存储模型和地形数据提供给表现层和服务层调用。

二、系统的关键技术研究

与传统的二维WebGIS的JavaScript库不同,CesiumJS不仅仅加入了高度,也突出强调时间概念,并以原子钟的铯(Cesium)元素命名,更加强调时空概念,以动态模拟现实世界。

(一)地图与地形加载

CesiumJS在地图数据的加载上支持多种数据源的图层格式,包括 WMS,TMS,WMTS,Bings 地图,Mapbox,谷歌地图,OpenStreetMap, ArcGIS 地图服务,标准图片格式文件和自定义的瓦片拼接方案,访问地理空间数据符合行业标准。图层之间可以互相叠加,并且图层的亮度,对比度,色调和饱和度可以动态改变。

在地形数据上,CesiumJS使用的是STK World Terrain高分辨率, 基于quantized mesh的在线全球地形可视化。应用CesiumTerrainProvider方法进行全球地形数据加载。对于需要离线部署的情况,可以基于DEM数据,使用gdal2srtmtiles_x64工具生成不同级别的地形瓦片数据,发布到服务器。

(二)glTF与3DTiles

glTF(GL Transmission  Format),即图形语言交换格式,是目前 3D 模型的一种格式标准,其优势之一是在 Web 传输和解析方面更为高效。glTF还可以方便的通过 CZML 创建数据驱动的动态场景。

倾斜三维模型文件的格式为CesiumJS 支持的 3DTiles格式,3DTiles格式以分块、分级渲染,将大数据量的倾斜三维数据以分块的、分层的形式组织起来,可以大量减轻服务器以及 GPU 的负担,是一种格式公开、设计优秀的 WebGIS 平台三维数据展示格式。3DTiles采用的是一种类似CMOS地形和图像流的技术,通过树形空间数据结构对输入数据集进行三维切块,可以理解为具备LOD能力的 glTF,每个分块可以看作一个完全包围其数据集的三维边界。同时,为了使各种数据集的包围体紧密排列,包围边界可以根据实际需要采用不同形状,如定向包围盒、包围球或基于最大最小经纬度和高程定义的地理区域。上述优势使得 3D Tiles成为目前流媒体的大规模异构三维地理空间数据集的开放规范,更适用于密集三维场景的可视化展示,如城市建筑物轮廓,高精度的BIM模型、点云和摄影测量等数据模型。

(三)绘制与标注量测功能

在图形绘制方面,CesiumJS中GeometryInstance提供加载Geometry和attributes,进行各种二三维图形在地球上的加载。能够绘制多种集合形状并且设置其样式,如折线、点、多边形、圆形、盒、球、椭球、圆柱等形状。在自定义图形方面,支持工业级矢量数据格式,包括 KML,GeoJSON 和 TopoJSON。

CesiumJS提供用户交互和绘制方法,在浏览器界面上绘制并计算两点之间的平面距离、高度、斜距的测量。

(四)淹没分析、地形剖面分析

淹没分析是绘制面模拟水面升降,依据时间的变化,动态调整高度,实现三维模型的洪涝灾害的演示分析。

地形剖面分析是通过绘制线段,通过分割一定距离截取相应的点坐标,获取对应的高程值,然后再通过Highcharts 库绘制等高线图形,直观展示地形剖面。

三、系统开发实例

开发实例中实现了地图多源数据切换,三维地形、3DTiles模型数据加载浏览等基础功能。通过分析,实现了放大、缩小、坐标展示、指北针、量测等地图操作功能。通过对CesiumJS库的分析,可以在空间分析方面实现可视域分析、剖面分析、飞行路线模拟、淹没分析等功能。

四、总结

随着计算机软硬件的提升和模型数据处理和压缩处理,浏览器标准逐步升级统一,其关注度逐渐提高,开源社区相关项目越来越多。在航空航天、水利水域和智慧城市等领域将广泛应用。本文对CesiumJS开发进行了分析与研究,解决了开发中的问题,并实现了部分三维GIS功能。同时,CesiumJS存在着数据获取、建模作业、大数据加载、标准体系等方面的问题。

参考文献:

[1]马洪成,张玉驹,刘为民.基于开源Cesium框架的智慧街道三维可视化平台的研究与应用[J].测绘与空间地理信息,2019,42(8):121-123.

[2]宗维康.WebGIS二三维一体化展示关键技术的研究与实现[D].西安:西安电子科技大学,2017.

猜你喜欢

开发计算机研究
中国计算机报202007、08合刊
中国计算机报2019年48、49期合刊
中国古代的“计算机”
谁说小孩不能做研究?
Applications of Deep Mixing to Earthquake Disaster Mitigation
A Thought:What have We Learned from Natural Disasters? Five Years after the Great East Japan Earthquake
对周期函数最小正周期判定法的研究与应用
在线投稿与编辑系统的设计与开发
遵义红色旅游开发对策研究
基于J2EE和Ionic的ITer学习APP设计与开发