?

基于Cesium的三維模型平移旋轉實現

2020-11-10 04:40張玉茜
機電信息 2020年30期
關鍵詞:經緯度矩陣開源

張玉茜

摘要:三維地理信息的不斷發展與應用升級,帶來了三維地理信息數據可視化效果的飛速提升,三維可視化方法也是目前的研究熱點之一?,F以開源三維地圖框架Cesium為基礎,探討了Cesium的技術特性,研究了Cesium框架下的坐標轉換機制,提出了三維模型平移旋轉算法,最終在Cesium中實現了三維模型的平移旋轉等功能,并在實際項目中進行應用,增加了模型的管理便利性,提升了三維模型的可視化效果。

關鍵詞:Cesium;三維;地理信息;模型;平移旋轉

0? ? 引言

隨著計算機技術的不斷發展,B/S框架下的三維地理信息正逐漸完善,所能展現的功能也越來越豐富,隨著國家“實景三維中國建設”項目的啟動,三維地理信息產業得到了發展的機遇。而傳統桌面端的三維可視化已經不能滿足互聯網世界的需求,通過網頁進行三維模型與三維地形的三維可視化與模型管理正火速崛起。

目前國內外基于Cesium進行三維可視化的研究有:樂世華等基于Cesium框架,綜合使用ajax技術與nginx反向代理技術等實現了流域的虛擬場景搭建,能夠實現三維瀏覽、信息查詢等功能[1];馬洪成等基于Cesium、PostgreSQL、Tomcat、GeoServer等實現了大數據平臺的計算模型與數據挖掘結果三維展示的任務[2];周文輝等以Cesium為三維開發框架,針對傾斜攝影三維模型進行功能開發,將傾斜攝影薩內模型轉為3D Tiles格式,并實現了數據瀏覽、屬性查詢和繪制等功能,擴展了Cesium的應用面[3];韓昕熠等基于Cesium進行功能開發,設計了違建電子沙盤的系統框架與數據處理流程,實現了多媒體信息展示[4]。此外,還有許多優秀的應用[5-7]。本文在之前學者研究的基礎上,以開源三維地理框架Cesium為基礎,進行三維模型平移轉換關鍵技術的研究,實現了三維模型的平移旋轉等功能。

1? ? 簡介

Cesium是一個開源的三維地理信息代碼庫,其基于JavaScript語言,具有跨瀏覽器、跨平臺、高精度、高性能、支持CZML數據等特性。Cesium基于WebGL底層框架進行開發,并在WebGL的基礎上做了許多算法優化,能夠更加流暢地海量加載三維模型數據與全球的遙感影像數據和地形數據,能夠實現真正的二三維一體化。因為其優秀的特性,Cesium在全球獲得了廣泛的關注,Cesium API內容豐富詳盡,擁有不少優秀的應用,像國內超圖的WebGL引擎也是基于Cesium改造。

3D Tiles是一種專門應用于大規模三維地理數據的流式傳輸大規模異構和海量渲染而設計的一種格式,由Cesium在2016年推出。3D Tiles是在gltf格式的基礎上,使用LOD(Levels of Detail)技術,具有適應性強、靈活度高等優點,能夠流暢地展示大規模三維模型、點云數據、地形數據等。

2? ? 關鍵技術研究

2.1? ? 坐標轉換

在Cesium中,需要進行地理坐標系與笛卡兒空間直角坐標系(Cartesian3)之間的轉換才能在前端進行可視化展示。地理坐標系以地球質心為坐標原點、以經緯度為單位表示,Cesium中的地理坐標為WGS-84坐標系(World Geodetic System 1984),如圖1(a)所示;笛卡兒空間直角坐標系的單位以米表示,如圖1(b)所示。

在Cesium中沒有具體的經緯度對象,將地理坐標轉換為笛卡兒空間直角坐標系(Cartesian3),其原理為將地理坐標系中的經度(longtitude)、緯度(latitude)以及高度(altitude)轉換為笛卡兒空間直角坐標系的x、y、z。

2.2? ? 轉換矩陣

三維模型平移轉換原理為:根據前后經緯度和高度計算變換矩陣——平移矩陣;根據三維模型的邊界球體中心點的笛卡兒坐標得到經緯度坐標;根據經緯度和高度0,得到地面笛卡兒坐標;根據經緯度和需要的高度,得到偏移后的笛卡兒坐標;計算坐標變換,得到新的笛卡兒坐標。旋轉原理為:通過轉換矩陣,將原始坐標值與變換矩陣相乘,得到旋轉后新的坐標值。(x,y,z)為初始點坐標,a、b、c為模型在X軸、Y軸、Z軸上平移的距離,得到的結果為(x′,y′,z′)。三維模型平移轉換矩陣如公式(1)所示。

x′y′z′1=1? ?0? ?0? a0? ?1? ?0? ?b0? ?0? ?1? ?c0? ?0? ?0? ?1×xyz1? ? ? ? (1)

β為模型旋轉角度,三維模型繞X軸旋轉矩陣如公式(2)所示,繞Y軸旋轉矩陣如公式(3)所示,繞Z軸旋轉矩陣如公式(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? ? 平移旋轉實現

將三維模型進行切片處理,轉換為3D Tiles格式數據,通過Cesium的Marix4下的multiply方法進行矩陣計算,具體調用為Cesium.Matrix4.multiply(left,right,result),其中left為第一個矩陣,right為第二個矩陣,計算結果存儲到result中,平移旋轉結果如圖2所示。

4? ? 結語

本文通過研究三維坐標系統下經緯度轉換原理與三維模型平移轉換關鍵技術,使用開源三維地理信息框架Cesium實現了三維模型的平移轉換功能,能夠將三維模型進行位置的微調,提高可視化的效果與顯示精度,在三維模型展示、衛星遙測等方向有著廣泛的應用前景。

[參考文獻]

[1] 樂世華,張煦,張尚弘,等.基于Cesium的WebGIS流域虛擬場景搭建[J].水利水電技術,2018,49(5):90-96.

[2] 馬洪成,錢建國,楊戈.基于Cesium的三維電網WebGIS開發與實現[J].測繪與空間地理信息,2018,41(11):73-76.

[3] 周文輝,徐景濤,單英娜,等.基于Cesium的電站傾斜攝影模型Web發布與三維瀏覽[J].大壩與安全,2019(2):11-15.

[4] 韓昕熠,陳曉寧,李俊燕,等.基于Cesium框架的違建電子沙盤搭建[J].北京測繪,2019,33(5):494-497.

[5] 王逸凱,徐萌,羅建松,等.基于Cesium的WebGIS傾斜三維平臺的實現[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—),女,山東濟南人,軟件工程碩士,高級工程師,從事大數據研究及測繪地理信息工作。

猜你喜歡
經緯度矩陣開源
校園武術“學、練、賽”一體化實踐探索
五毛錢能買多少頭牛
2019(第十四屆)開源中國開源世界
2019開源杰出貢獻獎
基于經緯度范圍的多點任務打包算法
多項式理論在矩陣求逆中的應用
自制中學實驗操作型經緯測量儀
澳洲位移大,需調經緯度
矩陣
矩陣
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合