張奎,王軍
(徐州市勘察測繪研究院,江蘇 徐州 221000)
由于諸多種類地下管線共處于地下空間中,地下空間在城市發展中變得十分復雜,地下管線管理信息系統相對于其他的空間信息管理系統建立起來更加困難,必須在二維GIS系統的基礎上繼續發展以滿足實際中的應用需求。好在虛擬現實基礎上的各類三維系統的完善為之提供了很好的借鑒和參考,如果能夠將錯綜復雜的地下管線情況用三維圖形信息真實地還原出來,能夠使管線的規劃和管理更加簡便,使得決策的過程變得更加科學高效[1]。
徐州市三維地下管線管理信息系統的設計,就是利用二維的地下管線基礎信息,并結合虛擬現實技術而成。精確的二維地下管線基礎數據使得形成的三維地下管線管理系統不僅能夠準確、真實地描繪出城市的地下管線情況,而且由于基于三維的系統能夠給人們呈現出和現實視覺一致的場景,因此系統能夠更直觀、更立體地展現整個管線的空間關系,為管線的查詢、統計、分析提供了更有利的空間服務方式[2]。
(1)基于開放式主流系統開發環境
系統開發基于主流開發工具Microsoft Visual Studio 2005。
Microsoft Visual Studio 2005是Windows環境下支持B/S與C/S運行環境的強大的開發工具,在Microsoft Visual Studio 2005環境下,開發者能夠充分利用Windows操作系統提供的開發資源,創建一個集數據庫、通訊、GIS、Web技術、多媒體[3]等多種技術的應用桌面環境,并在此環境下開發出一套具有可維護性、穩定性好、運行效率高、簡潔無冗余等優點的系統。
(2)以C/S為主體,結合B/S的應用體系
徐州市三維地下管線信息系統將結合不同的應用采用以C/S為主體,結合B/S的應用體系。
本系統數據庫存儲著大量地下管線和地形空間及屬性數據,而對這些數據的操作需要專業的技術人員來進行,包括數據的編輯、統計、分析以及歷史數據的存儲,以保證系統數據的安全性、運行速度和運行效率,因此為了滿足對地下管線和地形空間及屬性數據的處理和對數據服務的需求,這部分系統設計為C/S結構,并為專業技術人員提供對數據庫存儲的大量地下管線和地形空間及屬性數據交互和變更操作、空間分析和統計工具以及便捷靈活的制圖功能。
由于地下管線的權屬單位和管理單位各不相同,為了滿足各管線權屬單位、政府其他部門以及公眾對地下管線數據的信息訪問、查詢等需求,這部分系統設計為B/S結構,在此模式下,系統為各管線權屬單位、政府其他部門以及公眾等用戶設置不同的權限,以滿足他們對地下管線數據不同的瀏覽、查詢等需求。其中,通過城域網和防火墻的認證,地下管線各權屬單位可以瀏覽查詢自己管轄的地下管線及設施;通過Internet瀏覽器,政府其他部門及公眾可以訪問不同密級的地下管線信息;通過本單位的局域網,其他部門可以快速地瀏覽各種地下管線信息,以實現系統數據的信息共享。
(3)基于Oracle+ArcSDE數據庫環境
數據庫的設計是系統設計環節的核心與基礎,最基本的應遵循數據與操作的分離原則。建立起的地下管線數據庫,需要滿足數據的集中管理,集中維護,分布使用,先進的空間數據庫引擎技術能夠為其提供支持。本系統利用Oracle關系數據庫,實行對地下管線空間數據與屬性數據的管理,能夠提供高效的查詢、訪問、分析功能[4,5]。地下管線空間數據的操作與管理則通過ArcSDE進行,但是數據的完整性和更深層次的操作應該在應用層完成。
Oracle的海量數據存儲、高并發訪問及不間斷運行的特點加上ArcSDE的空間數據庫引擎,能夠使得系統底層脫離冗長的數據存儲,同時又能夠實現所有高效的地理信息系統的相關操作。ArcSDE調用C API和JAVA API接口獲取底層數據,這樣的系統設計保證開放端口的客戶能夠使用到有效的地理信息數據。
(4)基于ArcGIS Engine的GIS組件開發
為了使系統各個功能模塊既相互獨立,相互之間又不受影響,系統必須采用組件化的開發模式,降低功能模塊的耦合度以避免系統因某個動作或某個突發事件導致數據丟失和系統癱瘓[6]。ArcObjects組件是ArcGIS產品的核心,為開發者提供了強有力的工具,ArcGIS Engine作為將ArcObjects的部分組件單獨打包的組件庫,能夠開發脫離ArcGIS平臺獨立運行的GIS軟件。使用ArcGIS Engine組件庫能夠在系統的開發費用、效率上有較大的優勢[7]。
ArcGIS Engine作為一套完備的嵌入式GIS組件庫和工具庫,提供了包括基本服務(Base Services)、數據存取(Data Access)、地圖表達(Map Presentation)、開發組件(Developer Components)、擴展功能(Extensions)5部分。
由于各種類型的地下管線,在城市地下空間的共存使得地下管線的布設猶如攪亂的線團般,往往難以從二維信息想象立體空間中管線之間的位置關系,這種不清晰會給地下管線的建設帶來阻礙甚至失誤。以此構建三維地下管網場景來清晰地反映在交錯復雜的地下各管線之間及管線與周邊地物之間的空間位置關系,存在必要性。總體來說,城市地下管線的三維可視化,除了管線數據的探測、管線數據庫的建立之外,主要是三維模型建立,其中建模的關鍵是在于特征點空間坐標的建模。
其構建流程如圖1所示。

