雷浩川
(青海大學地質工程系,青海西寧810016)
隨著傳統GIS向三維立體、互聯網絡方向的發展,網絡環境下空間數據的三維可視化問題也越來越受到關注。虛擬城市、數字社區、三維警務系統、數字三維旅游系統等一個個優秀三維DGIS系統開發成功,相繼出現了以 Skyline、Google Earth、Virtual Earth3D、ESRI的 ArcScene、GeoVRML 及 E 都市平臺為代表的三維城市地圖網站。相對于二維數據,三維空間數據包括大量的地形、影像、三維城市模型及其紋理數據等,其網絡發布成為目前該領域的研究熱點之一,對整合了海量數據的矢量、影像、DEM、建筑模型如何快速顯示、查詢、處理也是人們關注的焦點之一。
最新版ArcGIS10軟件中的ArcScene提供了一般的三維數據瀏覽功能,但由于 ArcScene會將所有數據讀入場景中完全顯示,因此會占用大量顯存、物理內存和虛擬內存、故影響了其顯示速度[1]。在一個區域建筑模型全部加載的情況下,其瀏覽速度變得異常緩慢,帶有紋理的模型更是如此。因此,其三維顯示與發布的功能有待進一步完善。
Virtual Earth 3D是微軟公司基于MicrosoftLive搜索引擎的一項個性化地圖服務,它給出了二維、三維兩種操作方式,并按加載的地圖可分為3種,即常規地圖、衛星航拍地圖,以及前兩者的混合模式。用戶通過瀏覽器進入WindowsLiveMaps之后,切換到三維視窗就能夠載入目前美國本土的十幾個大中城市三維建筑物。此類3D資源及正式多語言的版本仍在進一步補充完善當中。
Google Earth[2]是一個使用最為廣泛的網絡三維客戶瀏覽工具,它提供世界各地不同等級的衛星或地圖影像數據,并采用流Streaming技術通過Internet傳送,這對于粗略查詢地名、地形信息等一般的用戶而言不失為一個理想的資源平臺,它還支持用戶上傳自定義的地標、房屋模型、影像等數據。同時,它也提供Web界面的API以供網頁設計者做進一步做應用開發,但由于其大范圍的空間數據資源都是由Google公司提供,數據庫完全受到美國公司的控制,用戶根據實際應用需求添加的空間數據、模型數據要網絡發布需借助 Google公司的服務器進行,并且模型的發布還有一定的時間限制,因此在行業應用中不能提供有效的服務。
Skyline的軟件系統一直在基于網絡的三維可視化軟件中居于領先地位,是較為優秀的三維GIS軟件平臺。該公司提供的應用軟件工具包和服務的集成平臺可將復雜的地理空間信息以簡單的三維圖像的形式表現出來。本文旨在研究利用Skyline軟件來構建三維場景,加入三維建筑模型,進行三維WEBGIS應用開發,并就其不同的空間數據發布方式,做以比較分析。
Skyline軟 件 系 列 由 TerraBuild、TerraGate、Streaming Feature Server、TerraExplorer 等主要產品組成。
TerraBuild使用航空或衛星影像,DEM和矢量數據創建三維地形數據集,具有建立影像金字塔、集成不同的GIS數據、繪制矢量圖形等功能,主要用于生成用于流技術讀取的MPT文件。
TerraGate是將三維地形數據集MPT進行網絡發布實現實時流暢傳輸的服務器端軟件,它采用強大的網絡數據服務器技術,處理Skyline客戶端數據的傳輸請求。
Streaming Feature Server是Skyline基于網絡的矢量數據管理服務器,通過網絡以流的方式實現高效地從Oracle、SQL Server數據庫及空間數據庫中讀取矢量數據。
TerraExplorer又可分為 TerraDeveloper、TerraExplorer Pro TerraExplorer。其中,TerraDeveloper是TerraExplorer Pro的二次開發包,用戶可利用它定制自己的應用程序;TerraExplorerPro具有編輯、注記及空間三維分析等功能,并可創建自己的三維可視化環境,將MPT文件、建筑模型、注記等整合制作成FLY文件,供網絡發布使用;TerraExplorer是免費的瀏覽TerraExplorer Pro所開發的專用功能并執行TerraExplorer所提供的基本功能,且能加載WMS的二維圖層。Skyline提供C/S、B/S的靈活開發方式,本文主要探討B/S的開發模式。圖1為典型的以數據為核心的Skyline軟件運行體系[3]。
將地形數據制作成流媒體文件是在TerraBuild中進行的,具體過程如圖2所示。
1)新建工程:在選擇坐標系后,還需要進行工程參數設置,主要包括數據壓縮比和數據存儲目錄的設定,其在生成MPT之前可隨時進行更改。
2)添加數據:可以添加的數據有以下3種類型:影像、高程、矢量,然后選擇文件來源(FILE SYSTEM、ORACLE SPATIAL DATABASE、WEB MAP SERVER、ECW IMAGEWEB SERVER),并設置添加數據的坐標信息。當導入的數據不包含軟件所能識別的金字塔數據時,數據不能在工作窗口顯示,此時應在數據列表上面選擇creat resolution pyramid工具即可以創建MPU格式的金字塔數據。一個編輯好的Tbp工程可以通過TerraBuilder生成三維地表數據集(*.mpt)供客戶端調用;也可以通過與TerraGate及其擴展模塊 DirectConnect組件協同發布,不需要生成MPT文件,直接將 Tbp工程進行發布,從而實現實時更新和發布三維地表數據。
(1)三維模型的創建
三維建筑模型的建立可以采用常見的建模軟件如 3ds Max、MAYA、Sketchup、MultigenCreator等中的一種,但建立的模型需要輸出成Skyline可以接受的格式,如微軟的模型格式*.X、打包生成的Skyline特有格式XPC、打包生成的具有紋理金字塔的XPL格式、Sketchup輸出的DAE格式等。這里采用Sketchup建模,然后輸出為XPL格式。如一個名為01.x的模型,經過默認打包,生成01.xpc,如果選擇了“Generate objects level of detail”,則會生成最高4級的一組 xpl,文件如下:01.xpl,01_LOD_1.xpl,01_LOD_2.xpl,01_LOD_3.xpl,01_LOD_4.xpl。這 5 個文件是一個模型,不能分離。其中,由于*.xpl速度更快,網絡發布的話較*.xpc更有優勢[4]。要加快網絡的瀏覽速度,模型的制作與精簡非常重要。為了對模型能夠優化,并高效調用,需要根據地物的重要程度確立模型的等級,可以進行精細和粗略兩種方式建模。需要網絡發布的海量模型數據量:單個一組模型文件(XPL格式,包含貼圖)數據量大小區間值為:60 kB~2 MB。根據場景中三維模型類型的不同主要分為3類建模:① 地面建模;② 建筑建模;③樹木、花草及輔助設施建模。
(2)模型點SHP文件的創建
在ArcMap中導入含有坐標信息的文本文件,輸出成SHP文件,并添加路徑字段。在確定模型路徑之后,在ArcMap里對SHP進行編輯,添加名稱字段。表1所示為圖書館、八角亭的模型,其中,圖書館模型分成了4級


