版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
指導(dǎo)老師:楊現(xiàn)所管理的地質(zhì)地理數(shù)據(jù)的可視化。OsgEarth提供了一個(gè)良好的三維虛擬地球框架,它OSG的二次開發(fā),它提供的樹狀數(shù)據(jù)管理結(jié)構(gòu)對三維虛擬地球的數(shù)據(jù)添加osgearthQT編程框架實(shí)現(xiàn):三維虛擬地球,空間數(shù)據(jù),可視化緒 課題背景及目 國內(nèi)外研究狀 課題研究方法及研究內(nèi) 組織結(jié) 相關(guān)背景技術(shù)介 OSG和OSGEARTH技 OSG相關(guān)介 QT技 地理空間數(shù)據(jù)基 基礎(chǔ)開發(fā)環(huán)境的搭 系統(tǒng)框 osgEarth體系結(jié) Osgearth配置及相關(guān)第插件介 三維地質(zhì)數(shù)據(jù)的可視 osgEarth數(shù)據(jù)組織和數(shù)據(jù)管 主要的數(shù)據(jù)類型和格 地質(zhì)數(shù)據(jù)可視化的關(guān)鍵技 地質(zhì)數(shù)據(jù)可視化的兩種方法結(jié) 交互功能的實(shí) 用戶界面設(shè) 視口窗 數(shù)據(jù)信息 ............................................................................................................事件處理機(jī) 透明機(jī)制的實(shí)現(xiàn)原 標(biāo)注信息添加功 事件處理器 標(biāo)注節(jié)點(diǎn)信息添加窗 拾取位置信息顯 事件處理handler的實(shí) 消息的傳遞與handler的開 輸出功能實(shí) 結(jié) 致 參考文 緒自從總統(tǒng)于1998提出數(shù)字地球的概念以后,世界各國都對數(shù)字地球的建設(shè)投入了巨大的熱情。中國也將“數(shù)字地球”列為中國21世紀(jì)的目標(biāo)之一。數(shù)字地球運(yùn)行的是與位置相關(guān)的各種地理信息,其中相對靜止的空間信息包括地質(zhì)、我國于1998實(shí)施了新一輪的資源大,在此過程中地質(zhì)信息化建設(shè)取得了階段性重大進(jìn)展與成果[2]。國家基礎(chǔ)地質(zhì)數(shù)據(jù)庫基本形成,其中海量的數(shù)據(jù)資源為地、地質(zhì)勘測提供了巨大的便利,也形成我國的數(shù)字地球目標(biāo)的巨大基礎(chǔ)然而,單有海量數(shù)據(jù)資源的數(shù)據(jù)庫體系并不足于提高相關(guān)地質(zhì)研究與的水平和地質(zhì)數(shù)據(jù)。而目前,各類地質(zhì)研究中主要運(yùn)用了二維GIS。在二維GIS中,地質(zhì)數(shù)據(jù)表示成二地圖對象,無法表示三地質(zhì)對象之間的關(guān)系。而所謂的2.5維GIS只沖斷層、斷裂層等邊界幾何元素在一對坐標(biāo)上擁有幾個(gè)高程值就顯的為力[3]。同時(shí)由此可見,三維GIS的發(fā)展具有相當(dāng)大的意義。三維GIS的是地質(zhì)地理數(shù)據(jù)的GIS在國內(nèi)外的發(fā)展已經(jīng)相當(dāng)成熟了。最為人們所熟知三維虛擬地球模同。其中Earth作為三維虛擬地球的成功產(chǎn)品具有三個(gè)突出特點(diǎn),一是可以顯示將本機(jī)上或從網(wǎng)上下來的地圖疊加到Earth上,并且可以調(diào)整加載不足之處在于缺乏GIS主流數(shù)據(jù)格式和相關(guān)標(biāo)準(zhǔn)的支持。這種模式采XML或擴(kuò)展作1.1NASAWorldWind這類的開放的科學(xué)研究工具,它們提供了源代碼,允許用靈活的構(gòu)架和自由的發(fā)揮空間。這使得在地質(zhì)數(shù)據(jù)的可視化方面具備了相當(dāng)大的便利。ESEIArcGISExplorerSkylineSoftSkyline這類出自于平臺軟件供應(yīng)商,傾化和數(shù)據(jù)分析交互方面取得成果來看,專業(yè)的地質(zhì)處理軟件還是比較成。比較著名的有Intergragh公司研制的MGA軟件中的MGEVoxel yst三維分心模塊,它具有基于真三維的分析功能;DynamicGraphic公司推出的可視化軟件一地質(zhì)學(xué)可視化軟件地球可視模擬系統(tǒng)(EarthVisionModelingSystem)所生成的三維結(jié)構(gòu)面的發(fā)育和分布規(guī)律;以及澳大利亞MAPTEK公司開發(fā)的VULCAN軟件、英國MICL公司的DataMine&Guide等[5-6]。受諸多原因的影響,國內(nèi)地質(zhì)功能主要還是從二維圖件上對地進(jìn)行分析研究,視化軟件包括適普軟件公司利用IDL開發(fā)出來的IMAGIS三維可視地理信息系統(tǒng),地實(shí)現(xiàn),關(guān)鍵在于對的地質(zhì)數(shù)據(jù)的可視化和交互功能的實(shí)現(xiàn),并且能夠接受不同格式OSGosgEarth、QT編第三章:介紹了基礎(chǔ)開發(fā)環(huán)境的搭建,描述了系統(tǒng)框架、osgEarth的體系結(jié)構(gòu)和闡相關(guān)背景技術(shù)介OSGOSGEARTH技本畢業(yè)設(shè)計(jì)將使用OpenSceneGraph(簡稱OSG)圖形開發(fā)和在OSG基礎(chǔ)開發(fā)的項(xiàng)目osgEarth做為可視化顯示的基本框架。OpenSceneGraph是一個(gè)開放源碼,跨平臺的圖形開發(fā)包,它為諸如飛行器仿真,游OSG完全由標(biāo)C++程序OpenGL開發(fā),充STL和設(shè)計(jì)模式,發(fā)揮開源開發(fā)集中在用戶的需求上。當(dāng)我們使用osg創(chuàng)建一個(gè)全特性的場景圖,如圖2.1為OSG實(shí)現(xiàn)地鐵模型 1、優(yōu)越的性能:OSG場景支持視圖投影剔除(viewfrustumcullingcullingculling(LODsortingobjcts,OpenGLlists為可能,OpenSceneGraph也支持繪制進(jìn)程(drawingprocess)的定制,比如場景圖的連2、可移植性O(shè)SG完全由標(biāo)C++程序OpenGL開發(fā),這使得它的場景圖內(nèi)擴(kuò)展性,使它不僅僅可運(yùn)行在便攜式設(shè)備,甚至高端的多核、多GPU的系統(tǒng)和集群要包括OpenSceneGraph、GDAL、CURL、GEOS、、LibZIP。同時(shí)osgEarth支XMLEarhFile的文件。EarthFile不僅能快速創(chuàng)建數(shù)據(jù),我們還可以通過它來了解數(shù)據(jù)是如何加載進(jìn)OSG中。EarthFile的作用是指明創(chuàng)建的地圖類型、可格式使得我們加載數(shù)據(jù)到三維虛擬地球時(shí)不僅可以通過OSG添加數(shù)據(jù)節(jié)點(diǎn)實(shí)現(xiàn),還可以通過修改EarthFile來實(shí)現(xiàn)數(shù)據(jù)的加載與刪除。2、支持大量的數(shù)據(jù)格式:osgEarthGDALOGC的基礎(chǔ)上可以加載眾多來源的戶接口,我們可以直接使用的地質(zhì)數(shù)據(jù)。當(dāng)需要加載XML文件來顯示內(nèi)容時(shí),還需在客戶端將數(shù)據(jù)寫進(jìn)XML文件中用于顯示。若使用其它虛擬地球工具,則客戶端需4、快速的數(shù)據(jù)部署機(jī)制:osgEarth可以用于快速的部署不同精度的數(shù)據(jù)模型。它不集中即時(shí)生成地形模型。同時(shí)無需編程即可處理全球地形模型。在數(shù)據(jù)顯示層次,osgEarth支持層疊高分辨影像于低分辨率的底圖上,并且它的圖層覆蓋是按照數(shù)據(jù)加載5、優(yōu)異的渲染功能:osgEarth不僅能夠渲染地表環(huán)境,還可以將矢量數(shù)據(jù)投影至地的模型檢測功能。QTQT是一個(gè)跨平臺的C++圖形用戶界面庫,由挪威TrollTech公司。QT不但支持所有的Unix系統(tǒng),而且支持Linux,也支持Window平臺。際化,即支持根據(jù)上下文進(jìn)行字符串翻譯。QT作為一種優(yōu)秀的GUI開發(fā)工具,具有與一般的工具包所不同的特征,這些特征分別是:面向?qū)ο螅篞T具有模塊設(shè)計(jì)和與外界通信、交流。而且,所有QT的組件都可通過繼承;組件間的相互通信:QT提供signal和slot概念,這是一種安全可靠的方法,它允許回調(diào),并支持對象之間在彼此不知道對方信息的情況下,進(jìn)行合作,這使QT非常合適于真正的組件編程;用戶自定生成的自定義組件對用戶來說,也是一個(gè)黑匣子。比如,在Motif手冊中就討論了用戶自定義的組件的問題。而在QT中,能夠創(chuàng)建組件,具有優(yōu)越性,生成自定義組件非常簡單,并且容易修改組件;豐富的API函數(shù):為了適合用戶的需求,QT的API提供了250個(gè)C++類,該類大多數(shù)用于專門的GUI。QT還提供了基于模板的初始化、文件和通用的I/O設(shè)備、 類,建立或生成不同的功能,用它們來實(shí)現(xiàn)QT的通用化。除此之外,也可以利用STL標(biāo)準(zhǔn)模塊庫或其他工具包;GUI競爭:大多數(shù)GUI工具包是基于分層的方法。比如,工具包為本地窗口系統(tǒng)組件提供了很多C++類,這種結(jié)構(gòu)使組件的繼承性和通用性變得很差。在層次化的工具包中,GUI功能常成為所有使用的窗口系統(tǒng)所必須的最普遍的基礎(chǔ)。QT仿效本地窗口系統(tǒng)的組件,這是一種非常復(fù)雜的技術(shù)。QT還提供一些更有用的函數(shù),類似文本的旋轉(zhuǎn),適用于多種平臺;可用戶化的外觀:QT支持,所以基于QT的應(yīng)用軟件能在Mac外觀、Windows等外觀之間互換,甚至改變運(yùn)行時(shí)間。這些應(yīng)用程序不管是在XWindow下,還是在Windows下都可以獨(dú)立操作、運(yùn)行;優(yōu)越的繪畫功能:QT的繪畫工具QPainter類,在任意一個(gè)繪圖設(shè)備上都可以潤形。繪圖設(shè)備包括組件、像素映射、圖形文件和,相同的代碼可以用在4種不同類型的設(shè)備上。QPainter類支持復(fù)雜的同等系統(tǒng)的轉(zhuǎn)換,很容易在所有平臺上畫旋轉(zhuǎn)文本和像素映射;完整的一套組件:QT編程的基本模塊(構(gòu)件)稱為組件,一個(gè)組件是一個(gè)用戶界面的組成部分,比如按鈕、滾動(dòng)條。QT包含用來創(chuàng)建專業(yè)外觀的用戶界空間數(shù)據(jù)是GIS的,因?yàn)镚IS的操作對象是空間數(shù)據(jù),因此設(shè)計(jì)一個(gè)GIS系GIS的最有效的數(shù)據(jù)源之一。(DEM線、面三種不同的圖形,并可以使用三坐標(biāo),或地理及高程坐標(biāo),或者用能用于多種目的,正在研制一種的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)具有矢量和柵格兩種結(jié)矢量數(shù)據(jù)結(jié)構(gòu)是通過記錄坐標(biāo)的方式來表示點(diǎn)、線、面等地理實(shí)體空間分布的一種的手扶跟(rtrridl)或象元結(jié)構(gòu)(pixl)元最多只有兩個(gè)相鄰單元上;面或區(qū)域用記有區(qū)域?qū)傩缘南噜彇鸥駟卧募媳硎?,每個(gè)柵格單元可有多于兩個(gè)的相鄰單元同屬一個(gè)區(qū)域。任何以面狀分布的對象(土地利用、土壤類型、地勢起伏、環(huán)境污染等),都可以用柵格數(shù)據(jù)近。遙感影像就屬2.3.2投影坐標(biāo)系統(tǒng)是定義在一個(gè)二維平面的坐標(biāo)系統(tǒng),與地理坐標(biāo)系統(tǒng)不同的是,投影x,y坐標(biāo)來定位,每個(gè)位置用兩個(gè)值確定(。的大地坐標(biāo)用大地經(jīng)度L、大地緯度B和大地高度H表示。如圖2.2所示,地面上的點(diǎn)P地的大地子午NPS與起始大地子午面所構(gòu)成的二面L,叫P地的大地經(jīng)度,由起始子午面起算,向東為正,向西為負(fù)。點(diǎn)P地對于橢球的法線P地Kp與赤道面的夾角B,叫做P地的大地緯度,由赤道面起算,向北為正,向南為負(fù)。點(diǎn)P地沿法線到橢球面的距離H叫做大地高,從橢球面起算,向外為正,向內(nèi)為負(fù)。2.21980國家大地坐標(biāo)系(GDZ80)就在我國中部,具體地點(diǎn)為陜西省涇陽縣永樂鎮(zhèn);采用國際大地測量和地球物理公式的各種參數(shù);1980國家大地坐標(biāo)系的橢球短軸平行于由地球質(zhì)心指向地級JYD1968.0方向,大地起始子午線應(yīng)平行于平均天文臺的子午面;橢球定位參準(zhǔn)面和重力大地水準(zhǔn)面高差建立地心坐標(biāo)系;(3)應(yīng)用天文大地和天文重力資料建立地心坐標(biāo)系;(4)應(yīng)用測量資料建立地心坐標(biāo)系。本設(shè)計(jì)的地球模型默認(rèn)使用1984世界大地(WGS84并且非地心格式數(shù)據(jù)也將參考WGS84坐標(biāo)系顯WGS84坐標(biāo)系是一個(gè)協(xié)議地球坐標(biāo)系,它的原點(diǎn)是地球的質(zhì)心,Z1984年定義的協(xié)議地球極點(diǎn)方向,X1984年定義的零度子午面和協(xié)議地球極赤道的交點(diǎn),Y軸和Z軸、X軸構(gòu)成右手坐標(biāo)系。度變形較大。一般來講地方獨(dú)立坐標(biāo)系只是一種平面坐標(biāo)系。建立地方坐標(biāo)系統(tǒng)主要確定一下因素:坐標(biāo)系中的基礎(chǔ)開發(fā)環(huán)境的搭3.1界面窗口管理包含可視化窗口、節(jié)點(diǎn)信息窗口、窗口以及各個(gè)窗口的之間的EarthFileosgEarth使用的一種基于XML的文件格式。它是用來說明數(shù)據(jù)是怎么加載到OSG中,EarthFile的作用是指明:創(chuàng)建的地圖類型、可使用的數(shù)據(jù)和數(shù)據(jù)緩沖,以及一些地圖屬性設(shè)置[11]。它的結(jié)構(gòu)圖如圖3.2所示。3.2EarthFilemaposgEarthmap節(jié)點(diǎn),它包括options則是對地圖屬性的設(shè)置,包括了地圖類型,數(shù)據(jù)緩存方式等。我Earth文件的元素信息及其參數(shù)設(shè)置可以了解osgEarth的系統(tǒng)框架。其中最數(shù)據(jù)組織方式:osgEarthOSG一樣在場景圖形中采用了一種自頂向下的,3.2中,map是場景結(jié)地球參數(shù):地球參數(shù)設(shè)置單獨(dú)作為map的子節(jié)點(diǎn),它表明了map的根節(jié)點(diǎn)的特osgEarth作為三維虛擬地球的重要特征,osgEarth支持Osgearth配置及相關(guān)第插件介osgEarthosgEarth環(huán)境進(jìn)行配置,它的配置主要包括兩部分,它們分別為OSG的配置和第插件的配置,這些配置所需要的資源均可以在官網(wǎng)上。當(dāng)配置完OSG和相關(guān)第插件后只需要osgEarth工程進(jìn)行編譯即可得到我們需要osgEarth開發(fā)環(huán)境。OSGOSG運(yùn)行的平臺需要具OpenGL的支持能C++的編譯環(huán)(本課程設(shè)計(jì)使用的是Visualstudio2010。同時(shí)由于OSG的并沒有提供窗口系統(tǒng)的功能。因此用戶可以所需的圖形開發(fā)接口(本設(shè)計(jì)使用的是QT。第插件介紹及其配OsgEarth需要眾多的第插件支持才能實(shí)現(xiàn),因此第插件的配置尤其重要,特別需要注意的時(shí),對應(yīng)不同的osgEarth的版本需要選擇其隊(duì)形的第插件版 組織開發(fā)的。它支持很多協(xié)議:FTP,FTPS,HTTP,HTTPS,GOPHER,NET,FILE以及LDAP。curl同樣支持HTTPS認(rèn)證,HTTPPOST方法,HTTPPUT方法,FTP上傳,kerberos認(rèn)證,HTTP上傳,服務(wù)器,s,用戶名/認(rèn)證,文件斷點(diǎn)續(xù)傳,上載文件斷點(diǎn)續(xù)傳,http服務(wù)器管道(proxytunneling),甚至它還支持IPv6,socks5服務(wù)器,通過http服務(wù)器上傳文件到FTP服務(wù)器等等,功能十分強(qiáng)大[12]。2、GDAL:GDAL(GeospatialData ionLibrary)是一個(gè)在X/MIT協(xié)議下的開3、GEOS:GEOS(幾何引擎——開源)Java拓?fù)涮准↗TS)C++移植。因C++JTSOpenGISSQL4、Expat:expatCXML文檔的開發(fā)庫,它最初是開源的、Mozilla項(xiàng)目下的一個(gè)XML解析器。Expat是一個(gè)面向流的解析器。您的解置,它會調(diào)用該部分相應(yīng)的處理程序(如果您已經(jīng)的一個(gè)。該文件被輸送到解析expat可以解析那些巨大的文件。5、:是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)聯(lián)式數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix三維地質(zhì)數(shù)據(jù)的可視的信息進(jìn)行查詢。同時(shí)也可osgearthmap節(jié)點(diǎn)作為一個(gè)子節(jié)點(diǎn)(而不是根節(jié)點(diǎn))加入到場景的根節(jié)點(diǎn),這樣的作用是使得數(shù)據(jù)的管理具有的選擇。osgEarthosgEarth:QtGui:DataManager(Node)來管理渲新的dataManager,它首先定義多個(gè)向量組分別讀入的map的節(jié)點(diǎn)以及子節(jié)點(diǎn)的信dataManageronMapChanged用來實(shí)時(shí)更新場景使得用戶能在Qt框很好顯示場景節(jié)點(diǎn)信息,并且在QT框的完成的數(shù)據(jù)管理操作就相當(dāng)于在在dataManager里完成的,具有良好的可控性。圖層數(shù)據(jù)的格式主要支持tif和dt格式,高程圖像數(shù)據(jù)主要支持tif和ecw格式的數(shù)函數(shù)加以實(shí)現(xiàn),通過用戶界面?zhèn)鱽淼男盘栆笳{(diào)用函數(shù)addImageLayer()或函數(shù)addElevationLayer()。其實(shí)現(xiàn)流程圖見圖4.1和圖4.2.驅(qū)動(dòng)入同理高程圖像加載的過程如下加入X(NH)cosBcosL NHcosBsinL Z[N(1e2)H]sin 式中,B代表維度;L代表經(jīng)度;H代表高度;e代表偏心率 1e2sin2 Larctan(
Z(HN B (X2Y2)[N(1e2)]HH
N
因?yàn)橛?jì)算大地維度B需要用到大地高H,而計(jì)算大地高時(shí)又要用到大地維度B。因此不能大地緯度B的初值[15]:B X2Y再利用所求出的大地高H和N初值帶入公式(4-4)求出BB帶入公式求H和N,如此反復(fù),直至求出的B,H,N收斂為止。XXB
Ze2b
X2Y2e2asin3 X2X2YH 式中,
cosZ
),e2
,eXY圖4.3所示:2、可視化映射:可視化映射是可視化技術(shù)的,它將原始數(shù)據(jù)映射成可繪制出圖像化映射方式,同時(shí)可視化映射方式與可視化工具的映射機(jī)制關(guān)。模型數(shù)據(jù)添加功能是本系統(tǒng)的之一。由于模型數(shù)據(jù)的格式十分繁復(fù),而不同格將modellayer其代碼如下osgEarth::Drivers::FeatureGeomModelOptionstheFeatureModel;osgEarth::Drivers::OGRFeatureOptionsfeatureOpt;featureOpt.url()=osgEarth::URI(filePath.toStdString());theFeatureModel.featureOptions()=featureOpt;osgEarth::ModelLayerOptionsmlo(fileName,theFeatureModel);ModelLayer*modelLayer=newosgEarth::ModelLayer(mlo);_manager->map()->addModelLayer(modelLayer光照、LOD層次顯示效果等。
SpatialReference::get("wgs84")定義一個(gè)大地坐標(biāo)系參數(shù)geoSRS,接著使用osgDB:設(shè)置加載的數(shù)據(jù)節(jié)點(diǎn)坐標(biāo)和坐標(biāo)系參數(shù)。最終只需要將該數(shù)據(jù)節(jié)點(diǎn)加入根節(jié)點(diǎn)root中,交互功能的實(shí)了解介osgosgearth最重要與交互相關(guān)的類事件處理機(jī)制GUIEventHandler。進(jìn)而分QT進(jìn)行設(shè)計(jì),主窗口的頁面布局包含視口窗口、數(shù)據(jù)信息框和。用戶界面效果圖如圖5.2所示。5.1if(url.length()>_earthNode=osgDB::readNodeFile(url//Loadablankglobeifneededif(!_earthNode.valid())_earthNode=newosgEarth::MapNode(new使用函數(shù)osgEarth::MapNode()一個(gè)空白的地球作為系統(tǒng)原始地球節(jié)點(diǎn)。天空節(jié)點(diǎn)我們直接調(diào)用osgEarth封裝的天空節(jié)點(diǎn),其實(shí)現(xiàn)的機(jī)制如下:_map=_mapNode->constosgEarth::Config&externals=_mapNode->externalConfig();if(_map->isGeocentric()){ SkyosgEarth::ConfigskyConf=externals.child("sky");doublehours=skyConf.value("hours",12.0);_sky=newosgEarth::Util::SkyNode_sky->setAutoAmbience(true_sky->setDateTime(2011,3,6,_sky->attach_root->addChild}skyCoof,并把將星空就可以了。當(dāng)用戶旋轉(zhuǎn)視角時(shí),就會象是在一個(gè)真正的星空之下,大大增加視同時(shí)相機(jī)設(shè)置也是視口窗口的關(guān)鍵部分,首先要設(shè)置相機(jī)的近地參數(shù),將setNearFarRatio(x)0.00002。這保證了當(dāng)相機(jī)足夠接近地面時(shí),保證視osgEarth::UtilEarthManipulator()進(jìn)行視圖的漫游控制。標(biāo)注信息和視角節(jié)點(diǎn)。這些節(jié)點(diǎn)信息都可以從.earth文件找到對應(yīng)的屬性。具體的.earth文件結(jié)構(gòu)可以參照第三章圖3.2earth文件結(jié)構(gòu)圖。例。系統(tǒng)使用QDockWiget定義一個(gè)新的QT框_vpDock,如以下代碼所示:_vpDock=new_vpDock->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);addDockWidget(Qt::LeftDockWidgetArea, _vpDock);為此系統(tǒng)創(chuàng)建一個(gè)管理器dataManager,這個(gè)是管理器是由osgEarth::Gui::DataManager(node)DataManager(node)將提取node節(jié)點(diǎn)中的子節(jié)點(diǎn)dataManager管理。有個(gè)管理器,視圖就可以在每次更新后,osgEarth::QtGui::MapCatalogWidget*vpCatalog=newosgEarth::QtGui::MapCatalogWidget(_manager,osgEarth::QtGui::MapCatalogWidget::VIEWPOINTS);vpCatalog->setActiveViews(_views);_vpDock->setWidget(vpCatalog)vpCatalogosgEarthQtGui::MapCatalogWidget::VIEWPOINTS節(jié)點(diǎn)。再將vpCatalog在_vpDock框中顯示就可以了1、圖層圖像加載:這一部分可以細(xì)分為三個(gè)部分。第一部分是高程圖像的加載,顧名思義這能主要加載高程的圖像數(shù)據(jù),這種數(shù)據(jù)格式主要.tif和.dt;第二部分為23、文件導(dǎo)出:這能使得用戶可以將當(dāng)前三維虛擬地球的數(shù)據(jù)信息保存在一個(gè)4、設(shè)置:這能主要是為了觀測模型而設(shè)置,當(dāng)它開啟時(shí),即地球viewerViewerviewer,那么也就是可以從鍵盤的響應(yīng)中場景。Viewer中有一個(gè)方法addEventHandler就用來做這完成這件事。當(dāng)需要定義一個(gè)新的事件處理器,只要從類osgGA:GUIEventHandler中派生一個(gè)類即可。下面我們參照圖5.2來理解一個(gè)事件處理類A的過程:可以其他事件,也就是說僅當(dāng)事件A處理完了才輪到BCD處理。另外在事件處理函handleconstosgGA:GUIEventAdapter,該參數(shù)時(shí)用來識別各種時(shí)間類型的參數(shù),值得注意的不能缺少const個(gè)參數(shù)時(shí)osgGA:GUIActionAdapter,它是控制顯示的參數(shù),尤為重要的Viewer的祖類,由它可以得到viewer,從而在viewer中進(jìn)行相關(guān)操作。地球表面紋理的設(shè)置對于實(shí)現(xiàn)三維虛擬地球的可視化至關(guān)重要。由于地質(zhì)數(shù)osgEarth提供給我們了地表圖層的調(diào)整,但僅有圖層的調(diào)整是不夠。從EarthFileoptionsEarth文件中調(diào)整地形參數(shù),使osgearth半透明疊加的功能實(shí)現(xiàn)地表的透明化。并且還需要將blending參數(shù)設(shè)為true,這一參數(shù)將命令三維地球模型支持?jǐn)?shù)據(jù)的可視化。但僅有這些還是不夠,從圖5.3中我們可以看到,這個(gè)數(shù)據(jù)節(jié)點(diǎn)在地表和都5.3從OpenGL渲染機(jī)制可以知道,設(shè)置還需要開啟深度測試才可以真正實(shí)現(xiàn)透osgStatesetstateset來管理地球節(jié)點(diǎn)的深度測試的開關(guān)。并且設(shè)置了參數(shù)alpha來表示開關(guān)的狀態(tài),當(dāng)按鈕傳來信號,alpha將取反,同時(shí)通過改變osgStateAttribute的狀態(tài)來改變深度測試的開關(guān)狀態(tài)。開啟深度測試的效果如圖5.4所示。5.4也可以自由的刪除不需要的標(biāo)注節(jié)點(diǎn)。其具體實(shí)現(xiàn)如下所示:structMyAnnoEventHandler:public{_manager(manager)voidonClick(AnnotationNode*node,constEventArgs&details{{if(details.modkeys&{if(_manager-}{}}}osg::ref_ptr<osgEarth::QtGui::DataManager>5.5的數(shù)據(jù)信息。如下圖5.6所示:5.6handler的實(shí)現(xiàn),其二為消息的傳遞與Viewer:addEventHandler將其關(guān)聯(lián)到視口。一個(gè)視口可以有多個(gè)事件處理器,ViewerViewerGUI事handle函數(shù),直到其中一個(gè)的handle函數(shù)返回true為止。在PickHandler方法中檢查GUIEventAdapter參數(shù)傳遞的事件類型,并針對需要的事件類型執(zhí)行相應(yīng)的。方法返回true時(shí)將其他事件處理器繼續(xù)接受事件消息;在渲染之前,創(chuàng)建事件處理器的實(shí)例,并使用addEventHandler方法添加到視口中。Osg將會把視口作為GUIActionAdapter參數(shù)傳遞給Pickhandler方法。PickHandler)當(dāng)鼠標(biāo)事件為osgGA::GUIEventAdapter::KEYDOWN時(shí),將拾取點(diǎn)平均值傳遞給函數(shù)pick;voidpick(osgViewerview*view,osgGAGUIEventAdapter&ea),該函數(shù)利用函數(shù)osgUtil::LineSegmentIntersector,該函數(shù)可以獲得當(dāng)前坐標(biāo)與在屏幕向里方向與模型相交的點(diǎn)。我們通過設(shè)置變量Picker來這些坐標(biāo)點(diǎn);三是拾取點(diǎn)信息的顯示節(jié)點(diǎn),該節(jié)點(diǎn)為一osgTe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《延安大學(xué)研究生》課件
- 幼兒園周四營養(yǎng)食譜
- 《爆管應(yīng)急處理預(yù)案》課件
- 《汽車回收再生服務(wù)》課件
- 教育行業(yè)前臺服務(wù)總結(jié)
- 醫(yī)療行業(yè)前臺工作體會
- 財(cái)務(wù)工作成長心得
- 康復(fù)閱讀護(hù)士的工作總結(jié)
- 客戶信用評估總結(jié)
- 《淺談酒店市場營銷》課件
- 文創(chuàng)產(chǎn)品可行性報(bào)告
- 江蘇省徐州市2023-2024學(xué)年八年級上學(xué)期期末抽測道德與法治試題
- 8.1《荷花淀》同步練習(xí)()
- 浙江省杭州市2023-2024學(xué)年四年級上學(xué)期科學(xué)高頻易錯(cuò)期末考前卷(教科版)
- 汽車產(chǎn)量統(tǒng)計(jì)研究報(bào)告
- 甲烷事故應(yīng)急預(yù)案
- 醫(yī)藥倉儲部人員崗位職責(zé)及工作內(nèi)容培訓(xùn)課件
- 三明醫(yī)改調(diào)研社會實(shí)踐報(bào)告
- 人員密集場所安全常識
- 泵設(shè)備故障預(yù)警與診斷技術(shù)
- 臺球廳打架應(yīng)急預(yù)案
評論
0/150
提交評論