圖1 地下管網三維場景構建流程
地下管網設備分為管點和管線兩類。
管點三維模型的創建過程如下:①設計符合相應二維符號標準的三維管點的樣式;②使用3ds Max三維建模軟件創建三維實體模型,以統一的格式保存并通過轉入器將各類管點三維模型建立符號庫;③對管點設備符號化。
在城市地下管線中,除較少部分不規則形狀的管線,其余大部分的地下管線基本上可歸為方形和圓形兩類。建模主要還是以構建方形和圓形的管線為主。ArcGIS Engine中IMultipatch提供動態的方式生成三維模型。例如,方形管模型由4個片及其坐標生成;圓形管模型由管線的外環等分割片組合成。具體來說,通過使用ArcEngine提供的IMultiPatch接口,依據三維坐標將這些特征點集合起來生成多片,按照管徑的屬性組合生成管線的三維模型[8~10]。Geodatabase進行存儲和管理各管線的管點坐標、起點埋深、終點埋深、管徑大小等數據信息。
根據徐州市三維地下管線信息系統的功能分析,將系統技術框架分為5層如圖2所示,數據層、GIS服務層、通用開發接口層、業務邏輯層和應用層。通過在不同層次設立標準規范制度和安全保障體系,使得穩定性和共享性得以提高,并形成高度整合化的系統。

圖2 系統總體技術架構圖
(1)數據層
數據層:采用Oracle+ArcSDE為系統提供基本的數據服務,Oracle儲存空間數據與屬性數據,利用ArcSDE為Oracle提供的數據引擎。
(2)GIS服務層
提供如發布和訪問空間數據的底層GIS功能服務。
(3)通用開發接口層
提供對GIS服務層的底層訪問接口。根據系統的功能需求,遵循開放地理空間信息聯盟的設計標準,利用ArcGIS Server[11]的應用開發框架(ADF)和元數據來設計并封裝的一套通用開發接口。通用開發接口提供了如點、線、面對象獲取服務、視圖服務、用戶權限等服務,并對其進行封裝以便于業務邏輯層調用。
(4)業務邏輯層
提供供應用層調用的功能接口。此層以通用開發接口層的接口為原件,組合封裝B/S應用功能和C/S應用中的大顆粒度的業務功能接口,這些功能接口是采用COM、HTTP和Web Services技術實現的。
(5)應用層
此層提供了徐州市三維地下管線信息系統各應用功能模塊,包括瀏覽、編輯、分析、統計、查詢等。
通過這五層架構,系統的服務性能和地下管線空間數據的相關性和動態管理得以加強。
徐州市三維地下管線信息系統建設的根本目的在于建立一個綜合地下管線管理、更新維護、應用服務的統一信息化平臺,實現全市綜合地下管線數據資料的匯集、處理、建庫、管理、維護、分發等服務。它以城市地下管線和數字地形圖為基礎空間數據、以屬性信息數據為資源,通過城市地下管線信息和城市基礎地理信息的聯合查詢、統計和分析,進而為城市地下管線規劃、建設、管理提供技術決策支持[12]。為此,徐州市三維地下管線信息系統主要實現了瀏覽應用功能模塊、編輯應用功能模塊、查詢應用功能模塊、分析應用功能模塊、統計應用功能模塊、量算應用功能模塊以及標注應用功能,具體的系統功能模塊結構圖如圖3所示。

