趙 駝,羅傳文
(東北林業大學林學院,哈爾濱 150040)
隨著傳統GIS向三維立體、互聯網絡方向的發展,網絡環境下空間數據的三維可視化問題也越來越受到關注。而Skyline的系列軟件一直在基于網絡的三維可視化軟件中居于領先地位,是較為優秀的三維GIS軟件平臺,該公司提供的應用軟件工具包和服務發布平臺,采用了先進的流技術和分級式的呈現技術,將復雜的地理空間信息以豐富逼真的三維景觀表現出來,大大提高了瀏覽時的體驗效果。本文有關實驗是以上海某實驗區為例進行開展的。
Skyline系列軟件由 TerraBuilder,TerraGate,TerraExplorer,Streaming Feature Server等主要產品組成[1]。
TerraBuilder可以將航空或衛星影像數據、DEM數據還有矢量數據進行裁切融合,創建具有精確地理坐標的三維地形數據集,即MPT文件。MPT文件可以采用金字塔的構建技術,即當視距由遠及近時,首先呈現的是較低分辨率的影像底圖,隨著視距拉近,會加載較高直至最高的影像底圖,大大提高瀏覽的效果。
TerraGate采用強大的網絡數據服務器技術將龐大三維地形數據集 MPT進行網絡發布,實現實時傳輸,由于采用流的技術,使得客戶端即使在加載海量MPT數據時,也如加載本地數據一樣流暢。
Streaming Feature Server是一款能夠通過網絡以流方式傳輸特征層 (WFS)或地圖影像數據(WMS)到客戶端應用程序的服務器端發布軟件。通過SFS manager可以對WMS和WFS進行管理和配置,以提高客戶端瀏覽的響應速度和性能。
TerraExplorer又可分為 TerraDeveloper、Terra-Explorer View及TerraExplorer Pro。其中TerraDevel-oper是TerraExplorer Pro的二次開發包,包含許多API接口,用戶可利用它根據需求定制自己的應用程序。TerraExplorer Pro可以創建和編輯具有MPT、建筑模型、注記、標簽等內容的三維工程文件,同時根據需要可以實現強大的三維分析功能,提供決策支持。TerraExplorer View可以方便加載TerraExplorer Pro制作的FLY文件,免費瀏覽三維場景。Skyline提供C/S、B/S的靈活開發方式,本文主要探討B/S的開發模式。
首先在TerraBuilder中創建一個空的TBP工程文件,加載含有實驗區域的幾張不同分辨率影像數據,對它們進行重投影,賦予統一的地理坐標,然后根據實驗區域進行裁切,將裁切結果和相應的DEM通過 Standard工具欄中的 Create Resolution pyramid工具進行融合,構建成具有金字塔結構,然后經過去除背景值,檢查鄰接邊,調色等操作,最終輸出成可以用于部署的MPT文件。當用Terra-Explorer Pro加載瀏覽,可以發現當距地面的視距不同時,呈現的MPT的分辨率也會不同,遠距離瀏覽時分辨率較低,近距離瀏覽時顯現較高分辨率,這樣很大程度上提高了MPT加載速度和瀏覽的效果。
2.2.1 建筑模型制作
通過對目標建筑的紋理進行拍攝,并將拍攝得到的圖片進行加工處理,制成貼圖。然后在Terra-Explorer Pro中,導入模型的二維邊界數據,根據其高度,調整并拉伸成符合建筑輪廓的立體盒子,結合貼圖可以制作成一些如房屋等簡單的模型。同時一些復雜的模型可以由常見的建模軟件諸如:3DMAX,Multigen Creator等建立,并且要求輸出成Skyline能夠接受的,微軟通用模型格式*.x文件。本實驗首先外業對實驗區域的建筑進行拍攝和測量,然后內業利用3DMAX建模輸出成.x文件。通過TerraExplorer Pro中的內置工具MakeXpl將得到的.x文件與貼圖文件進行批量的打包壓縮處理,生成采用全新LOD技術的.XPL和.XPL2格式的模型文件。最后將這種模型加載到TerraExplorer Pro中,放置在對應位置的MPT上,由遠及近進行瀏覽觀察,發現采用LOD技術的這些模型可見度可以根據視距的接近程度自動選擇最佳尺寸紋理的模型,即當遠距離瀏覽時會加載數據量較小、貼圖較模糊的模型,但當視距接近目標,較清晰的模型就會加載同時代替之前的較不清晰的模型。這樣一方面符合人由遠及近觀察事物時規律,同時這個相當于預加載的過程更顯平滑,不會給人視覺上的突兀感,而且從某種程度上也緩和了網絡瞬間的傳輸壓力。
2.2.2 建筑點矢量文件
在制作建筑模型過程中,實驗中利用3DMAX將模型的坐標點導出生成txt文件。在ArcMap中,利用Add XY Data工具,將格式良好的坐標txt文件轉成Skyline可以方便加載的Shp文件,使得每一個坐標點與模型名字段一一對應,出于方便,這里還添加一個含有路徑信息的字段,這樣僅僅根據路徑和模型名可以準確的找到相應的模型文件,加載到對應的坐標點上,在三維場景中顯示。
三維工程文件,即*.fly文件,它可以在TerraExplorer Pro中創建,記錄著所引用的三維地形數據、三維模型、二維矢量的位置和配置信息,在TerraExplorer中打開可以呈現出三維虛擬場景。同時根據需求,也可以添加一些定位標簽、路徑以及三維漫游等,方便更好的全方位展示[2]。這里的*.fly制作好后,和應用程序放在一起發布。
B/S架構,即Browser/Server(瀏覽器/服務器)結構,是WEB興起后的一種網絡結構模式,WEB瀏覽器成為客戶端最主要的應用軟件。在這種結構下,用戶界面依靠瀏覽器解讀包含有腳本語言和CSS的HTML來實現,部分事務邏輯也在前端實現,但系統功能的核心部分集中在服務器上,從而簡化了系統的開發、維護和使用。實驗中客戶端的瀏覽工作完全是由IE瀏覽器實現的,大大減輕了客戶端硬盤的壓力,方便了數據的維護和更新。
本實驗Web系統的開發采用的是面向對象的編程方法,使用基于COM組件的開發技術。采用的編程環境為Microsoft Visual Studio 2010,將腳本語言JavaScript和 CSS包含于HTML中,TerraExplorer則提供的3D窗口和信息樹以控件對象的方式嵌入到頁面當中,實現前臺的界面和應用,利用ASP.NET可以實現與后臺數據庫的交互與存儲,由此共同構建整個系統的框架。SkyLine的二次開發組件為開發者提供了許多的API接口,這便于開發人員很方便的使用其接口實現所需功能,而不必知道接口底層所封裝的實現過程。在這里利用這些接口既實現三維場景的構建和瀏覽,同時還加入了一些強大分析功能。
具體操作和部署如下:
在服務器端:模擬一臺TerraGate服務器發布MPT作為三維場景的底圖,發布過程中注意修改服務端口;模擬一臺模型服務器通過IIS發布三維模型數據,這里可以根據發布模型數據量的大小,考慮是否使用服務器集群,以確保客戶機大量并發訪問時服務器依然可以穩定運作;模擬一臺專門發布矢量的服務器,這里可以利用ArcGIS Server發布WFS形式的矢量,當然也可以利用TerraGate中SFS組件進行發布,本實驗使用SFS進行發布,同時實驗中的矢量數據為了方便管理和存儲,矢量數據都統一入庫;最后是模擬一臺應用服務器,同樣是利用IIS將三維系統網站進行發布。整個系統的架構如圖1所示。

