程延鋒,王俊江,曹紅艷,王艷俠(中國電波傳播研究所,山東青島266107)
基于marble的三維可視化技術研究
程延鋒,王俊江,曹紅艷,王艷俠
(中國電波傳播研究所,山東青島266107)
隨著三維可視化技術的高速發展和廣泛應用,很多應用工程領域需要三維地理信息系統顯示空間數據。據此介紹了marb1e的特點和應用方式,詳細論述使用VS2008和Qt構建marb1e源碼的基本過程。應用實例表明,基于marb1e的空間數據三維圖形顯示真實、形象、直觀。
三維可視化;marb1e;Qt;VS2008
隨著計算機技術和圖形技術的進步,三維可視化技術得到了迅速的發展,并廣泛應用到了軍事、地理和礦產等諸多領域[1-6]。為了對空間數據進行可視化應用研究,相對于虛擬的二維地球平面載體,虛擬的三維地球模型作為載體更具有直觀性和真實性,所以選擇三維地球模型作為載體。考慮如果從底層開始建立比較實用的三維地球模型,則需要大量的人力在很好的硬件環境下花費大量的時間和精力才可完成開發工作,但是所做出的效果也不一定比目前流行的軟件好。比如谷歌的Goog1e Earth[5]就是一個典型的代表。然而,Guog1e Earth也有自身問題,如存在三維數據的數據量巨大、代碼數量大、操作繁瑣、瀏覽速度慢及難以脫離專業軟件環境等缺點,而GNU下的marb1e[8]為解決這一問題提供了一個有效的途徑。
marb1e是一個地理地圖集和虛擬桌面地球儀,具有一套完整的地理位置信息,可以使用marb1e查找地點,輕松地創建地圖、測量距離以及檢索與位置相關細節。marb1e帶有一個小型數據庫,如果可以連接互聯網,marb1e可以連接到流行的互聯網百科全書“維基百科”。marb1e提供了多種不同的視圖,可以在線瀏覽地球上的地圖區域,也可以把地圖區域下載下來,然后離線使用。marb1e的所有特性都是由1ibMarb1e庫所提供的。1ibMarb1e是基于Qt框架所建立的庫,Qt是一個多平臺的C++圖形用戶界面應用程序框架,它為程序員開發多平臺應用程序提供了方便[9]。marb1e還有三個非常突出的優點:
(1)marb1e是一個跨平臺的開源軟件,支持的操作系統包括Linux、W indows、Mac OS X和MeeGo Qt/C++;
(2)由于1ibMarb1e是基于模塊和插件的,可根據需要在marb1e中嵌入自己所編寫的插件;
(3)可以對由Keyho1e標記語言(Keyho1e MarkuP Language,KML)所編寫的文件進行解釋,把文件中所描述和保存的地理信息如點、線、面和3D模型展現出來。
2.1 m arb le應用方式
基于marb1e自身的特點,有兩種方式可以對空間數據進行可視化應用研究。
(1)在marb1e中,根據需要可以編寫特定功能的插件,將對空間數據可視化的功能作為一個獨立的插件嵌入到marb1e中;
(2)通過編譯源代碼,生成對應的動態庫,在動態庫的基礎上建立一個獨立的程序實現對空間數據可視化的應用研究。
本文采用第二種方法實現對空間數據可視化的應用研究,其主要包括以下兩個方面。
(1)下載marb1e的源代碼,然后通過cmake、Qt4和VS2008進行編譯和建立相應的動態庫marb1ewidgetd.d11,在建立的程序中,調用動態庫marb1ewidgetd.d11提供的Marb1eWidget和zoomView等API生成虛擬三維地球模型。
(2)marb1e分層進行顯示,可通過生成不同的層,顯示對應的不同場景,繼承LayerInterface類,在層上實現三維圖形的顯示、旋轉、平移、縮放和漫游等功能。
2.2 m arb le源碼構建
以下是編譯marb1e的具體步驟,操作系統采用W indows。
(1)安裝所需要的軟件以及配置相關環境
①安裝VS2008;
②安裝Qt,同時把安裝路徑加入到系統的環境變量中;
③安裝Qt-VS-addin;④安裝cmake;
⑤下載marb1e源代碼。
(2)cmake marb1e源代碼,在cmake gui配置文件中,輸入marb1e源代碼的位置和marb1e源代碼的構建位置。
(3)在cmake中點擊“configure”按鈕,選擇Visua1Studio 9 2008。
(4)點擊“Generate”生成marb1e對應的工程。
(5)用VS2008打開上步生成的marb1e工程,進行構建。
(6)構建完成后,進行安裝,從而將庫和可執行文件默認安裝在C:Program Fi1esmarb1e。
此時,可以采用調用其生成的動態庫marb1ewidgetd. d11和靜態庫marb1ewidgetd.1ib進行三維可視化的應用。
下面通過繪制地域網格實例說明基于marb1e的應用開發方法及其三維效果。以三維圖形組件庫為基礎,子類化marb1e的Marb1eW idget類,實現了三維可視化窗體空間,該控件可以插入到其他Qt窗體控件中,通過Qt中信號和槽的消息通信機制實現三維的顯示和交互,具體步驟如下。
(1)marb1ewidgetd.d11、marb1ewidgetd.1ib和相關數據文件放到繪制地域網格工程目錄之下;
(2)在定義Marb1eWidget類的對象的頭文件中,加入如下代碼:
//定義Marb1eWidget類的頭文件
#inc1ude
//定義繼承LayerInterface類的頭文件
#inc1ude"reg1ayer.h"
using namesPace Marb1e;
Marb1eW idget* m_PWgt;
reg1ayer* m_PLayer;
(3)在定義Marb1eW idget類的源文件中,主要加入如下代碼:
//申請marb1e對象
m_PWgt=newMarb1eW idget(this);
m_PWgt->setGeometry(QRect(0,0,500,500));
//加入主題地圖紋理
m_PWgt->setMaPThemeId("earth/srtm.dgm1")
//marb1e初始大小
m_PWgt->zoomView(1500);
……
//申請對應的圖層
m_PLayer=new QregLayer(m_PWgt);
//圖層加入marb1e
m_PWgt->maP()->addLayer(m_PLayer);
(4)在定義的reg1ayer層中,render()是主要的繪制地域網格等圖形三維顯示的函數;以經度50°、緯度10°為中心,6°一個方位(60個方位),400 km一個距離段(10個距離段),繪制一個圓形的地域網格,其效果圖如圖1所示。