圖3系統功能模塊
當前GIS技術發展的最新趨勢是將空間數據與非空間數據集成到一體化之中,其中空間數據使用關系數據庫或對象關系數據庫來管理,對非空間數據利用SQL語言進行操作,同時利用海量數據管理、事務處理(Transaction)、記錄鎖定、并發控制、數據倉庫等關系數據庫的功能集成空間與非空間數據。
選擇Oracle關系數據庫,實行對地下管線空間數據與屬性數據的管理,能夠提供高效的查詢、訪問、分析功能[13,14]。Oracle的海量數據存儲、高并發訪問及不間斷運行的特點加上ArcSDE的空間數據庫引擎,能夠使得系統底層脫離冗長的數據存儲,同時又能夠實現GIS應用系統所有高效的地理信息系統的相關操作。ArcSDE調用C API和JAVA API接口獲取底層數據,這樣的系統設計保證開放端口的客戶能夠使用到有效的地理信息數據。
徐州市三維地下管線信息系統的建設涉及對大量的空間信息數據的采集與處理,具體包括各種空間信息的存儲、編輯、空間分析、統計查詢等。本次設計的主導思想是:采用ESRI公司提供的空間數據模型GeoDatabase對空間數據進行組織管理,采用Oralce大型關系型數據庫存儲空間數據及其屬性數據,利用ESRI公司的ArcSDE空間數據庫引擎作為數據接口,基于ESRI公司提供的ArcEngine和AO作為開發平臺,堅持先進性、實用性和易用性、安全性和穩定性、創新性、擴充性和高效性的設計原則,建立一個開放的、靈活的綜合地下管網數據庫,保證建成的數據庫能實現對數據的管理應用,還可以為整個徐州市的各行各業提供統一的數據服務,為需要使用地下管網數據的各政府職能部門及商業機構提供不同數據格式的綜合管線數據。
系統采用STAMP三維地理信息引擎軟件實現三維管線的發布和展示,主要模塊功能及實現如下:
斷面分析的基本原理為:在一定區域內(如某一段馬路、某一條河流等地下管線)對管線進行垂直/水平剖面,通過剖面后會顯示出管線的斷點與其垂直方向上的屬性,查看該管線的走向、坡度及空間位置管線等。
以橫斷面為例,分析流程如圖4所示。

圖4 橫斷面分析流程圖
爆管分析是應對爆管事件需要的關閥處置分析功能。根據爆管位置通過系統已經建立的管道連通情況追查需要關閉的閥門情況。目前深度優先搜索算法是最普遍的爆管分析算法,但在日常使用中比如有向的供水排水燃氣網,可以采取優化的搜索算法,即只需要搜索最近上游的閥門管點,提高分析效率。分析流程圖如圖5所示,分析結果如圖6所示。

圖5 爆管分析流程圖

圖6 爆管分析
爆管分析的部分程序如下:
//獲取節點
Dim PTraceFlowsolver As ITraeeFlowsolverGEN
Dim PEnumNetEID_Junctions As IEnumNetEID
Dim PEnumNetEID_Edges As IEnumNetEID
Dim PNetElements As INetElements;Dim PNetFlag As INetFlag
Dim PTraceFlowsolver As ITraceFlowsolverGEN
PNetElements.QueryDs(intEdgeID,esriElementTyPe.esriETEdge,
intEdgeUserClassID,intEdgeUserID,intEdgeUsersubID)
Debug.Assert((intEdgeUserClassID>0) And (iniEdgeUserID>0))
PNetFlag.UserClassID = intEdgeUserClassID
PNetFlag.UserID = intEdgeUserID
PNetFlag.UsersubID = intEdgeUsersubID
PaNetFlag(i) = iPNetFlag
PTraceFlowSolver.FindFlowElements(esriFlowMethod.esriFMDownstream,
esriFlowElements.esriFEJunctionsAndEdges,pEnumNetEID_Junctions,
PEnumNetEID一dges)
//判斷節點是否為閥門
Dim pValveLayerPointCol As IPointCollection'//獲取閥門層中所有的點
Dim pfeature As IFeature
Dim pFeatureclass As IFeatureClass
Dim pFeatureCursor As IFeatureCursor
Dim PQueryfilter As IQueryFilter
Dim PPoint As IPoint
Dim pCol As IPointColleetion
PCol = NewMultiPoint
PValveLayerPoiniCol = PCol
PQueryfilter = NewQueryFilter
PFeatureCursor = PFeatureclass.Search(PQueryfilter,False)
Pfeature = PFeatureCursor.NextFeature
Dim Pfields As IFields
PEnumEIDInfo.Reset()
Dim PBase As IMultiPoint
Dim PComparison As Point
PBase = NewMultiPoint;PComparison = NewPoint
Dim PRelOP As IRelationalOPerator
PBase = PValveLayerPointCol;PRelOP=PBase
pEIDInfo = pEnurnEDInfo.Next
PGeometry = PEIDInfo.Geometry;PComparison = PGeometry
If PRelOP.Contains(pComparison) = True Then
PNewGeometryColl.AddGeometry(pGeometry)
End If
Next
本文在分析了國內外三維地下管線系統建設的現狀基礎上,深入地研究了徐州市三維地下管線數據采集的內容和技術,從實際作業生產的角度分析了系統功能需求設計,給出了三維地下管線信息系統的總體框架和技術體系,并從利于優化系統性能的角度選擇了C/S+B/S架構模式,結合AE、AO開發了徐州市三維地下管線信息系統的主要功能。系統的建成,大大提高了數據管理、維護、更新的效率,提高了地下空間的利用率,有利于充分發掘地下空間的潛力。