表1 存儲了坐標和模型索引文件的SHP文件
(3)三維工程文件的創建
三維工程文件(FLY)在TerraExp lorer Pro中創建,并通過TerraExp lorer Pro將三維地形數據、三維模型、二維信息等整合起來形成三維虛擬的場景。同時,也可以根據需求,添加一些定位標簽(location)及創建路徑(route)對三維虛擬場景進行全面的展示。通過網絡訪問的三維工程FLY文件需要設置網絡地址參數,格式為Sample@IP地址:端口號,然后通過TerraGate發布的三維地形MPT數據,通過SFS發布的SHP格式的三維模型數據、二維信息等。圖3為調用已創建好的FLY文件題。

圖3 在TerraExpro中瀏覽創建好的FLY文件
(4)網頁文件的設計
Skyline工程文件的網頁發布通常有兩種形式:基于TE3DWindow控件的胖客戶端網頁和不帶TE3DWindow控件的瘦客戶端網頁。TerraExplorer Pro提供一系列COM接口,這些接口都能通過腳本語言(如Javascript、VBScript)等調用。開發人員在使用TerraExp lorer的TE3DWindow控件設計網頁來進行三維顯示的同時,還可通過接口調用,在實現基本功能的基礎上加入高級分析功能,以適應各個不同行業的需求。在進行網頁設計時,可根據需求選擇不同的網頁設計工具,如記事本、Dreamweaver、Asp.Net等進行界面的美化和功能定制。三維工程文件(FLY)通過IIS發布,用戶在安裝TerraExplorer瀏覽器后,即可在所提供的網頁中對工程進行訪問,實現網絡三維瀏覽。
利用TerraGate實現地形影像數據發布,用戶可以通過Internet進行地形影像數據的傳輸和訪問。TerraGate的空間數據是以流方式實時地傳輸給客戶端,其流暢效果就像讀取本地機上的文件一樣。
TerraGate服務器的流技術明顯不同于一般的視頻流,該服務器運行在基于網絡無縫可變帶寬的基礎之上,使得用戶通過網絡讀取源影像和地表數據集(MPT文件)時不會受到帶寬、或者連通中斷的影響。能夠在接收到低分辨率的影像時立刻進行三維顯示,而不用等到所有數據集都傳輸完畢時才顯示,從而實現了多用戶在同時訪問海量的三維數據時流暢的瀏覽效果。
模型流技術即是將模型數據SHP化,就是把模型作為SHP點數據文件的符號,然后再利用Terra-ExplorerPro將其以流(streaming)方式加載,實現模型按瀏覽動態加載,實現“所見即所得”模型流顯示。這種技術從理論上對模型數據量支持是無限制的,從而解決了由于模型數量的增加瀏覽速度變慢的問題。
一般以在網絡上發布矢量數據,可以有兩種方式:WFS和SFS。WFS是一種能從地理數據集中提取地理特征(點、線、面)的服務,已經是較為成熟的方式;SFS的全稱是streaming feature server,即流特征服務,其作為Skyline的一個組件,可從空間數據庫中讀取數據并通過網絡以流的方式進行傳輸,因此可以將 SFS理解為 Skyline自己構建的 WFS。Skyline以SFS方式發布矢量數據并在三維場景中分塊調用(即流模式),窗口瀏覽什么范圍,就傳輸那個范位的數據,無需加載整個文件數據,這就提高了海量矢量數據傳輸速度。
由此可見,流技術的廣泛使用,是Skyline軟件的最大特點之一,也是它在眾多三維可視化軟件中能夠脫穎而出的關鍵。
本文選取青海大學約8 km2的范圍作為試驗區,驗證Skyline軟件的網絡發布數據的性能,所用到的數據有:
1)全校范圍的北京54坐標系的1∶500數字地形圖,由學生測量得到并進行了加工處理。
2)全校范圍的遙感影像數據,由Getscreen軟件從Google Earth上截取。
3)整個青海省90m DEM數據,從中科院網站免費下載得到。
4)模型文件的創建選擇了Sketchup8軟件,建成了全校大約600個建筑物的模型。
將所有數據整合由Terragate和IIS發布,分別在把模型和矢量數據以圖層方式加載和以流方式兩種方式調用比較其性能,明顯可以看到,以圖層方式加載模型和矢量數據時,其在普通的機器上瀏覽網頁異常緩慢且經常卡死,而在流方式下,瀏覽的速度都是非常迅速的。
以流方式發布的數據(矢量、影像、DEM、SHP三維模型)比直接以圖層方式加載的速度要快,因此地形數據通常以MPT方式發布,對矢量數據以SFS技術發布。對建筑物等模型的建立要考慮精細程度,采用精細與粗略兩種建模方法,對模型要加以優化以加快瀏覽速度。TerraExplorer Pro針對矢量數據(SHP格式)提供整層(Entire)加載和流模式(Streaming)兩種加載方式。整層(Entire)加載方式即傳統的加載方式。在打開工程文件(FLY)時,需要在全部模型數據加載后才顯示場景,進行操作。因此,等待加載的時間可能會很長,多運用于單機運行環境且數據量較小的情況[5]。流模式(Streaming)的加載方式即實時加載所見區域的數據。當然,Skyline還有其許多不足的方面,如空間分析功能比較弱,需要和ArcGIS結合才能發揮出其優越性能,但這些都不會動搖其作為優秀三維GIS軟件的地位。
[1]EsriWeb Help.ArcScene 3D Display Environment[EB/OL].[2012-05-01].http:∥support1esri1com/.
[2]Google Earth Help.General Information:Comparison of Google Earth Products and Support[EB/OL].[2012-05-04].http:∥www.google.com/.
[3]梁吉欣.基于Skyllne的Web三維GIS應用研究[D].昆明:昆明理工大學.2009.
[4]鐘海東,吳健.基于Skyline和視頻監控的三維WebGIS應用研究[J].微計算機信息,2011,27(5):20-22.
[5]李佼,吳健平.基于Skyline的三維空間數據網絡發布[J].測繪科學,2010,35(2):183-185.