圖1 基于marb1e的地域網格
本文進行了基于marb1e的三維可視化研究,包括marb1e的編譯、安裝以及如何應用;基于marb1e的空間數據顯示真實、形象、直觀,三維可視化效果好。基于marb1e的三維顯示已應用在很多實際項目中,解決了很多實際問題,具有很好的實用與經濟價值。
[1]楊富民,萬剛,李鋒.復雜戰場電磁態勢三維可視化研究[J].測繪工程,2012,21(2):35-38.
[2]潘立武.基于地理信息系統技術的潰壩洪水三維可視化研究[J].北京聯合大學學報,2013,27(4):19-23.
[3]宋潔華,郝君,趙志忠,等.基于ArcGIS Engine的三維地理信息軟件設計與應用[J].海南師范大學學報(自然科學版),2009,22(3):326-330.
[4]申皓,劉青昆,龔蔚青.基于OSG的油藏三維可視化系統研究[J].微型機與應用,2014,23(8):32-34.
[5]史曉亮.基于Goog1e Earth的潘家窯工區煤田三維地震勘探的技術應用[J].工程地理物理學報,2014,11(4):457-461.
[6]劉家學,鄧飛.基于OSG的飛機3D維修多場景動態調度方法[J].電子技術應用,2014,40(2):118-121.[7]張洋弘,孫歧峰,邵尉,等.基于Web的三維實時井眼軌跡可視化方法研究與實現[J].微型機與應用,2015,34(16):74-76.
[8]The Marb1e Project.The Marb1e Handbook[EB/OL].(2013-12-12)[2016-01-05]httPs://docs.kde.org/trunk5 /en/kdeedu/marb1e/index.htm1.
[9]中國軟件技術有限公司.Qt程序設計[M].北京:清華大學出版社,2002.
程延鋒(1981 -),通信作者,男,碩士,工程師,主要研究方向:電波傳播、數值計算和軟件開發等。E-mai1:cyfg1@163. com。
王俊江(1978 -),男,碩士,高級工程師,主要研究方向:電波傳播、數值計算和軟件開發等。
曹紅艷(1977 -),女,碩士,高級工程師,主要研究方向:亞太地區頻率場強預報算法研究及數值計算等。
Research on 3D visua1ization techno1ogy based on marb1e
Cheng Yanfeng,Wang Junjiang,Cao Hongyan,Wang Yanxia
(China Research Institute of Radio Wave ProPagation,Qingdao 266107,China)
W ith the raPid deve1oPment and wide aPP1ications of3D visua1ization techno1ogy,many aPP1ications in engineering fie1ds require 3D geograhic information system to show sPatia1 data.In this PaPer,the characteristics and aPP1ied way ofmarb1e are introduced,and the basic Process of bu1idingmarb1e code by VS2008 and Qt is discused in detai1.APP1ication examP1es show that sPatia1data 3D graPhic disP1ay based on marb1e is true,vivid and visua1.
3D visua1ization;marb1e;Qt;VS2008
TN391
A
10.19358 /j.issn.1674-7720.2016.09.006
程延鋒,王俊江,曹紅艷,等.基于marb1e的三維可視化技術研究[J].微型機與應用,2016,35(9):18-19,23.
2016-01-05)