張現軍,陳甫
(濟南市勘察測繪研究院,山東 濟南 250012)
城市地下管網作為城市最重要的基礎設施的一部分,是維持城市正常運轉的“生命線”,其擔負著一個城市能源輸送、信息傳輸等工作[1]。我國城市地下管線種類繁多,包括供水、熱力、燃氣、排水、通信管網、電力等8大類20余種管線。隨著全國范圍內地下管線普查工作的逐步完成,各個城市建立并完善了地下管線數據庫,城市中的相關部門、管線企業根據不同應用背景,研發出了具有多種應用特點的管線管理系統。
隨著城市基礎建設的快速發展,地下管線變動頻繁,雖然變化較小,但實時性要求高,如何保證已建立的管線數據庫的同步更新、保持數據庫的活力,對管線系統提出了新的要求。目前已建立的地下管線管理系統對管網數據的維護多采取C/S(Client/Server)模式,這種方法對客戶端配置要求高,需要專業人員進行維護,適用于大批量數據的更新和維護,但對于小范圍或少量數據的動態更新具有一定的局限性。相較于C/S模式,B/S(Browser/Server)模式具有跨平臺、動態、可重用、實時性強等特點,對客戶端要求較低。部分學者基于B/S(Browser/Server)模式,結合開放地理空間信息聯盟(OGC)標準規范中的WFS服務實現了管線數據的維護,在一定程度上實現了數據的動態更新。但這種方法只是對要素的屬性及簡單要素進行了編輯,并沒有對管線間的拓撲關系進行維護。
本文在通用管網模型的基礎上研究具有良好適應性的專業管網數據模型,對專業管網的特征和拓撲關系進行表達,用關系型數據庫存儲實現,通過WebService進行管網數據的編輯和拓撲維護。在用戶交互界面,基于客戶端緩存的要素捕捉,提高數據編輯的準確性。
城市地下管網作為城市重要的基礎設施,其實體種類繁多,數量龐大,網絡拓撲結構復雜[2]。城市地下管網按照分布一般可以分為三類:呈樹枝狀分布,呈環狀分布或呈輻射狀分布。城市地下管網數據作為基本網絡模型中的一種,因此其具有網絡模型的一般特征,從管網的結構上來說,管網是由連接管段的管點以及管點之間的管段組成。管點根據要素實體的類型可以分為閥門、節點等。根據管網類型管點又可細分為多個子類型,例如供水管網節點分為水表、消火栓、水泵、水廠、接入點等,燃氣管網節點分為用戶、供氣站、加壓站、閥門等。
城市地下管網中設施并不是孤立存在的,設施間具有拓撲關聯關系,如供熱管網中用戶、閥門等與供熱管道之間;燃氣管網中用戶、供氣站等與輸送線路之間;排水系統中檢查井與雨水管之間等。城市地下管網空間數據的各個圖層中均不包含面狀實體,城市基本框架中雖然包括諸如小區、公園等面狀實體,但基本框架數據在管線應用中通常作為背景圖用于指明地下管網的具體位置,精度要求不是很高,因此在建立管網模型可以進行適當簡化,無須考慮面狀實體,同樣考慮空間數據的拓撲時可以忽略與面狀實體相關的拓撲關系[3]。
本文構建的基于元數據面向實體的管網數據模型將管網元數據和管網要素實體分開存儲。元數據用于存儲各專業管網的劃分及其相對應的管網特性,空間要素存儲根據管網分類按照一定的規則存儲管網的空間要素及其之間的拓撲關系。模型將管網中的要素抽象為點、線兩類要素,點要素表示管網中連接管段間的設備,線要素表示管網中的管段。管網中的拓撲關系在線狀要素表中進行存儲,即線狀要素由起點和終點連接而成,其中起點和終點必須與點狀要素相連,線狀要素不能脫離點狀要素孤立存在[4]。
(1)元數據邏輯結構組織
元數據存儲由管網分類規范、數據庫元規范、設備分類、設備字段組成,其對應的數據庫表名分別為M_GWFL、M_DBMETA、*_M_MT、*_M_MT_FLD,其中設備分類、設備字段表名前的“*”為專業管網在數據庫元規范中所對應的管網名稱。設備分類表和設備屬性字段表之間通過設備分類標識字段“Dno”進行關聯。元數據邏輯結構組織關系如圖1所示。

