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