999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于World Wind三維可視化平臺的設計與實現

2020-08-03 07:58:33汪俊峰王星東閆明洋
現代電子技術 2020年8期

汪俊峰 王星東 閆明洋

摘? 要: 文中將Web技術與World Wind開源軟件結合起來,通過三維建模技術和三維GIS技術開發設計一個具有交互功能的Web三維可視化平臺。該平臺采用B/S架構,應用空間數據庫PostgreSQL儲存管理三維數據和二維屬性數據,使用Web World Wind軟件實現三維數據的顯示,開發完成了模型加載、空間量測、模型搜索、屬性顯示、飛行漫游和二三維聯動等功能。利用該平臺用戶只需使用瀏覽器就能訪問查看場景的三維效果,從而達到三維可視化目的。

關鍵詞: World Wind; 三維可視化; 平臺設計; 三維建模; 功能開發; 空間分析

中圖分類號: TN911?34? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)08?0015?04

Design and implementation of 3D visualization platform based on World Wind

WANG Junfeng, WANG Xingdong, YAN Mingyang

(College of Information Science and Engineering, Henan University of Technology, Zhengzhou 450001, China)

Abstract: In combination of the Web technology and World Wind open source software in this paper, a Web 3D visualization platform with interactive function is developed and designed by means of 3D modeling technology and 3D GIS technology. This platform is constructed with B/S architecture, from which the spatial database PostgreSQL is used to store and manage 3D data and 2D attribute data, and the Web World Wind software is used to display the 3D data. The functions of model loading, space measurement, model search and attribute display, flight roaming and two?three dimensional linkage are developed and accomplished. With this platform, users only need to use a browser to access the 3D effect of the scene, so as to achieve the purpose of 3Dvisualization.

Keywords: World Wind; 3D visualization; platform design; 3D modeling; functional development; spatial analysis

0? 引? 言

World Wind由美國航天宇航局開發的三維GIS開源軟件,它可以將多顆衛星的影像數據及其他方式提供的影像通過三維地球的形式展現出來。Web World Wind是World Wind所支持的瀏覽器端的開發端口[1]。它作為一個使用JavaScript編寫的開源的Web頁面虛擬地球儀,使開發人員能夠在交互式3D虛擬地球儀或2D地圖上快速創建地理信息的交互式三維可視化[2]。它提供的API可以讓JavaScript程序控制模型的三維可視化和交互。Web World Wind可以運行在所有主流的操作系統、桌面和移動設備以及Web瀏覽器上[3]。Web World Wind在客戶端和服務器端之間傳輸影像圖片和XML文件,這種技術大大減少了信息傳輸量,提高了系統的運行速度。

目前,國外對三維可視化技術進行了持續性研究。1987年Kavouras和Masry開發用于礦山資源評估的三維可視化系統[4]。1994年,Breuning,Bobe和Cremers開發三維GIS系統,解決了空間分析等諸多問題[5]。美國國家地理信息開發的三維地理信息系統,對三維空間數據進行了全面的比較[6]。2006年James D等基于ArcScene3D軟件,開發了用于對地下鉆孔數據的三維可視化和空間操作的三維GIS系統。荷蘭的ITC實現了三維Web?GIS數字城市[7]。與國外相比,國內由于國家對三維可視化技術研究的重視和相關人才的培養,在該研究領域內已經取得了很大的發展。1998年朱英浩基于MapInfo開發了三維可視化GIS軟件[8]。國防科技大學開發了具有空間查詢和分析等功能的三維軍事電子地圖系統[9]。常歌在2001年基于OpenGL平臺利用城市三維景觀數據開發了數字城市景觀系統(City View)[10]。2006年朱慶開發了多模式三維可視化的文化遺產系統[11]。2008年EV?Globe開發的“四川省地理信息中心?遨游天府”三維可視化系統,將四川省矢量數據、影像數據和DEM數據合并在一起,在汶川大地震后的救援工作中起到了舉足輕重的作用[12]。

基于World Wind開源軟件、三維建模技術和三維GIS平臺技術,本文設計了基于World Wind三維可視化平臺,實現了模型加載、空間量測、模型搜索、屬性顯示、飛行漫游和二三維聯動等功能。該平臺采用B/S結構,用戶只需打開瀏覽器即可實時查看三維可視化平臺。

1? 基于World Wind三維可視化平臺

1.1? 需求分析

