張奎,王軍
(徐州市勘察測繪研究院,江蘇 徐州 221000)
由于諸多種類地下管線共處于地下空間中,地下空間在城市發(fā)展中變得十分復雜,地下管線管理信息系統(tǒng)相對于其他的空間信息管理系統(tǒng)建立起來更加困難,必須在二維GIS系統(tǒng)的基礎上繼續(xù)發(fā)展以滿足實際中的應用需求。好在虛擬現(xiàn)實基礎上的各類三維系統(tǒng)的完善為之提供了很好的借鑒和參考,如果能夠將錯綜復雜的地下管線情況用三維圖形信息真實地還原出來,能夠使管線的規(guī)劃和管理更加簡便,使得決策的過程變得更加科學高效[1]。
徐州市三維地下管線管理信息系統(tǒng)的設計,就是利用二維的地下管線基礎信息,并結合虛擬現(xiàn)實技術而成。精確的二維地下管線基礎數(shù)據(jù)使得形成的三維地下管線管理系統(tǒng)不僅能夠準確、真實地描繪出城市的地下管線情況,而且由于基于三維的系統(tǒng)能夠給人們呈現(xiàn)出和現(xiàn)實視覺一致的場景,因此系統(tǒng)能夠更直觀、更立體地展現(xiàn)整個管線的空間關系,為管線的查詢、統(tǒng)計、分析提供了更有利的空間服務方式[2]。
(1)基于開放式主流系統(tǒng)開發(fā)環(huán)境
系統(tǒng)開發(fā)基于主流開發(fā)工具Microsoft Visual Studio 2005。
Microsoft Visual Studio 2005是Windows環(huán)境下支持B/S與C/S運行環(huán)境的強大的開發(fā)工具,在Microsoft Visual Studio 2005環(huán)境下,開發(fā)者能夠充分利用Windows操作系統(tǒng)提供的開發(fā)資源,創(chuàng)建一個集數(shù)據(jù)庫、通訊、GIS、Web技術、多媒體[3]等多種技術的應用桌面環(huán)境,并在此環(huán)境下開發(fā)出一套具有可維護性、穩(wěn)定性好、運行效率高、簡潔無冗余等優(yōu)點的系統(tǒng)。
(2)以C/S為主體,結合B/S的應用體系
徐州市三維地下管線信息系統(tǒng)將結合不同的應用采用以C/S為主體,結合B/S的應用體系。
本系統(tǒng)數(shù)據(jù)庫存儲著大量地下管線和地形空間及屬性數(shù)據(jù),而對這些數(shù)據(jù)的操作需要專業(yè)的技術人員來進行,包括數(shù)據(jù)的編輯、統(tǒng)計、分析以及歷史數(shù)據(jù)的存儲,以保證系統(tǒng)數(shù)據(jù)的安全性、運行速度和運行效率,因此為了滿足對地下管線和地形空間及屬性數(shù)據(jù)的處理和對數(shù)據(jù)服務的需求,這部分系統(tǒng)設計為C/S結構,并為專業(yè)技術人員提供對數(shù)據(jù)庫存儲的大量地下管線和地形空間及屬性數(shù)據(jù)交互和變更操作、空間分析和統(tǒng)計工具以及便捷靈活的制圖功能。
由于地下管線的權屬單位和管理單位各不相同,為了滿足各管線權屬單位、政府其他部門以及公眾對地下管線數(shù)據(jù)的信息訪問、查詢等需求,這部分系統(tǒng)設計為B/S結構,在此模式下,系統(tǒng)為各管線權屬單位、政府其他部門以及公眾等用戶設置不同的權限,以滿足他們對地下管線數(shù)據(jù)不同的瀏覽、查詢等需求。其中,通過城域網和防火墻的認證,地下管線各權屬單位可以瀏覽查詢自己管轄的地下管線及設施;通過Internet瀏覽器,政府其他部門及公眾可以訪問不同密級的地下管線信息;通過本單位的局域網,其他部門可以快速地瀏覽各種地下管線信息,以實現(xiàn)系統(tǒng)數(shù)據(jù)的信息共享。
(3)基于Oracle+ArcSDE數(shù)據(jù)庫環(huán)境
數(shù)據(jù)庫的設計是系統(tǒng)設計環(huán)節(jié)的核心與基礎,最基本的應遵循數(shù)據(jù)與操作的分離原則。建立起的地下管線數(shù)據(jù)庫,需要滿足數(shù)據(jù)的集中管理,集中維護,分布使用,先進的空間數(shù)據(jù)庫引擎技術能夠為其提供支持。本系統(tǒng)利用Oracle關系數(shù)據(jù)庫,實行對地下管線空間數(shù)據(jù)與屬性數(shù)據(jù)的管理,能夠提供高效的查詢、訪問、分析功能[4,5]。地下管線空間數(shù)據(jù)的操作與管理則通過ArcSDE進行,但是數(shù)據(jù)的完整性和更深層次的操作應該在應用層完成。
Oracle的海量數(shù)據(jù)存儲、高并發(fā)訪問及不間斷運行的特點加上ArcSDE的空間數(shù)據(jù)庫引擎,能夠使得系統(tǒng)底層脫離冗長的數(shù)據(jù)存儲,同時又能夠實現(xiàn)所有高效的地理信息系統(tǒng)的相關操作。ArcSDE調用C API和JAVA API接口獲取底層數(shù)據(jù),這樣的系統(tǒng)設計保證開放端口的客戶能夠使用到有效的地理信息數(shù)據(jù)。
(4)基于ArcGIS Engine的GIS組件開發(fā)
為了使系統(tǒng)各個功能模塊既相互獨立,相互之間又不受影響,系統(tǒng)必須采用組件化的開發(fā)模式,降低功能模塊的耦合度以避免系統(tǒng)因某個動作或某個突發(fā)事件導致數(shù)據(jù)丟失和系統(tǒng)癱瘓[6]。ArcObjects組件是ArcGIS產品的核心,為開發(fā)者提供了強有力的工具,ArcGIS Engine作為將ArcObjects的部分組件單獨打包的組件庫,能夠開發(fā)脫離ArcGIS平臺獨立運行的GIS軟件。使用ArcGIS Engine組件庫能夠在系統(tǒng)的開發(fā)費用、效率上有較大的優(yōu)勢[7]。
ArcGIS Engine作為一套完備的嵌入式GIS組件庫和工具庫,提供了包括基本服務(Base Services)、數(shù)據(jù)存取(Data Access)、地圖表達(Map Presentation)、開發(fā)組件(Developer Components)、擴展功能(Extensions)5部分。
由于各種類型的地下管線,在城市地下空間的共存使得地下管線的布設猶如攪亂的線團般,往往難以從二維信息想象立體空間中管線之間的位置關系,這種不清晰會給地下管線的建設帶來阻礙甚至失誤。以此構建三維地下管網場景來清晰地反映在交錯復雜的地下各管線之間及管線與周邊地物之間的空間位置關系,存在必要性??傮w來說,城市地下管線的三維可視化,除了管線數(shù)據(jù)的探測、管線數(shù)據(jù)庫的建立之外,主要是三維模型建立,其中建模的關鍵是在于特征點空間坐標的建模。
其構建流程如圖1所示。
圖1 地下管網三維場景構建流程
地下管網設備分為管點和管線兩類。
管點三維模型的創(chuàng)建過程如下:①設計符合相應二維符號標準的三維管點的樣式;②使用3ds Max三維建模軟件創(chuàng)建三維實體模型,以統(tǒng)一的格式保存并通過轉入器將各類管點三維模型建立符號庫;③對管點設備符號化。
在城市地下管線中,除較少部分不規(guī)則形狀的管線,其余大部分的地下管線基本上可歸為方形和圓形兩類。建模主要還是以構建方形和圓形的管線為主。ArcGIS Engine中IMultipatch提供動態(tài)的方式生成三維模型。例如,方形管模型由4個片及其坐標生成;圓形管模型由管線的外環(huán)等分割片組合成。具體來說,通過使用ArcEngine提供的IMultiPatch接口,依據(jù)三維坐標將這些特征點集合起來生成多片,按照管徑的屬性組合生成管線的三維模型[8~10]。Geodatabase進行存儲和管理各管線的管點坐標、起點埋深、終點埋深、管徑大小等數(shù)據(jù)信息。
根據(jù)徐州市三維地下管線信息系統(tǒng)的功能分析,將系統(tǒng)技術框架分為5層如圖2所示,數(shù)據(jù)層、GIS服務層、通用開發(fā)接口層、業(yè)務邏輯層和應用層。通過在不同層次設立標準規(guī)范制度和安全保障體系,使得穩(wěn)定性和共享性得以提高,并形成高度整合化的系統(tǒng)。
圖2 系統(tǒng)總體技術架構圖
(1)數(shù)據(jù)層
數(shù)據(jù)層:采用Oracle+ArcSDE為系統(tǒng)提供基本的數(shù)據(jù)服務,Oracle儲存空間數(shù)據(jù)與屬性數(shù)據(jù),利用ArcSDE為Oracle提供的數(shù)據(jù)引擎。
(2)GIS服務層
提供如發(fā)布和訪問空間數(shù)據(jù)的底層GIS功能服務。
(3)通用開發(fā)接口層
提供對GIS服務層的底層訪問接口。根據(jù)系統(tǒng)的功能需求,遵循開放地理空間信息聯(lián)盟的設計標準,利用ArcGIS Server[11]的應用開發(fā)框架(ADF)和元數(shù)據(jù)來設計并封裝的一套通用開發(fā)接口。通用開發(fā)接口提供了如點、線、面對象獲取服務、視圖服務、用戶權限等服務,并對其進行封裝以便于業(yè)務邏輯層調用。
(4)業(yè)務邏輯層
提供供應用層調用的功能接口。此層以通用開發(fā)接口層的接口為原件,組合封裝B/S應用功能和C/S應用中的大顆粒度的業(yè)務功能接口,這些功能接口是采用COM、HTTP和Web Services技術實現(xiàn)的。
(5)應用層
此層提供了徐州市三維地下管線信息系統(tǒng)各應用功能模塊,包括瀏覽、編輯、分析、統(tǒng)計、查詢等。
通過這五層架構,系統(tǒng)的服務性能和地下管線空間數(shù)據(jù)的相關性和動態(tài)管理得以加強。
徐州市三維地下管線信息系統(tǒng)建設的根本目的在于建立一個綜合地下管線管理、更新維護、應用服務的統(tǒng)一信息化平臺,實現(xiàn)全市綜合地下管線數(shù)據(jù)資料的匯集、處理、建庫、管理、維護、分發(fā)等服務。它以城市地下管線和數(shù)字地形圖為基礎空間數(shù)據(jù)、以屬性信息數(shù)據(jù)為資源,通過城市地下管線信息和城市基礎地理信息的聯(lián)合查詢、統(tǒng)計和分析,進而為城市地下管線規(guī)劃、建設、管理提供技術決策支持[12]。為此,徐州市三維地下管線信息系統(tǒng)主要實現(xiàn)了瀏覽應用功能模塊、編輯應用功能模塊、查詢應用功能模塊、分析應用功能模塊、統(tǒng)計應用功能模塊、量算應用功能模塊以及標注應用功能,具體的系統(tǒng)功能模塊結構圖如圖3所示。
圖3系統(tǒng)功能模塊
當前GIS技術發(fā)展的最新趨勢是將空間數(shù)據(jù)與非空間數(shù)據(jù)集成到一體化之中,其中空間數(shù)據(jù)使用關系數(shù)據(jù)庫或對象關系數(shù)據(jù)庫來管理,對非空間數(shù)據(jù)利用SQL語言進行操作,同時利用海量數(shù)據(jù)管理、事務處理(Transaction)、記錄鎖定、并發(fā)控制、數(shù)據(jù)倉庫等關系數(shù)據(jù)庫的功能集成空間與非空間數(shù)據(jù)。
選擇Oracle關系數(shù)據(jù)庫,實行對地下管線空間數(shù)據(jù)與屬性數(shù)據(jù)的管理,能夠提供高效的查詢、訪問、分析功能[13,14]。Oracle的海量數(shù)據(jù)存儲、高并發(fā)訪問及不間斷運行的特點加上ArcSDE的空間數(shù)據(jù)庫引擎,能夠使得系統(tǒng)底層脫離冗長的數(shù)據(jù)存儲,同時又能夠實現(xiàn)GIS應用系統(tǒng)所有高效的地理信息系統(tǒng)的相關操作。ArcSDE調用C API和JAVA API接口獲取底層數(shù)據(jù),這樣的系統(tǒng)設計保證開放端口的客戶能夠使用到有效的地理信息數(shù)據(jù)。
徐州市三維地下管線信息系統(tǒng)的建設涉及對大量的空間信息數(shù)據(jù)的采集與處理,具體包括各種空間信息的存儲、編輯、空間分析、統(tǒng)計查詢等。本次設計的主導思想是:采用ESRI公司提供的空間數(shù)據(jù)模型GeoDatabase對空間數(shù)據(jù)進行組織管理,采用Oralce大型關系型數(shù)據(jù)庫存儲空間數(shù)據(jù)及其屬性數(shù)據(jù),利用ESRI公司的ArcSDE空間數(shù)據(jù)庫引擎作為數(shù)據(jù)接口,基于ESRI公司提供的ArcEngine和AO作為開發(fā)平臺,堅持先進性、實用性和易用性、安全性和穩(wěn)定性、創(chuàng)新性、擴充性和高效性的設計原則,建立一個開放的、靈活的綜合地下管網數(shù)據(jù)庫,保證建成的數(shù)據(jù)庫能實現(xiàn)對數(shù)據(jù)的管理應用,還可以為整個徐州市的各行各業(yè)提供統(tǒng)一的數(shù)據(jù)服務,為需要使用地下管網數(shù)據(jù)的各政府職能部門及商業(yè)機構提供不同數(shù)據(jù)格式的綜合管線數(shù)據(jù)。
系統(tǒng)采用STAMP三維地理信息引擎軟件實現(xiàn)三維管線的發(fā)布和展示,主要模塊功能及實現(xiàn)如下:
斷面分析的基本原理為:在一定區(qū)域內(如某一段馬路、某一條河流等地下管線)對管線進行垂直/水平剖面,通過剖面后會顯示出管線的斷點與其垂直方向上的屬性,查看該管線的走向、坡度及空間位置管線等。
以橫斷面為例,分析流程如圖4所示。
圖4 橫斷面分析流程圖
爆管分析是應對爆管事件需要的關閥處置分析功能。根據(jù)爆管位置通過系統(tǒng)已經建立的管道連通情況追查需要關閉的閥門情況。目前深度優(yōu)先搜索算法是最普遍的爆管分析算法,但在日常使用中比如有向的供水排水燃氣網,可以采取優(yōu)化的搜索算法,即只需要搜索最近上游的閥門管點,提高分析效率。分析流程圖如圖5所示,分析結果如圖6所示。
圖5 爆管分析流程圖
圖6 爆管分析
爆管分析的部分程序如下:
//獲取節(jié)點
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)
//判斷節(jié)點是否為閥門
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,F(xiàn)alse)
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
本文在分析了國內外三維地下管線系統(tǒng)建設的現(xiàn)狀基礎上,深入地研究了徐州市三維地下管線數(shù)據(jù)采集的內容和技術,從實際作業(yè)生產的角度分析了系統(tǒng)功能需求設計,給出了三維地下管線信息系統(tǒng)的總體框架和技術體系,并從利于優(yōu)化系統(tǒng)性能的角度選擇了C/S+B/S架構模式,結合AE、AO開發(fā)了徐州市三維地下管線信息系統(tǒng)的主要功能。系統(tǒng)的建成,大大提高了數(shù)據(jù)管理、維護、更新的效率,提高了地下空間的利用率,有利于充分發(fā)掘地下空間的潛力。