基于Skyline的三維GIS在測繪行業(yè)的應用研究,地質(zhì)測繪與測量論文
第一章緒論
1.1研究背景
在測繪行業(yè)中,地理信息系統(tǒng)是其最核心的業(yè)務,現(xiàn)階段二維地圖及基于地圖的應用數(shù)不勝數(shù),隨著幾個大型軟件公司的參與,二維地圖應用迅猛發(fā)展,但由于二維地圖的維度限制,無法全景全貌的仿真、模擬地形、地貌及周邊環(huán)境等,也無法身如其境的還原空間環(huán)境,這是二維地圖及其應用所存在的無法規(guī)避旳弊端,F(xiàn)實世界是處在三維空間中的,二維GIS簡化三維空間維度為平面上的二維模型,引發(fā)了它在描述三維空間現(xiàn)象上的描述盲點,為了克服這一難點,急需基于真三維空間的GIS應用,也就是三維地理信息系統(tǒng)[1]。
最近幾年,隨著計算機、網(wǎng)絡、圖形學和虛擬現(xiàn)實等技術(shù)的迅速發(fā)展,從而使得這些技術(shù)在地理信息系統(tǒng)中得到了普遍應用通過三維GIS進行空間三維分析和操作不僅可以顯示空間對象之間的關系,同時帶來更逼真的視覺體驗。隨著Google Earth、Skyline、Map Info等三維地理信息系統(tǒng)平臺的上線、推廣、應用,三維GIS平臺以及技術(shù)迅速的得到廣大企業(yè)、用戶的認可。再者,三維GIS的相關技術(shù)也已經(jīng)成為數(shù)字地球、智慧城市研宄、開發(fā)的關鍵技術(shù)。測繪行業(yè)也不例外,三維虛擬技術(shù)逐漸邁入主流,但由于技術(shù)成熟度及行業(yè)應用的限制,只有在幾個有限的領域提前實現(xiàn)了三維應用,但是三維應用尚且停留在“看”的程度,無法貼近業(yè)務應用。
...........................
1.2國內(nèi)外研究概要
1.2.1國外研究概要
目前,三維GIS的主流方向,主要體現(xiàn)在如何擴展3D GIS的業(yè)務功能、增強3D GIS的實用性以及提升3D GIS的美觀性[3]。
日本京都大學已完成“Digital City Dyoto”,該項目建立一個數(shù)字化的虛擬城市,用戶以第一視角角度漫游數(shù)字京都[4]。
James D等研發(fā)人員使用ESRI軟件的三維組件開發(fā)了 Borels,該系統(tǒng)用于瀏覽、分析、管理地下鉆孔數(shù)據(jù)[5]。
德國的研究機構(gòu)探索如何將三維GIS融入數(shù)字城市中,并選取了一些城市嘗試構(gòu)建基于三維GIS的數(shù)字城市,將城市景觀數(shù)字化、展示、分類,使用者可方便地查詢、分析景觀信息[6]。
數(shù)字費城系統(tǒng),人們可通過網(wǎng)絡享受到美妙的虛擬費城旅游。不同行業(yè)人可在該系統(tǒng)可查看自己關系的信息,如城市規(guī)劃、管理人員可以看到費城地下三維管網(wǎng)、城市建筑模型等[7]。
法國已開放了基于Skyline平臺的三維虛擬地球,“Geoportail”。通過該平臺,使用者可以隨意漫游城市景觀?。
World Wind是美國宇航局的一個開源代碼的項目軟件,在國內(nèi)這款軟件有多種譯名,比如“世界風”和“地球放大鏡”。和Google Earth 一樣,World Wind只有連上互聯(lián)網(wǎng)才能訪問服務器上發(fā)布的數(shù)據(jù)。通過World Wind我們可以免費使用NASA發(fā)布的海量數(shù)據(jù),包括衛(wèi)星影像、雷達遙感數(shù)據(jù)和氣象數(shù)據(jù)等。由于其開源和免費的性質(zhì),不少空間信息技術(shù)人員、學生、科研人員對World Wind產(chǎn)生了很大的興趣。除了 World Wind, NASA還推出了三維月球、三維火星、三維金星、三維木星等一系列軟件,吸引了大量的愛好者。但是與Google Earth相比,World Wind更像是為專業(yè)愛好者提供的?梢哉f這兩款軟件為大眾了解空間信息技術(shù)起到了重要的啟蒙作用。
TerraExplorer也是一款優(yōu)秀的三維軟件,其實SkylineSoft提出一整套的解決方案叫做Skyline TerraSuite,TerraExplorer只是其中一個軟件,用來發(fā)布、編輯三維場景數(shù)據(jù)。Skyline可以提供行業(yè)用戶使用,在局域網(wǎng)的環(huán)境下,也可以搭建三維地理信息系統(tǒng)。使用這套平臺能夠進行簡單的二次開發(fā),因為接口顆粒度較大,如果進行深入的開發(fā)則需要借助其他GIS平臺或者從底層寫起。
1.2.2國內(nèi)研究概要
國內(nèi)該研宄已得到了迅速發(fā)展。該研宄從理論到實際應用,雖然研宄時間很短,但是如今其理論研宄水平己經(jīng)有了一個大幅度的提升,研宄人員對3D GIS的三維建模、某一領域的業(yè)務應用提出了良好的解決思路和技術(shù)方法,并已應用到實際生產(chǎn)中。
武大吉奧(GeoStar)是擁有自主知識產(chǎn)權(quán)的GIS, GeoStar基于組件技術(shù)開發(fā),擴展了多種數(shù)據(jù)庫入口,提供空間數(shù)據(jù)管理、圖形編輯、空間分析、空間查詢、基礎數(shù)據(jù)轉(zhuǎn)換、元數(shù)據(jù)管理等功能,可適應不同行業(yè)、不同用戶、不同應用的需求,在國家的各種領域得到了廣泛應用。此外,GeoGlobe提供了空間三維可視化,,主要功能如:空間漫游、空間查詢與三維分析、POI標注及位置定位等。還提供了 JavaScript、C#等二次開發(fā)接口,幵發(fā)人員可以根據(jù)不同的業(yè)務需求來設計個性化界面。
CityMaker是數(shù)字城市三維可視化平臺,主要業(yè)務面向城市規(guī)劃領域,提供涵蓋城市規(guī)劃、虛擬展示、規(guī)劃評估、規(guī)劃管理的全方位服務。通過這個三維可視化平臺,可以展示、疊加地形地貌、空間矢量數(shù)據(jù)、監(jiān)控視頻等各種二三維數(shù)據(jù),還可快速集成其他己有的系統(tǒng),形成基于網(wǎng)絡的綜合應用。
..............................
第二章三維GIS開發(fā)技術(shù)
2.1 GIS的開發(fā)方式
2.1.1 GIS 二次開發(fā)
地理信息系統(tǒng)的開發(fā)分為獨立開發(fā)、單純二次開發(fā)、集成式二次開發(fā)三種方式[9]。
1.獨立開發(fā)
這種開發(fā)方式意味著一切的功能模塊都自行設計、實現(xiàn)。這種開發(fā)方式的優(yōu)點在于不會依賴任何成熟平臺,開發(fā)人員掌握全部技術(shù),能夠快速修改、定制功能。但對于絕大部分開發(fā)者來說是不可行的,無論從能力、時間還是精力方面,都很難在功能上與成熟的平臺相比,而且使用成熟平臺不僅能夠替開發(fā)人員節(jié)省下不少的時間,開發(fā)人員可能學到很多二次開發(fā)的經(jīng)驗。
2.單純二次開發(fā)
這種開發(fā)方式指的是全部依賴于成熟平臺提供的二次開發(fā)代碼庫進行業(yè)務系統(tǒng)開發(fā)。功能齊備的地理信息系統(tǒng)平臺基本上都給用戶提供了進行二次開發(fā)的代碼庫,如Arcgis的Avenue,Maplnfo的MapBasic等。用戶在成熟的地理信息系統(tǒng)平臺的基礎之上,借助二次開發(fā)包,可以設計針對不同業(yè)務的業(yè)務系統(tǒng)。問題在于這些二次開發(fā)包所提供的功能不完善,所能實現(xiàn)的功能達不到預期效果。
3.集成式二次開發(fā)
這種開發(fā)方式是指借助成熟的平臺軟件(如Skyline、GeoStar, CityMaker等),實現(xiàn)地理信息系統(tǒng)的基礎模塊。使用諸如Visual Studio、Eclipse等可視化開發(fā)工具,使用如JavaScript、Visual C++, CT等語言實現(xiàn)業(yè)務系統(tǒng)開發(fā)。
集成式二次開發(fā)方式如下:
(DOLE/DDE這種方式主要以OLE Automation、DDE技術(shù)為主,開發(fā)人員可以使用不同的方式幵發(fā)系統(tǒng)的用戶交互界面,而以OLE或DDE在操作系統(tǒng)后臺啟動GIS系統(tǒng),當GIS組件啟動后,組件能夠主動獲取服務數(shù)據(jù),從而業(yè)務系統(tǒng)借助組件實現(xiàn)地理信息相關的處理功能。
(2)GIS組件
這種方式完全是建立在OCX (OLE Custom Controls,OLE自定義控件)技術(shù)基礎上的功能模塊組件,平臺產(chǎn)商通過提供組件的方式給予技術(shù)支持。組件技術(shù)得到了大部分產(chǎn)商的偏愛,如ESRI的ArcObjects, Skyline公司的瀏覽器組件;贑OM的GIS組件如ESRI的MapObjects,Maplnfo公司的MapX等。在國內(nèi),幾家平臺產(chǎn)商也逐步推出基于組件技術(shù)的模塊[11]。
基于以上描述,集成式二次開發(fā)方式的優(yōu)點如下:高效、便捷腳本開發(fā)語言簡化了開發(fā)人員開發(fā)專業(yè)GIS業(yè)務系統(tǒng)的難度,提升了開發(fā)效率,而且借助組件還能開發(fā)更好的界面外觀、集成更多的第三方功能、擴展性強、便于移植、維護成本低,集成式組件式技術(shù)囊括了以上優(yōu)點。
...................................
2.2基于Skyline的三維GIS開發(fā)方法
2.2.1 Sky line軟件簡介
Skyline[16]產(chǎn)品線包括下列部件,如圖2.1所示:3D平臺構(gòu)造器TerraBuilder (TB), 3D 平臺二次開發(fā)工具包 TerraExpoler (TEPro〉,3D 平臺二次開發(fā)擴展包(必須與Runtime Pro結(jié)臺)TerraDeveloper (TD),3D平臺服務器軟件 TerraGate (TG), 3D 瀏覽器 TerraExpoler (TE)。
SkylineGlobe可以支持桌面端、移動終端、多屏投影等顯示終端,可以為每個用戶提供量身定做的軟件和服務。用戶只需要提供一定的身份驗證,就可以通過自己的終端訪問到相應的數(shù)據(jù)。還可以支持多個節(jié)點、多個CPU的并行計算,并支持在不同服務發(fā)布站點的集群式服務,是真正意義上的云計算及云服務解決方案。
TerraExplorer Pro專業(yè)版,在TB家族創(chuàng)建的三維地形的基礎上,通過添加創(chuàng)建編輯二三維對象(文本、圖片、三維模型、動態(tài)物體)以及業(yè)務矢量圖層、業(yè)務屬性數(shù)據(jù)等,構(gòu)建用戶自己的三維虛擬數(shù)字地球場景,并發(fā)布到局域網(wǎng)或互聯(lián)網(wǎng)上。同時提供一組豐富的API,可以實現(xiàn)二次用戶化定制。
Skyline平臺的每一個部件都給3D GIS的功能幵發(fā)提供快速、快捷的服務。TerraBuilder主要用于構(gòu)建三維可視化的地形地貌,高精度的計算地形起伏,將采集得到的影像數(shù)據(jù)準確的貼到指定坐標。方便導入3D Max軟件構(gòu)建的三維模型,用于構(gòu)建三維虛擬場景,為后續(xù)的模型編輯、使用奠定基礎。通過疊加DEM、DOM數(shù)據(jù)以及各種專題數(shù)據(jù)、矢量數(shù)據(jù),迅速搭建擁有三維地形、環(huán)境、兼具模型等信息的仿真數(shù)據(jù)庫。
TerraGate提供類似于數(shù)據(jù)發(fā)送機的功能,實現(xiàn)海量數(shù)據(jù)的實時傳送,不僅能夠快速地傳輸?shù)匦蔚孛矓?shù)據(jù),還能夠傳輸海量的三維模型數(shù)據(jù),這些海量數(shù)據(jù)在傳送前,都經(jīng)過壓縮、優(yōu)化,便于海量數(shù)據(jù)的網(wǎng)絡傳輸。TerraGate的網(wǎng)絡數(shù)據(jù)流與Skyline的系統(tǒng)本地數(shù)據(jù)是同步的。TerraGate己經(jīng)實現(xiàn)網(wǎng)絡多點服務器的數(shù)據(jù)傳輸負載均衡,網(wǎng)絡中的多個服務端自動分攤數(shù)據(jù)傳輸壓力。在多核的系統(tǒng)環(huán)境中,TerraGate也能自動檢測、分配,降低每個CPU的運算負載。
TerraExplorer Pro提供了類似虛擬場景編輯器的功能,將客戶的海量影響數(shù)據(jù)、高程數(shù)字數(shù)據(jù),三維模型數(shù)據(jù)、矢量數(shù)據(jù)以及專題數(shù)據(jù)等各種GIS信息,匯總到Skyline平臺中,而且該組件還支持可用隨意編輯場景中數(shù)據(jù)的屬性,配置用戶POI標注,創(chuàng)建簡單、易懂的交互式界面,讓客戶能夠?qū)崿F(xiàn)個性化的三維業(yè)務系統(tǒng)。
TerraDeveloper部件是Skyline平臺將自身常用的共性功能獨立出來為其他業(yè)務系統(tǒng)提供的Active X組件,該組件方便客戶實現(xiàn)個性化的業(yè)務系統(tǒng)。
從上述內(nèi)容可以看出Skyline平臺囊括了數(shù)據(jù)處理、發(fā)布、編輯等方方面面,這些部件足以讓用戶自行搭建出一個個性化的三維虛擬仿真場景。場景中包含了通過網(wǎng)絡獲取的三維地形地貌、三維模型以及二維數(shù)據(jù)圖層等模型。除此之外,用戶還可以通過平臺開發(fā)組件3D GIS服務,不僅能夠集成TerraExplorer Pro提供的全部功能,還能夠定制個性化的三維可視化模塊。業(yè)務系統(tǒng)的客戶端是可執(zhí)行的應用程序,也可以是HTML網(wǎng)頁形式。
...............................
第三章系統(tǒng)設計與實現(xiàn)............................... 13
3.1測繪業(yè)務需求............................... 13
3.2系統(tǒng)總體設計............................... 13
3.2.1系統(tǒng)總體架構(gòu)設計............................... 13
3.2.2系統(tǒng)功能模塊設計............................... 14
3.3系統(tǒng)開發(fā)環(huán)境............................... 15
3.3.1 二次開發(fā)工具............................... 15
3.3.2 JavaScript 語言............................... 15
3.3.3軟硬件配置方案............................... 15
3.4數(shù)據(jù)管理............................... 16
3.4.1數(shù)據(jù)獲取............................... 16
3.4.2三維模型的優(yōu)化處理............................... 21
3.4.3 fly文件配置............................... 22
3.4.4 Presentation 配置說明............................... 23
3.5系統(tǒng)功能實現(xiàn)............................... 27
3.5.1地圖瀏覽............................... 27
3.5.2 查詢............................... 30
3.5.3空間量算............................... 32
3.5.4空間分析............................... 35
3.5.5飛行展示............................... 41
3.5.6創(chuàng)建業(yè)務對象............................... 41
3.5.7行駛線路構(gòu)建............................... 46
3.5.8 二三維聯(lián)動............................... 47
3.6本章小結(jié)............................... 47
第四章業(yè)務功能庫
4.1背景介紹
在實際工作中,每開發(fā)一個新的三維GIS項目,都會或多或少的涉及到系統(tǒng)中所提到的這些功能。由于開發(fā)項目的過程中,無法保證類型的功能始終都由同一個人進行開發(fā),不自覺地會造成不同的人員都需要花費一定的時間去熟悉Skyline的體系、二次開發(fā)接口,這也在一定程度上影響了項目進度,浪費了人力、時間成本。如果能擁有緊密結(jié)合測繪業(yè)務、數(shù)據(jù)規(guī)范的業(yè)務功能庫,在重復開發(fā)業(yè)務系統(tǒng)的過程中,只要是了解測繪業(yè)務或是經(jīng)由他人介紹,就可以很快上手業(yè)務,避免了重新熟悉Skyline的API接口的過程,只需要關注業(yè)務功能的開發(fā)。
因此,在開發(fā)基于Skyline的項目過程中,組織了一套基本的Skyline的3D Web的系統(tǒng)框架,基于框架之上,將常用的業(yè)務功能,再次封裝。結(jié)合Skyline體系、測繪行業(yè)應用,形成一套常用業(yè)務功能庫[37]。功能庫可以幫助以后的開發(fā)人員盡快上手,并且在完成項目的基礎上,進而繼續(xù)完善功能庫,避免重復開發(fā),大大降低新項目的開發(fā)周期[38]。
由圖4.1可以了解到,基于業(yè)務功能庫的系統(tǒng)開發(fā),絕大部分功能復用業(yè)務功能庫中己有的功能模塊,不過還是有部分未想到或是未實現(xiàn)的業(yè)務功能需要直接基于Skyline 二次開發(fā)接口,考慮到業(yè)務功能的不完整性,在業(yè)務系統(tǒng)開發(fā)過程中,開發(fā)人員要是發(fā)現(xiàn)了常用了業(yè)務功能模塊,也可將其添加到業(yè)務功能庫中,減少其它業(yè)務系統(tǒng)的功能重復開發(fā)。通過此方式可逐步提升業(yè)務功能庫的重要性,降低對Skyline 二次開發(fā)接口的依賴程度。加上系統(tǒng)模塊的代碼都是以.js的獨立文件形式存在的,一個.js文件就代表一個功能模塊,復制、拷貝、遷移功能都非常方便。
4. 2功能模塊
如圖4.2所示,代碼模塊主要分為:Core(核心)、Extend(擴展),所謂core(核心模塊),就是在項目應用中基本不會變化的功能模塊。Extend(擴展模塊),每個項目根據(jù)項目需求,額外再添加的功能模塊。如果在Extend模塊應用過程中又發(fā)現(xiàn)了固定的模塊代碼,可移植到Core中。
地圖初始化(3dmap):在網(wǎng)頁中包含、調(diào)用此模塊的代碼,初始化Skyline的濱染視口,通過OCX的objectid值初始化Skyline組件中的三維植染窗口、三維功能組件。由于Skyline存在著多個版本,每個版本對應的瀏覽器版本也不同,針對瀏覽器的版本,開發(fā)不同的3draap初始化模塊,但是這些對于業(yè)務功能庫的使用者而言是透明的,開發(fā)人員只需要添加3dmap模塊的引用即可。
事件分發(fā)(event):事件分發(fā)包含了 Core、Extend兩個模塊。Core模塊不特別處理某些事件,主負責接收項目開發(fā)過程中涉及到的事件,通過事件分發(fā),讓Extend的“事件處理”模塊具體處理,避免了 Core模塊與特定業(yè)務緊密相關的事件,綁定在核心事件中,影響了業(yè)務功能庫的通用性。Extend是每個業(yè)務系統(tǒng)自身的業(yè)務邏輯,無論有什么樣的邏輯都不會影響到Core。
.................................
第五章結(jié)論與展望
5.1結(jié)論
論文首先闡述項目的背景、意義、測繪業(yè)務需求,源于需求萌發(fā)了構(gòu)建“基于Skyline的三維GIS在測繪行業(yè)的應用研究”的構(gòu)想。以“浙江省某地測繪三維可視化”為依托,描述了系統(tǒng)的設計與開發(fā)方法。具體完成內(nèi)容為:
(1)分析、總結(jié)測繪行業(yè)常用的業(yè)務功能并將此功能與三維技術(shù)相結(jié)合,使用Skyline平臺整合各類數(shù)據(jù),構(gòu)成虛擬場景。(2)采用Skyline特有的流傳輸三維地形數(shù)據(jù)、三維建筑等信息,實現(xiàn)系統(tǒng)瀏覽實時處理,提高了數(shù)據(jù)的傳輸效率,減輕了系統(tǒng)的負荷。
(3)三維GIS空間可視化擴展了測繪行業(yè)的二維GIS,但是單純的三維軟件空間分析功能薄弱。此系統(tǒng)直觀、形象的表達空間對象的同時兼具空間分析功能;
(4)系統(tǒng)不僅實現(xiàn)了三維GIS的基礎功能,還結(jié)合測繪行業(yè)應用,總結(jié)出了一套業(yè)務功能代碼庫。提高類似業(yè)務功能開發(fā)效率。
5.2展望
在以后工作、學習中,需要深入研究以下內(nèi)容:
(1)系統(tǒng)接入的數(shù)據(jù)源有限,現(xiàn)有的地理相關的數(shù)據(jù)源有KML、GML等格式數(shù)據(jù),還有二維數(shù)據(jù)都尚未接入,需要進一步完善。
(2)現(xiàn)有的研究僅僅為業(yè)務展示提供效果、入口,系統(tǒng)內(nèi)容不夠豐富,涉及業(yè)務頁面很少,希望能夠完善業(yè)務內(nèi)容。
(3)基于現(xiàn)有Skyline 6.1的開發(fā)版本,三維動態(tài)、交互的場景、動畫非常少,絕大部分內(nèi)容都是預先生成,到需要的時候播放、展示。還需要在此處結(jié)合測繪業(yè)務深入研宄。
................................
參考文獻(略)
本文編號:11837
本文鏈接:http://sikaile.net/caijicangku/wuyoulunwen/11837.html