圖1 元數據邏輯結構組織
(2)管網實體邏輯結構組織
模型中將各專業管網的點、線要素根據自身的專業特征分開存儲,對應的表名分別為*_nod和*_lin,表名前的“*”與設備分類和設備字段表名前的“*”規則一致。
模型中點線要素表的要素關系,實際上表示的是管網中要素的拓撲關系。點線之間拓撲關系的表示是管網編輯中拓撲關系維護的基礎,在該數據模型下,對點、線要素的添加、刪除、更新不再是簡單的編輯操作,在進行管網數據維護的同時,還需保持管網拓撲關系的完整性。
WebGIS三層架構中的服務層作為各類服務提供的載體,對下管理共享數據,對上集成支撐各類業務應用,服務層的實現主要是通過WebService進行實現。WebService通過SOAP、UDDI和XML等標準技術為應用軟件之間的通信制定了的統一的標準,應用程序之間通過標準的方式進行通信[5]。
本文需要對業務數據和管網空間數據同時進行管理和操作,在服務層的實現中使用了WebService與GIS結合的GIS WebService。服務接口根據服務類型分為地圖元數據接口與要素編輯接口,接口在設計上遵循OGC規范,能夠與其他業務系統進行很好的對接。要素編輯接口如表1所示。

要素編輯接口 表1
(1)緩存方式選擇
WebGIS系統是一個具有多層結構的分布式系統,WebGIS空間數據的緩存可分為服務器端緩存和客戶端緩存[6]。服務器端緩存通常適用于緩存數據量比較大、緩存需要被多個用戶進行共享的情況。某些應用系統中有些數據不需要被其他用戶進行共享,但建立緩存可以提高單個客戶端數據請求的響應速度,這種情況下通常采用客戶端緩存[7]。
為了提升用戶交互體驗以及數據編輯的準確性,地下管網編輯系統中的部分功能添加了要素捕捉,需基于已有的空間數據實時計算捕捉目標點。為了減少網絡和服務器性能因素對實時捕捉的影響,本文選擇將相關的空間數據在客戶端進行緩存。
(2)緩存空間數據的選取
本文所研究的管網空間數據在線編輯主要是針對管網數據進行編輯維護,但根據具體的功能需求差異,對捕捉數據具有相應的要求。例如執行線上加點操作時,需要對管網數據進行捕捉;執行解析錄入操作時需要對地形圖進行捕捉。部分編輯操作對于捕捉數據的要素類型也有一定的要求,例如某些編輯操作僅對點、線要素進行捕捉或對二者同時進行捕捉。
對于管線數據的編輯通常在地圖縮放比例比較大時進行,地圖縮放在較小級別時進行空間數據緩存需要存儲的數據量比較大,而且緩存的數據也沒有利用價值,反而會影響系統的性能。
鑒于以上分析,對于緩存空間數據的選取不僅要考慮空間數據的類別,還要考慮空間數據的要素類型以及建立緩存的時間點。
(3)空間數據緩存的創建及更新策略
客戶端的空間數據緩存通常以空間范圍進行存儲,空間范圍改變時需要向服務器發送請求更新緩存。如圖2所示,當對地圖進行操作時,首先判斷捕捉是否開啟,如果沒有開啟直接返回,如果處于開啟狀態,繼續判斷地圖操作是否被拖動或進行了縮放,即判斷地圖范圍有沒有發生變化,如果沒有變化,直接跳出,如果符合條件進行下一步判斷,判斷當前地圖縮放級別是否大于用戶設定的或者系統默認的級別閾值,不符合條件跳出,符合條件則向服務器發送請求更新當前緩存。
(1)要素捕捉的過程
要素捕捉的過程是根據鼠標光標點與地物要素點的位置關系獲取最優點的過程,這個最優點可以是距離光標點最近的點或者最近線的端點、垂點、中點等。根據設定的捕捉半徑,在光標點周圍形成一個捕捉范圍(通常為矩形范圍),捕捉范圍內的點要素或者與捕捉范圍相交的線要素為待篩選的目標捕捉對象,根據捕捉算法在目標捕捉對象中篩選最優點,如果目標捕捉對象為空,則認為捕捉失敗。
本文的捕捉思路如圖3所示,用戶執行某個編輯功能操作,在鼠標移動選擇目標對象時,系統首先判斷條件1:功能是否打開了捕捉開關,如果捕捉沒有打開,執行操作1:正常執行選擇操作。在捕捉開啟的情況下,判斷條件2:本地緩存是否為空,如果緩存為空,執行圖2所示的流程更新本地緩存后仍不滿足條件,直接返回,執行操作1。如果滿足條件2或者更新緩存后緩存不為空,繼續向下執行,根據當前光標點的屏幕坐標與本地緩存中的數據根據設定的捕捉半徑進行計算,篩選符合條件的捕捉目標對象,如果目標對象為空,執行操作1,對象不為空時,通過計算定位捕捉點在目標對象上的位置,根據目標定位的位置(單點或線上的垂點、終點、端點)選擇合適的Symbol在地圖上進行繪制,完成一次捕捉操作。