傳統意義上,現實世界的展示僅僅以二維地圖的形式描述現實世界物體的相對位置關系,但是對于具體地物的細節等屬性并不能直觀的表現出來。本文設計基于World Wind三維可視化平臺,可形象直觀地展示整個三維場景,使用戶仿佛置身于真實的世界中進行漫游。

基于World Wind三維可視化平臺實現了模型加載、空間量測、模型搜索、屬性顯示、飛行漫游和二三維聯動等功能,較好地展現了真實的三維場景效果。

1.2? 架構設計

平臺采用B/S架構,應用空間數據庫PostgreSQL儲存管理三維數據和屬性數據,使用Web World Wind實現地圖數據的顯示,完成了客戶端和服務器的溝通。平臺的總體框架示意圖如圖1所示,由應用層、服務層和數據層三部分構成。

1) 數據層。數據層是平臺支持的基礎,也是平臺構建的核心。平臺設計了數據庫和文件兩種存儲方式,屬性數據儲存到小型的關系型數據庫PostgreSQL中,實現了關系型數據庫的存儲、管理、查詢檢索等功能。而對于圖片、文字、音頻等資料,平臺通過文件管理的方式進行儲存和管理,數據庫里只需保存相應的路徑信息。該設計能夠減少數據庫對電腦資源的占用,方便數據的調用和管理。

2) 服務層。服務層主要包括基礎地圖服務、空間查詢和定位服務等。平臺通過Web World Wind和Tomcat服務器軟件發布地理空間數據,用戶操作平臺利用網絡瀏覽器客戶端向Tomcat服務器發出空間數據查詢的請求,Tomcat服務器向PostgreSQL數據庫發出請求并且完成數據的搜索,最后將搜索的結果通過網絡返回給用戶的客戶端瀏覽器,實現了客戶端和服務器的數據交互,支持多用戶的訪問。

3) 應用層。應用層主要包括模型操作、場景瀏覽、信息查詢、空間量測等功能,開發人員通過對這些功能實現人機交互。

2? 功能模塊開發

2.1? 模型加載

該平臺支持批量加載dae格式的三維模型,能夠將場景模型加載到World Wind三維地球上指定的位置。

三維模型的加載主要是基于Web World Wind軟件提供的模型加載接口實現的,通過提供給接口模型的路徑信息和模型要加載的位置信息(三維地球上的經緯度以及高程)即可在相應位置加載模型,并且可以修改模型的大小、透明度等一些屬性。在進行大量三維模型加載的時候要注意模型的數據量大小不要超過系統設置的緩沖區大小,否則會出現瀏覽器崩潰。因此緩沖區大小要適應模型的數據量。

模型的加載主要是由ColladaLoader類控制的,為了實現批量模型的加載,對模型加載的相關代碼進行了封裝和重構處理,封裝成一個名為addAnyModel(renderLayerName, position, dirPath, fileName, scale, opacity, config)的函數,其參數分別代表圖層名字、模型位置、模型文件路徑、模型文件名稱、縮放系數和透明度。通過調用該函數解析三維模型加載相關的xml文件即可實現模型批量加載的功能。三維模型批量加載到該平臺如圖2所示。

2.2? 空間量測

在工具欄窗口可點擊選擇測量按鈕,如距離測量、面積測量、高程測量等。以距離測量為例,選擇距離測量按鈕后開始取點,點擊要測量的位置即可。如圖3所示,依次選取7個點,平臺會自動把選取點的路徑通過黃色實線繪制出來,從第二個點開始每次多選一個點,測量結果會實時顯示在標簽上,取點完成后通過點擊鼠標右鍵即可結束測量,并將最終的測量結果顯示在標簽上。

空間量測功能主要通過鼠標點擊事件依此獲取到要測量的點位信息,并把這些信息存儲在一個數組中。在記錄存儲點位信息時會同時啟動“畫線”功能,即把要測量的軌跡實時顯示出來,通過鼠標右鍵結束點位信息的獲取。量測結果的計算是將位置信息數組傳給平臺提供的計算函數。測量路徑顯示功能是把位置信息通過平臺的多邊形生成算法重新生成點位信息,然后通過平臺的多邊形繪制接口進行繪制。

Web World Wind平臺的基本場景是三維地球,地球上每個點都有其唯一確定的位置信息(經緯度或者三維坐標系坐標)。由于每一個經緯度代表的距離是確定的,三維坐標系的距離單位也是確定的,故可以根據點的坐標信息通過相應算法計算多點之間的距離和面積。

2.3? 模型搜索