圖1 系統構架圖Fig.1 The diagram of system frame
客戶端則只需要安裝一款免費的TerraExplorer View再加上系統自帶的IE瀏覽器就可以輕松瀏覽包含龐大數據量的三維虛擬場景,瀏覽過程中需要加載大量模型數據,所以對機器的顯卡和內存要求較高。其具體原理為:客戶端打開IE輸入URL瀏覽Web應用的同時向應用服務器發出三維地理服務的請求,應用服務器會根據收到的請求,向客戶端發送相應的Fly文件。用戶在客戶端利用Terra-Explorer View解析Fly中的信息,依據這些信息找到需要的TerraGate服務器,模型服務器和矢量服務器,下載所需的MPT,三維模型和矢量并在瀏覽器中實時加載呈現。
實驗中Fly文件采用流的設置,只有視窗內區域的模型才會被加載,當視窗移動到別處時,新的視窗下的模型逐漸呈現,而之前的模型則會被卸載,不會額外占用內存,卸載并不代表完全消失,而是轉而停留IE緩存中,方便以后的更便捷的調用。與此同時,模型的加載呈現并不會有任何突兀感,LOD技術的利用,使模型會根據視距的遠近自動的調節清晰度。而以SFS發布的矢量,由于采用了緩存機制,減少了矢量服務器與數據庫數據交互的時間,同樣也提高了響應速度。種種機制,都使得海量數據的瀏覽既流暢又便捷。實驗場景效果如圖2所示。
另外,Skyline還引入了Internet Iicense這個機制,就是將一個Internet Iicense與一個或多個IP、域名綁定,這些綁定信息都以許可的形式,添加到TerraGate中。如果客戶端以TerraExplorer View為基礎通過瀏覽器訪問應用服務器,而應用服務器又恰恰使用了Internet Iicense中的IP或域名,這樣就會使得客戶端獲得一些TerraExplorer Pro才擁有的功能權限,當然這前提是無論是TerraGate服務器還是應用服務器都必須在同一套系統當中。通過Internet Iicense的實現,使得更多的用戶僅僅需要一個免費的TerraExplorer View,通過瀏覽器就可以既能暢游三維場景,還能享受到許多強大的三維地理分析功能。實驗中利用Internet Iicense使客戶端僅用IE瀏覽器就能獲得TerraExplorer Pro才具有的視域分析和最短路徑分析功能:
視域分析,點選相應按鈕啟用該功能,在3D窗口中點取一點并選取一個角度范圍,雙擊,則生成分析結果如圖3所示。