圖3 要素捕捉的思路
(2)捕捉優化的策略
GIS中的空間對象通過地物的空間坐標來表示自然地物,構成對象的最小元素是點,點與點之間構成線段或者弧段,線段與線段(或者線段與弧段,或者弧段與弧段)之間構成線條,閉合的線條構成單面,多個不同方向的閉合線條構成多面或有島的面[8]。緩存中是以對象的形式存儲的空間數據,有些對象的空間跨度很大,需要對對象進行分解,例如多點拆分成點數組,線條或單面拆分成線段數組來進行捕捉計算,分解后根據捕捉范圍剔除一些明顯不符合要求的數據,縮小參與計算的數據量。
經過數據精簡篩選后的空間對象,通過在空間數據緩存池中對目標空間對象建立索引,可以快速查詢和獲取到需要進行捕捉計算的空間實體,提升捕捉的性能。
基于上述研究內容,作者開發了基于WebGIS的管網在線編輯系統實例。實例系統的運行環境包括客戶端環境和服務器端環境,客戶端環境:內存 2 GB以上,主頻 1.8 GHz以上,Windows vista以上操作系統,IE8以上瀏覽器;服務器端環境:內存 4 GB以上,主頻 2.0 GHz以上,Windows Server 2008以上操作系統,JSP+Jetty運行環境,需要良好的 100 MB以上的以太網絡系統。
基于WebGIS的管線在線編輯系統實例采用WebGIS的三層架構設計,其中數據存儲層采用本文所研究的基于元數據面向實體的管網數據模型的物理存儲結構對管網數據進行管理,通過關系型數據庫SQL Server 2008 R2進行存儲;業務服務層基于ArcObjects SDK for Java和GeoTools進行使用編輯服務接口的開發,對空間數據和屬性數據進行維護;應用展示層基于ArcGIS API for JavaScript結合Html5、Ajax技術進行實現。圖4為系統主界面,系統實現了移動管點、合并管點、管段上添加管點、刪除管線、延長管線至管點、批量刪除管點等功能,對基于緩存的要素捕捉、基于管網模型的拓撲維護進行了驗證。

圖4系統主界面
針對城市地下管網空間對象和對各專業管網的特性的表達,建立了基于元數據面向實體的管網空間數據模型,對于管網實體數據、管網元數據以及管網空間實體之間的拓撲關系進行存儲。本文提出的WebGIS客戶端基于空間數據緩存的要素捕捉,實現了對數據進行快速有效的更改和處理,通過實例系統對以上研究內容進行了驗證。
[1] 李金平,薛泮成,孟祥來. 城市地下管網信息系統設計與實現[J]. 測繪工程,2004,13(4):25~27.
[2] 何屹. 基于Web分類技術的農業信息獲取系統的研究與實現[D]. 北京郵電大學,2010.
[3] 程小凱,李愷毅,李景文等. 面向對象的城市管網數據組織模型設計[J]. 地理空間信息.2010(02):127~129.
[4] 盧丹. 地下管網地理信息系統通用模型的設計與實現[D]. 哈爾濱:哈爾濱工程大學,2003.
[5] 楊志波. 基于Ajax技術的WebGIS研究及實現[D]. 中國科學院廣州地球化學研究所,2006.
[6] 彭建偉. Ajax技術在WebGIS中的應用研究[D]. 長沙:中南大學,2008.
[7] 李浩松,朱欣焰,李京偉等. WebGIS空間數據分布式緩存技術研究[J]. 武漢大學學報·信息科學版,2005,30(12):1092~1095.
[8] 吳磊,黃先鋒,舒寧. GIS大數據量編輯處理中快速捕捉的優化策略[J]. 武漢理工大學學報·交通科學與工程版,2005,29(2):315~318.