在搜索框中輸入模型名稱,點擊確認即可從當前視角通過飛行自動到達目的地點,并且會高亮顯示該模型。

模型搜索主要利用GoToAnimator類實現,即根據輸入數據的關鍵字匹配對應模型信息,然后根據讀取到的模型位置信息進行飛行。該功能涉及到兩個技術:一個是搜索關鍵字的模糊匹配;另一個是數據的存儲。因為模型的數據量大,所以應該將模型的基本信息存儲在數據庫中。另外,在使用GoToAnimator之前,平臺會自動將相機鏡頭方向調整為豎直向下,以便于用戶查看目標的位置。

2.4? 屬性顯示

鼠標點擊模型,平臺會根據此模型的id信息在數據庫中查找其對應的屬性信息,然后通過Annotation標簽顯示出來。

屬性顯示功能主要是將屬性信息和位置信息傳遞給Annotation類來實現的,同時可以通過annotationAttributes類對屬性信息進行修改并保存到數據庫中。為了更方便地使用該功能,對其進行了再次封裝,使用過程中只需調用AddAnnotations(label, position, config)函數即可。其中,參數label代表屬性信息的內容,position代表屬性信息顯示的位置。

每個模型加載時都有唯一確定的名字(編號id),根據這個名字在數據庫中查找相應的label和position,然后調用AddAnnotations函數將屬性信息在指定位置顯示出來。模型屬性顯示如圖4所示。

2.5? 飛行漫游

飛行漫游功能可以實現第一人稱視角的三維場景漫游。用戶可以通過自助取點的方式,即在要飛行的路線上通過鼠標左鍵選取一系列關鍵點,然后點擊開始飛行按鈕后平臺會按照設定好的點位自動規劃路線進行飛行漫游。此外也可以通過直接加載提前規劃好的路線進行飛行漫游。

該功能是基于官方api提供的GotoAnimator類改造的。原有的飛行功能只適合于相機在高空中鳥瞰地球,其飛行主要靠控制相機視點和相機距離,沒有方位角、傾斜角等參數的變化,不適用于三維場景中的飛行漫游。因此,在GotoAnimator類基礎上進行了改進,封裝成了一個新的功能類,實現了三維場景中的飛行漫游。其原理主要是根據兩個點間相機參數的漸變,改進主要體現在相機漸變參數的增加以及對完整飛行路線的支持。

基于GoToAnimator類封裝成了FlyManager類,GoToAnimator類只是能夠做到定位飛行到一個指定點,而FlyManager類能夠實現多點間真正意義上相機平滑無抖動的飛行漫游。FlyManager類添加了updateHeading和updateTilt兩個方法,并對轉彎進行了優化。updateHeading和updateTilt是分別控制相機的heading參數和tilt參數,FlyManager通過動態控制這些參數在兩個點間漸變,同時更新系統的視圖矩陣,最終呈現出“飛行”的效果。

FlyManager有兩種具體的飛行漫游方式:一種是普通飛行漫游;另一種是專門進行轉彎的飛行漫游。選擇哪一種方式是由平臺的算法自動確定的,即需要轉彎的使用第二種方式飛行漫游,否則使用第一種方式飛行漫游。

2.6? 二三維聯動

二三維聯動即在屏幕上顯示三維場景的同時在右下角位置顯示一個二維的地圖窗口,兩個窗口可相互關聯,即對其中任意一個窗口進行平移或縮放操作時,另一個窗口也會同時進行相應的平移和縮放操作。

二三維聯動的主要原理是通過對二維地圖窗口和三維場景窗口的各種操作事件進行綁定實現的。當一個窗口事件觸發時,將會調用對應的事件函數對另一個窗口也做出相應的操作。比如:一個二維地圖窗口中心點通過平移改變位置,程序將會自動更新新的窗口中心點位置,并將三維場景窗口中心點也移動到該位置;二維地圖窗口的scale發生改變,程序則會自動控制三維場景窗口中的相機高度發生相應的改變。

該功能對兩個窗口都添加了鼠標按下、平移、松開事件。例如,默認情況下在沒觸發鼠標操作的時候,程序直接將二維地圖的中心點設置為三維窗口的中心點。Web World Wind的中心是通過navigator類控制的,而天地圖的中心是通過centerAndZoom類實現的。

3? 結? 語

本文基于開源軟件World Wind 設計和開發完成了具有模型加載、空間量測、模型搜索、屬性顯示、飛行漫游和二三維聯動等功能的三維可視化平臺,實現了現實世界展示的三維化、智能化。利用該平臺用戶只需使用瀏覽器就能查看三維場景的效果,從而達到三維可視化目的。

