張玉茜
摘要:三維地理信息的不斷發(fā)展與應(yīng)用升級(jí),帶來了三維地理信息數(shù)據(jù)可視化效果的飛速提升,三維可視化方法也是目前的研究熱點(diǎn)之一。現(xiàn)以開源三維地圖框架Cesium為基礎(chǔ),探討了Cesium的技術(shù)特性,研究了Cesium框架下的坐標(biāo)轉(zhuǎn)換機(jī)制,提出了三維模型平移旋轉(zhuǎn)算法,最終在Cesium中實(shí)現(xiàn)了三維模型的平移旋轉(zhuǎn)等功能,并在實(shí)際項(xiàng)目中進(jìn)行應(yīng)用,增加了模型的管理便利性,提升了三維模型的可視化效果。
關(guān)鍵詞:Cesium;三維;地理信息;模型;平移旋轉(zhuǎn)
0? ? 引言
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,B/S框架下的三維地理信息正逐漸完善,所能展現(xiàn)的功能也越來越豐富,隨著國家“實(shí)景三維中國建設(shè)”項(xiàng)目的啟動(dòng),三維地理信息產(chǎn)業(yè)得到了發(fā)展的機(jī)遇。而傳統(tǒng)桌面端的三維可視化已經(jīng)不能滿足互聯(lián)網(wǎng)世界的需求,通過網(wǎng)頁進(jìn)行三維模型與三維地形的三維可視化與模型管理正火速崛起。
目前國內(nèi)外基于Cesium進(jìn)行三維可視化的研究有:樂世華等基于Cesium框架,綜合使用ajax技術(shù)與nginx反向代理技術(shù)等實(shí)現(xiàn)了流域的虛擬場景搭建,能夠?qū)崿F(xiàn)三維瀏覽、信息查詢等功能[1];馬洪成等基于Cesium、PostgreSQL、Tomcat、GeoServer等實(shí)現(xiàn)了大數(shù)據(jù)平臺(tái)的計(jì)算模型與數(shù)據(jù)挖掘結(jié)果三維展示的任務(wù)[2];周文輝等以Cesium為三維開發(fā)框架,針對(duì)傾斜攝影三維模型進(jìn)行功能開發(fā),將傾斜攝影薩內(nèi)模型轉(zhuǎn)為3D Tiles格式,并實(shí)現(xiàn)了數(shù)據(jù)瀏覽、屬性查詢和繪制等功能,擴(kuò)展了Cesium的應(yīng)用面[3];韓昕熠等基于Cesium進(jìn)行功能開發(fā),設(shè)計(jì)了違建電子沙盤的系統(tǒng)框架與數(shù)據(jù)處理流程,實(shí)現(xiàn)了多媒體信息展示[4]。此外,還有許多優(yōu)秀的應(yīng)用[5-7]。本文在之前學(xué)者研究的基礎(chǔ)上,以開源三維地理框架Cesium為基礎(chǔ),進(jìn)行三維模型平移轉(zhuǎn)換關(guān)鍵技術(shù)的研究,實(shí)現(xiàn)了三維模型的平移旋轉(zhuǎn)等功能。
1? ? 簡介
Cesium是一個(gè)開源的三維地理信息代碼庫,其基于JavaScript語言,具有跨瀏覽器、跨平臺(tái)、高精度、高性能、支持CZML數(shù)據(jù)等特性。Cesium基于WebGL底層框架進(jìn)行開發(fā),并在WebGL的基礎(chǔ)上做了許多算法優(yōu)化,能夠更加流暢地海量加載三維模型數(shù)據(jù)與全球的遙感影像數(shù)據(jù)和地形數(shù)據(jù),能夠?qū)崿F(xiàn)真正的二三維一體化。因?yàn)槠鋬?yōu)秀的特性,Cesium在全球獲得了廣泛的關(guān)注,Cesium API內(nèi)容豐富詳盡,擁有不少優(yōu)秀的應(yīng)用,像國內(nèi)超圖的WebGL引擎也是基于Cesium改造。
3D Tiles是一種專門應(yīng)用于大規(guī)模三維地理數(shù)據(jù)的流式傳輸大規(guī)模異構(gòu)和海量渲染而設(shè)計(jì)的一種格式,由Cesium在2016年推出。3D Tiles是在gltf格式的基礎(chǔ)上,使用LOD(Levels of Detail)技術(shù),具有適應(yīng)性強(qiáng)、靈活度高等優(yōu)點(diǎn),能夠流暢地展示大規(guī)模三維模型、點(diǎn)云數(shù)據(jù)、地形數(shù)據(jù)等。
2? ? 關(guān)鍵技術(shù)研究
2.1? ? 坐標(biāo)轉(zhuǎn)換
在Cesium中,需要進(jìn)行地理坐標(biāo)系與笛卡兒空間直角坐標(biāo)系(Cartesian3)之間的轉(zhuǎn)換才能在前端進(jìn)行可視化展示。地理坐標(biāo)系以地球質(zhì)心為坐標(biāo)原點(diǎn)、以經(jīng)緯度為單位表示,Cesium中的地理坐標(biāo)為WGS-84坐標(biāo)系(World Geodetic System 1984),如圖1(a)所示;笛卡兒空間直角坐標(biāo)系的單位以米表示,如圖1(b)所示。
在Cesium中沒有具體的經(jīng)緯度對(duì)象,將地理坐標(biāo)轉(zhuǎn)換為笛卡兒空間直角坐標(biāo)系(Cartesian3),其原理為將地理坐標(biāo)系中的經(jīng)度(longtitude)、緯度(latitude)以及高度(altitude)轉(zhuǎn)換為笛卡兒空間直角坐標(biāo)系的x、y、z。
2.2? ? 轉(zhuǎn)換矩陣
三維模型平移轉(zhuǎn)換原理為:根據(jù)前后經(jīng)緯度和高度計(jì)算變換矩陣——平移矩陣;根據(jù)三維模型的邊界球體中心點(diǎn)的笛卡兒坐標(biāo)得到經(jīng)緯度坐標(biāo);根據(jù)經(jīng)緯度和高度0,得到地面笛卡兒坐標(biāo);根據(jù)經(jīng)緯度和需要的高度,得到偏移后的笛卡兒坐標(biāo);計(jì)算坐標(biāo)變換,得到新的笛卡兒坐標(biāo)。旋轉(zhuǎn)原理為:通過轉(zhuǎn)換矩陣,將原始坐標(biāo)值與變換矩陣相乘,得到旋轉(zhuǎn)后新的坐標(biāo)值。(x,y,z)為初始點(diǎn)坐標(biāo),a、b、c為模型在X軸、Y軸、Z軸上平移的距離,得到的結(jié)果為(x′,y′,z′)。三維模型平移轉(zhuǎn)換矩陣如公式(1)所示。
x′y′z′1=1? ?0? ?0? a0? ?1? ?0? ?b0? ?0? ?1? ?c0? ?0? ?0? ?1×xyz1? ? ? ? (1)
β為模型旋轉(zhuǎn)角度,三維模型繞X軸旋轉(zhuǎn)矩陣如公式(2)所示,繞Y軸旋轉(zhuǎn)矩陣如公式(3)所示,繞Z軸旋轉(zhuǎn)矩陣如公式(4)所示。
x′y′z′ 1=1? ? ? 0? ? ? ? ? 0? ? ? 00? ?cos β? ?-sin β? ?00? ?sin β? ? cos β? ? 00? ? ? 0? ? ? ? ? 0? ? ? 1×xyz1? ? ? ?(2)
x′y′z′ 1=cos β? ? ?0? ? sin β? ?0? ?0? ? ? ? 1? ? ? ? 0? ? ?0-sin β? ?0? ? ?cos β? 0? ? ?0? ? ? 0? ? ? ? 0? ? 1×xyz1? ?(3)
x′y′z′ 1=cos β? ? -sin β? ? 0? ? 0sin β? ? ?cos β? ? ?0? ? 0? ?0? ? ? ? ? ?0? ? ? ? ?1? ? 0? ?0? ? ? ? ? ?0? ? ? ? ?0? ? 1×xyz1? ? ?(4)
3? ? 平移旋轉(zhuǎn)實(shí)現(xiàn)
將三維模型進(jìn)行切片處理,轉(zhuǎn)換為3D Tiles格式數(shù)據(jù),通過Cesium的Marix4下的multiply方法進(jìn)行矩陣計(jì)算,具體調(diào)用為Cesium.Matrix4.multiply(left,right,result),其中l(wèi)eft為第一個(gè)矩陣,right為第二個(gè)矩陣,計(jì)算結(jié)果存儲(chǔ)到result中,平移旋轉(zhuǎn)結(jié)果如圖2所示。
4? ? 結(jié)語
本文通過研究三維坐標(biāo)系統(tǒng)下經(jīng)緯度轉(zhuǎn)換原理與三維模型平移轉(zhuǎn)換關(guān)鍵技術(shù),使用開源三維地理信息框架Cesium實(shí)現(xiàn)了三維模型的平移轉(zhuǎn)換功能,能夠?qū)⑷S模型進(jìn)行位置的微調(diào),提高可視化的效果與顯示精度,在三維模型展示、衛(wèi)星遙測等方向有著廣泛的應(yīng)用前景。
[參考文獻(xiàn)]
[1] 樂世華,張煦,張尚弘,等.基于Cesium的WebGIS流域虛擬場景搭建[J].水利水電技術(shù),2018,49(5):90-96.
[2] 馬洪成,錢建國,楊戈.基于Cesium的三維電網(wǎng)WebGIS開發(fā)與實(shí)現(xiàn)[J].測繪與空間地理信息,2018,41(11):73-76.
[3] 周文輝,徐景濤,單英娜,等.基于Cesium的電站傾斜攝影模型Web發(fā)布與三維瀏覽[J].大壩與安全,2019(2):11-15.
[4] 韓昕熠,陳曉寧,李俊燕,等.基于Cesium框架的違建電子沙盤搭建[J].北京測繪,2019,33(5):494-497.
[5] 王逸凱,徐萌,羅建松,等.基于Cesium的WebGIS傾斜三維平臺(tái)的實(shí)現(xiàn)[J].測繪與空間地理信息,2019(4):88-89.
[6] HE B,MO W X,HU J X,et al.Development of power grid Web3D GIS based on Cesium[C]// 2016 IEEE PES Asia-Pacific Power and Energy Engineering Conference(APPEEC),2016:12-17.
[7] LAMMERS M.Interactive Visualization of Near Real-Time and Production Global Precipitation Mission Data Online Using CesiumJS[C]// AGU Fall Meeting Abstracts,2016.
收稿日期:2020-08-06
作者簡介:張玉茜(1982—),女,山東濟(jì)南人,軟件工程碩士,高級(jí)工程師,從事大數(shù)據(jù)研究及測繪地理信息工作。