圖2 三維場景效果圖Fig.2 The rendering of three dimensional scene

圖3 視域分析效果圖Fig.3 The rendering of horizon analysis
最短路徑分析,利用此功能首先在三維場景中選取一起點一終點,雙擊即可計算生成一條起點到終點的最短路徑。
傳統三維場景數據的加載方式都是在客戶發出服務請求之后,根據請求內容,將所有可能要瀏覽到的數據統一地一次性地加載進來,由于三維數據一般數據量都較為龐大,使得場景加載時間過長,甚至出現未響應的情況,同時客戶不一定會對請求的數據一一的全部瀏覽,從某種程度上,會導致數據資源的浪費。而Skyline利用流這一技術有效地解決了這一難題。
利用流技術,客戶發出數據請求后,被請求的數據會被劃分為若干個數據塊,當瀏覽到某一感興趣的區域時,和這一區域相關的數據塊就會被加載進來,以三維模型和MPT的形式呈現。正是利用這一機制實現所見區域的實時加載,而且原先呈現過的模型會移動到IE緩存中,即不會占用額外內存,還可以方便下一次的加載。利用這種即用即取的特點解決了傳統加載方式在加載龐大三維數據時需要較長的等候時間的難題,同時還節省了不必要的網絡資源,提高了顯示的效果和系統的運行速率[3-4]。
SFS引入地圖服務緩存機制,通過建立靜態和動態緩存的方式,顯著改進訪問地圖服務的速度。靜態緩存機制,基于地圖服務分塊生成地理“切片”,從而顯著提高地圖服務的執行效率,這種機制允許用戶終端直接從緩存數據中快速讀取矢量數據和柵格數據,而不是和以往傳統模式一樣,向服務器發出請求,然后再動態生成所需求的數據。
對于靜態緩存,SFS提供的專用工具SFS CacheCreator,通過它能將shape文件、ArcSDE、Oracle Spatial、SQL Server2008、PostGIS等空間數據要素進行處理,生成靜態緩存。這種方式適用于數據不經常發生變更的情況,比如基礎地理信息要素——行政區劃、河流、地名等。
對于動態緩存,通過SFS管理器能夠將ArcSDE、Oracle Spatial、SQL Server2008、PostGIS 存儲的空間數據要素動態更新,當原始矢量數據更新之后,緩存也隨之更新。這種方式適用于業務系統數據每天都在發生變更的情況。
LOD(Level Of Detail),即層次細節技術,是解決硬件性能不夠發達的技術產物,可以說它是一種過渡技術,也就是說當硬件發展的一定階段,LOD技術也許就會走向末端。但現階段,LOD技術還是解決渲染速度瓶頸問題的最有效的技術手段之一。在Skyline中,采用高分辨率紋理的3D模型(也就是X和OpenFlight文件)會使場景運行的表現受到影響。新的XPL格式能夠將X模型自動生成紋理分辨率逐漸減小的一組模型。在場景中使用這組紋理逐級顯示的模型時,系統能夠根據模型的可見度和與觀察者的接近程度自動選擇最佳尺寸紋理的模型。
LOD值在批量導入模型的時候默認設置為1 000,這個值是控制模型金字塔貼圖分級漸變的參數,一般來說,這個值越大,模型顯示最高級別精度貼圖模型的可視距離就越小,系統運行效率越高,反之亦反。這個參數的經驗值為2 500左右,一般最大值不超過5 000。
相比二維GIS,三維GIS為空間信息的展示提供了更豐富、逼真的平臺,使人們將抽象難懂的空間信息可視化和直觀化,易于人們更準確的做出判斷。同時隨著網絡技術突飛猛進發展,使資源共享變得很簡單,交流的雙方可以跨越時空的障礙,隨時隨地傳遞信息。兩者的結合,使得三維網絡GIS具有巨大的優勢,并日益受到廣大專家學者的關注。Skyline以嶄新的角度為三維網絡地理信息系統提供了可靠地解決方案,滿足了國防軍事、政府部門、企業用戶等用戶可視化地理信息的需求。
Skyline構建三維網絡地理信息系統中有著獨特的優勢,利用其先進的技術,成功的解決了海量三維數據發布效率低,網絡傳輸壓力大,模型加載慢等難題,為地理信息系統的發展做出貢獻。與此同時,在實驗中也發現了一些問題,例如瀏覽三維場景讀取模型過程中存在部分模型未能加載的現象,希望這一問題在后續的版本中得到解決。
【參 考 文 獻】
[1]潘 發,李啟發.基于Skyline的三維城市系統探討[J].青海科技,2011(6):47-49.
[2]梁吉欣,左小清.Skyline在Web三維GIS中的應用研究[J].昆明理工大學學報(理工版),2009,34(2):1 -4.
[3]劉向東,李 璐,于文躍.應用PCI處理遙感影像初步探討[J].森林工程,2007,23(6):13 -14.
[4]李 佼,吳健平.基于Skyline的三維空間數據網絡發布[J].測繪科學,2010,35(2):183 -185.