郝杰
摘 要:傳統的校園管網管理需要耗費大量人力,采用圖紙的方式,當管網發生變化時,難以實時地變更圖紙,為管網的維修帶來極大的困難。根據當前校園管網管理的需求,利用Esri公司發布的ArcGIS Engine組件,構建校園管網管理系統。該系統采用主流開發語言C#編寫,通過ArcSDE與功能強大的Oracle數據庫連接作為企業級地理空間數據庫,減少了人力成本,同時實現了對復雜校園管網的方便、高效管理。
關鍵詞:ArcGIS Engine;管網;ArcSDE
中圖分類號:G647 文獻標志碼:A 文章編號:1673-291X(2017)03-0156-02
引言
在校園管網的管理中一直使用紙質地圖與CAD相結合的方式對管網進行管理,隨著社會的快速發展,校園的建筑面積也在不斷擴大,校園的管網系統也變得更加龐大和復雜。這種傳統的管理方式數據更新困難,管理效率低下,已經難以滿足管理復雜管網的需求[1]。而ArcGIS Engine為解決這一問題提供了很好的平臺,同時結合ArcSDE與Oracle數據庫也解決了數據的存儲和同步問題,基于以上技術構建的校園管網管理系統,可以極大地提高管網管理的效率和數據的同步性。
一、總體設計
(一)關鍵技術
本系統的開發平臺為ArcGIS Engine,ArcGIS Engine是美國 Esri 公司發布的一款GIS二次開發產品,是目前 GIS 業界最為著名的組件式 GIS 開發產品。它是對ArcGIS Desktop開發包ArcObjects組件集中的大部分接口、類、庫進行封裝后構成的獨立的嵌入式組件,可以方便地實現GIS功能,這使得開發者能夠將精力集中到解決應用程序的業務邏輯中[2]。為解決管網地圖和數據的存儲問題,本系統選取了Oracle數據庫作為地理空間數據庫,采用ArcSDE組件直連的方式將數據庫與管網系統連接,ArcSDE是一套空間數據庫解決方案,它在現有關系型數據庫系統的基礎上進行空間擴展,可以將空間和非空間數據存儲在單一的關系型數據庫中[3]。在開發語言的選取上,采用了主流成熟的C#語言,力求將程序做到簡潔、高效、穩定。
(二)功能模塊
系統主要有四大功能模塊,首先是地圖操作模塊,可以響應用戶對地圖的一些交互操作,例如放縮、前后視圖和漫游等,這是系統的基礎功能;其次是屬性查詢模塊,負責根據用戶的需求對管網節點,線路和校園建筑進行屬性的查詢,或者根據用戶指定的條件篩選出符合要求的地物;再次是地圖編輯模塊,用于滿足用戶對管網節點、管線、建筑物等進行標注和節點拓撲編輯的需求;最后是空間分析模塊,空間分析是GIS的核心功能,包括緩沖區分析、網絡分析和爆管分析等,可以為用戶利用GIS進行科學規劃與管理提供決策依據[4]。
二、系統實現
(一)地圖操作功能模塊
地圖操作模塊用于響應地圖與用戶的交互操作,例如加載數據、放大縮小、平移、測距等功能,需要使用ToolbarControl控件,ToolbarControl控件無法單獨使用,需要與MapControl控件綁定后協同工作,ToolbarControl使用hook來聯系命令對象和MapControl控件,并提供屬性、方法、事件,主要使用ICommand接口和IToolControl接口加載內置命令。
(二)屬性查詢功能模塊
查詢模塊負責根據用戶的需求對管網節點,線路和校園建筑進行屬性查詢,“點擊查詢”功能是用戶通過直接在屏幕上選取地物目標來查詢其屬性信息,“范圍查詢”功能則是用戶通過鼠標在屏幕上劃定一個區域來查詢其中包含的地物屬性信息。上述兩種查詢主要由IFeatureLayer.Search()方法或IFeatureSelection.SelectFeatures()方法,通過制定的標準過濾器filter和方法選擇要素來實現,查詢結果實現的是FrmSelectResult窗體類,將生成的屬性表pDataTable加載到FrmSelectReasult的DataGridView表中,并顯示出來。“篩選查詢”功能則是根據用戶選擇的條件,篩選出符合用戶條件的管道或節點,“篩選查詢”原理主要是將用戶需求解析為SQL語句,生成IQueryFilter對象,通過IFeatureSelectionSelectFeatures()方法執行查詢,將結果在MapControl控件中顯示出來。
(三)地圖編輯功能模塊
此模塊用于滿足用戶對管網節點、管線、建筑物等進行修改的需求,同時實現對地圖符號修改的功能。地圖編輯可以對管線的節點、建筑物等進行修改,同時對增加的多個點、線、面要素進行拓撲處理后將正確的編輯結果顯示在地圖上。要實現編輯功能,需要使用IWorkspaceEdit接口,它可以讓程序啟動或者停止一個編輯流程,在這個編輯過程中,可以對地圖數據進行修改。要對地圖符號進行修改,分為三種類型,對點、線、面符號的修改分別對應MarkerSymbol、LineSymbol和FillSymbol。系統可以對地圖符號進行顏色、大小、寬度、角度等的修改,修改的效果會在右上角窗口中實時生成預覽,極大地方便了用戶的操作。
(四)空間分析功能模塊
空間分析作為GIS的核心功能,為用戶利用GIS進行科學規劃與管理提供了決策依據[4]??臻g分析模塊包括緩沖區分析、網絡分析、爆管分析等功能,在桌面ArcGIS軟件中,GP工具軟件提供了大量的分析功能,要在ArcGIS Engine中進行空間分析,也需要引用Geoprocessing程序集,通過IGeoProcessor2接口的Execute實現對GP工具的執行,首先創建GeoProcessorClass對象,其次創建實現IVariantArray接口的對象,并設置其參數數據,最后gp.Execute執行GP工具。
緩沖區分析可以用來模擬管線損壞后的影響范圍,規劃預警方案;網絡分析則可以動態的分析管網的分布,分析管網最短路徑,規避不可施工區域,降低施工成本;爆管分析通過對管網的空間分析,可以迅速查明發生故障的節點,提高維修效率。
結論
本系統基于ArcGIS Engine開發,彌補了傳統的管網管理方式數據更新困難,管理效率低下的問題,配合ArcSDE和Oracle數據庫,提高了系統的易用性,特別是在地圖編輯和空間分析方面,減輕了對復雜管網系統管理的難度,極大地提高了管理效率。
參考文獻:
[1] 魯濤.基于Arc Engine的校園管網信息系統的設計與實現[J].科技視界,2014,(4):52-53.
[2] 吳建華.基于ArcGIS Engine的GIS軟件開發方法[J].測繪通報,2010,(11):54-57.
[3] 張佐幫.基于ArcSDE和Oracle的東盟空間信息系統的研究與實現[D].武漢:武漢大學,2005.
[4] 檀丁,李明峰,張蔚,等.GP服務在基于SOA的WebGIS空間分析中的應用研究[J].測繪通報,2011,(7):70-77.
[責任編輯 李曉群]