廉光偉 ,義崇政,曲超,于克石
(1.天津市測繪院,天津 300381;2.天津市寧河縣測繪隊,天津 301500)
二維GIS系統自從上世紀90年代迅猛發展以來,經過眾多學者、軟件開發者、用戶的多方面實踐,在城建、土地、測繪、規劃、林業、電力、燃氣、公安等行業得到了比較廣泛的應用。二維GIS以其強大的空間分析功能,具有強大的應用空間和生命力。三維虛擬現實仿真軟件OSG、Vega、Skyline等的出現,加速了三維虛擬現實城市的發展。
在國內GIS系統得到實際應用的20年左右時間里,各行各業形成了大量功能完善且信息齊備的二維數據。從最初的不適應到最終適應,用戶熟練使用了GIS應用系統并與其辦公流程相結合。隨著城市的立體式發展,地上地下建(構)筑物不斷增多,仍然采用二維GIS及高程信息來管理空間復雜實體會感覺十分困難,在此情況下三維平臺應運而生。然而三維平臺側重展示,分析功能弱的特點,使管理部門不能迅速將業務管理系統完全升級為純三維系統。為了解決二維GIS不直觀及三維GIS分析功能弱的矛盾,二三維一體化系統呼之欲出。目前二三維GIS主要由AE組件和SkyLine等商業引擎搭建而成[1],二者成本都很高。由于ArcGIS占有了大部分二維GIS的市場,從降低軟件成本方面考慮,引入OSG來擴展二維GIS業務系統的三維模塊,實現二三維聯動GIS系統,是一種可靠的低成本解決方案。
二三維聯動GIS系統是在原有二維GIS平臺下,增加三維模塊,并通過二三維實體的某種共性關聯使得二維與三維窗口同步顯示[2],來解決二維系統缺乏的真實感,三維系統易造成的迷失感[3]。二三維GIS系統綜合了傳統二維GIS分析管理功能強大及3DGIS生動直觀的特點,具有純二維及三維系統不可比擬的優勢。以開源三維引擎OSG作為三維引擎,更具經濟性及自主性。利用OSG開發的三維功能組件,可以嵌入到任意其他二維GIS系統中,如ArcGIS、SuperMap、MapGis等商業平臺及SharpMap等開源GIS平臺中。
AE組件是用來構建應用程序的一整套獨立的嵌入式GIS組件庫和工具庫,封裝了ArcGIS大部分底層,支持多種開發語言,包括C++、.NET等支持COM的語言,有完善的開發文檔,功能強大。可以將GIS功能嵌入到已有的應用程序中,包括Microsoft Office產品的Word和Excel,脫離ArcGIS Desktop而運行。AE組件由5個部分功能模塊構成,詳見表1。

表1 AE組件功能表
OSG是近年來流行的三維渲染引擎之一,采用標準C++,C++標準模板庫(STL)編寫,是一個開放源碼、跨平臺的圖形開發包,作為中間件為應用軟件提供了各種高級渲染特性,IO以及空間結構組織函數。為諸如飛行器仿真,游戲,虛擬現實,科學計算可視化這樣的高性能圖形應用程序開發而設計。OSG關鍵優勢在于它的高性能、可擴展性、可移植性和快速開發,模塊設計合理,功能接近商業三維引擎,易于創建高性能、跨平臺的交互式圖形程序。開發人員可以更關心實質性內容和如何操控它們,而不再是底層的代碼,很容易適應OSG并且把它集成到自己的應用程序中。在數據組織方面則可以通過VirtualPlanetBuilder生成大規模海量空間場景數據,使用OSG的數據分頁調度機制(PagedLOD)可以調度查看海量數據,能夠使用一個場景樹來管理整個場景的相關信息,方便地對場景物體進行加載和卸載。其多視景器(Composite Viewer)則可以把多個視圖分別瀏覽不同的場景,并擁有自己的全局渲染狀態。其數據庫支持庫(osgDB)支持動態的插件機制,從而支持大量數據格式,目前的發布版本有70種單獨的插件支持3D數據和圖像格式的裝載[4]。
(1)系統架構
系統以AE組件和OSG三維擴展庫為依托,采用“空框架+插件”的設計理念,減輕模塊間的耦合度。系統各個功能模塊以插件的方式存在,通過通信契約與主框架協作。插件(plug-ins)技術是在軟件的設計和開發過程中,將整個應用程序劃分為宿主程序和插件對象兩部分,宿主程序能夠調用插件對象,插件對象能夠在宿主程序上實現自己的邏輯,而兩者的交互基于一種公共的通信契約[5]。插件式架構具有軟件復用性高、模塊化和封裝性強、可擴展性靈活、易移植性等特點。系統以定義好的通信接口作為軟件主框架和各個子功能模塊通信的橋梁。每個功能模塊作為一個插件,遵循定義好的通信契約,通過AE組件和OSG擴展庫來實現二維和三維部分的各個功能,各個插件之間耦合性小,支持熱插拔,方便應對客戶變化的需求,而不會對原有功能產生影響。充分利用插件技術的這些突出特點,二三維聯動GIS系統設計時,從基礎地理信息數據、業務管理數據、專題數據的使用需求來劃分系統功能模塊,以數據更新維護容易、業務管理功能拓展靈活、模塊耦合性弱等特點來編寫軟件框架。圖1是二三維GIS系統軟件的架構圖:

圖1 二三維GIS系統架構圖
(2)二三維聯動原理
二三維聯動是指當操作二維或三維中的一個視圖時,另一視圖同步顯示相同的區域,使得二維實體與三維場景相對應,具有二維分析能力強以及三維直觀性強的綜合優勢。二三維GIS系統聯動的基本原理之一是基于二維GIS和三維GIS所具有的統一坐標系,通過彼此之間坐標的對應關系來實現二三維的聯動[6]。通過研究兩個視圖的空間一致性,發現兩個視圖的中心點坐標及視圖比例尺一致性,可以實現兩個視圖空間位置的同步。當兩個視圖其中一個位置狀態發生改變時,通過事件機制,使另一視圖發生相同范圍的改變。基于這種原理,能夠輕松實現二維、三維界面的數據同步調度顯示,達到實體數據聯動。
當二三維視圖聯動時,引申出另外一些聯動效果,如屬性查詢一致性、選擇一致性、分析一致性。屬性查詢一致性是指在二維或者三維視圖里點擊同一實體,顯示相同的屬性信息;選擇一致性指在一個視圖里選擇高亮的實體,另一視圖也會同時高亮;分析一致性指當兩個視圖都實現的分析功能,進行分析時,保持表現形式的一致性(如圖2、圖3、圖4所示)。

圖2 二三維空間位置一致性

圖3 二三維屬性一致性

圖4 二三維扯旗分析一致性
(3)系統功能
二三維聯動GIS系統集成了二維系統和三維系統各自的優秀功能,并實現實時的坐標聯動、實體數據聯動、屬性信息聯動。系統具有管理海量三維數據和二維數據的能力,使用PagedLOD技術,能夠有效調度大區域內的場景、地形、三維城市模型(3D City Models,3DCM)等海量三維景觀數據,同時使用Oracle數據庫管理二維數據。以我們實現的二三維地下管線綜合管理系統為例,針對地下管線,利用AE及.NET實現在二維視圖中提供空間查詢、屬性查詢、管線橫斷面分析、扯旗標注、爆管分析、凈距分析、管線統計、管線資產管理、管線工程規劃流程管理、建設單位信用評價等功能;利用OSG實現在三維視圖中提供圖層管理、三維場景漫游、管線量測、凈距分析、三維屬性查詢、空間定位、漫游路徑、路由設計、挖方體積計算、三維扯旗標注、隧道設計及拆改管線統計等功能。圖5為二三維地下管線綜合管理系統的功能結構圖,圖6為二三維地下管線綜合管理系統的界面。

圖5 二三維地下管線綜合管理系統功能結構圖

圖6 二三維地下管線綜合管理系統界面
在天津市數字化測繪生產向信息化測繪服務轉變的過程中,我們基于OSG開發出的三維核心組件庫,分別在三維地籍課題、地下空間信息管理、住建部三維技術課題、城市地下管網綜合信息系統建設項目以及數字社區項目中取得了良好的經濟效益和社會效益,為管線權屬、維管部門及規劃管理部門帶去了新的管理方式。就自身而言,一批優秀的技術人才也得到了鍛煉和培養,掌握了一定數量的三維核心技術,形成了一套較為完善的三維技術應用服務體系。
以開源三維引擎來開發三維組件,嵌入到原有二維GIS系統中,以較低的成本將原系統升級為二三維一體化聯動系統,能順應新時期各行業的業務管理需求。這種解決方案不需要客戶增加過多的軟件購置和維護等技改經費,具有較強的可行性。
當然,新建GIS業務管理系統時二三維模塊也可以都采用開源引擎,實現完全的自主知識產權體系。需要注意的是三維模塊方面還有很多亟待解決的問題,如3DCM數據庫的建立與應用、3DCM數據的增量式更新、實時三維模型數據引擎研發等,在研發中需要完善這些關鍵性問題,促進二三維聯動GIS系統在城市規劃建設管理中的進一步發展應用!
[1]李娟娟,施昆,邱飛廷.基于ArcEngine與Skyline的二三維聯動GIS系統平臺設計與應用—以昆明三維城市規劃輔助決策系統為例[J].江西科學,2010;28(5):696~700
[2]邵明旭,許惠平,覃如府等.二三維聯動的虛擬校園設計與實現[J].地理信息世界,2008(2):73~75
[3]孫英君,丁寧,王倩.基于二三維聯動機制的數字校園系統研究[J].山東建筑大學學報,2009(8)
[4]王銳,錢學雷.OpenSceneGraph三維渲染引擎設計與實踐[M].北京:清華大學出版社,2009
[5]陳紅華,李滿春,李飛雪.插件式GIS應用框架的設計與實現[J].地理信息世界,2011(4)
[6]萬幼,邊馥苓.二三維聯動的GIS系統體系結構構建技術[J].地理信息世界,2008,6(2):48 ~52