參考文獻

[1] 張霽,熊偉.基于World Wind的糧倉三維可視化平臺[J].電子設計工程,2016,24(20):78?81.

[2] 楊磊,高素青.基于World Wind的三維GIS研究[J].電腦知識與技術,2010,6(22):6331?6334.

[3] 李濤,張志剛.基于World Wind的三維Web GIS結構研究[J].煤炭技術,2010,29(10):153?155.

[4] 于翔,姜仁貴,李建勛,等.基于三維可視化平臺的水資源監控主題服務研究[J].水利信息化,2015(6):32?36.

[5] 王穆一雄,吳政漾,張新秀,等.校園建筑物三維可視化查詢系統研究與開發[J].蘭州交通大學學報,2013,32(1):120?123.

[6] 孫赫,馮仲科,王海平,等.基于Sketch Up和Arc GIS的校園樹木三維可視化[J].林業調查規劃,2011(6):17?20.

[7] 郝文霞,劉萬龍,李學剛,等.基于World Wind的三維電網資源管理平臺技術研究[J].電力信息與通信技術,2014,12(1):90?95.

[8] 譚征.基于三維虛擬的農村景觀設計系統設計[J].現代電子技術,2018,41(22):38?41.

[9] 吳文靜.Sketch Up與Arc GIS在三維數字校園中的應用研究[D].哈爾濱:東北林業大學,2012.

[10] 洪清鋒.基于Google Sketch Up和Arc GIS建立校園三維可視化的方法探討[J].數字技術與應用,2011(11):174?175.

[11] 張森崗.基于Web GIS的三維智慧校園的設計與實現[D].北京:北京建筑大學,2014.

[12] 鮑艷紅,武明.基于虛擬現實的森林公園景觀的節能設計[J].現代電子技術,2018,41(4):124?126.

主站蜘蛛池模板: 日韩在线1| 欧美成人一级| AV不卡在线永久免费观看| 日本欧美一二三区色视频| 美女被狂躁www在线观看| 日本欧美视频在线观看| 日韩天堂视频| 亚洲精品动漫| 在线观看亚洲成人| 午夜爽爽视频| 97se亚洲综合在线| 五月天天天色| 欧美午夜小视频| 色成人亚洲| 无码高潮喷水专区久久| 九九久久99精品| 免费一级毛片| 特黄日韩免费一区二区三区| 一级全黄毛片| 成人福利在线视频| 成年免费在线观看| 国产电话自拍伊人| 亚洲一区黄色| 99热6这里只有精品| 国产亚洲日韩av在线| 久久网欧美| 国产美女一级毛片| 视频二区国产精品职场同事| 激情综合婷婷丁香五月尤物| 欧美一区国产| 免费观看欧美性一级| 91在线精品免费免费播放| 欧美丝袜高跟鞋一区二区| 国产99在线| 国产高清精品在线91| 亚洲天堂在线视频| 97综合久久| 亚洲中文字幕无码爆乳| 亚洲国产精品一区二区第一页免| 欧美色图久久| 成人蜜桃网| 女人18毛片久久| 欧美特黄一免在线观看| 在线欧美一区| 伊人久久精品无码麻豆精品| 国产av无码日韩av无码网站| 伊人色天堂| 国产偷国产偷在线高清| 天天做天天爱天天爽综合区| 成人看片欧美一区二区| 亚洲人精品亚洲人成在线| 国产日本视频91| 99热这里只有成人精品国产| 伊人激情综合| 亚洲天堂精品在线| 国产一区二区网站| av无码一区二区三区在线| 国产成人综合亚洲网址| 国产99久久亚洲综合精品西瓜tv| 国产亚洲精品在天天在线麻豆| 成人在线视频一区| 999精品在线视频| 欧美精品xx| 亚洲欧美自拍中文| 亚洲色图欧美视频| 永久免费AⅤ无码网站在线观看| 国产美女91视频| 久久国产精品电影| 综合色88| 动漫精品啪啪一区二区三区| 国产日韩欧美一区二区三区在线| 91色综合综合热五月激情| 老司机久久精品视频| 亚洲午夜综合网| 9啪在线视频| 欧美日韩另类在线| 欧美激情首页| 久久综合一个色综合网| 99在线免费播放| 极品国产一区二区三区| 色视频久久| 亚洲床戏一区|