摘 要: 以某城市部件數據為對象,在分析ArcEngine組件技術基礎上,研究了基于ArcEngine的數字化城市部件信息管理系統設計與實現中的關鍵技術,其中包括視圖同步技術、圖層控制技術、數據查詢技術、空間分析等技術。以.NET為開發環境,采用C#語言開發了一套基于ArcEngine組件庫的數字化城市部件信息管理系統,實現了用戶對城市部件屬性數據和空間數據的管理。
關鍵詞: 數字化城市; GIS; 城市部件; ArcEngine; 空間數據庫; 信息管理系統; 組件式開發
中圖分類號: TN919?34; P226.3 文獻標識碼: A 文章編號: 1004?373X(2013)12?0074?04
0 引 言
“數字化城市”是基于地理信息系統(GIS)、全球定位系統(GPS)、遙感系統(RS)等關鍵技術,深入開發和應用空間信息資源,建設服務于城市規劃、建設和管理的信息基礎設施和應用體系[1]。數字化城市的管理主要是指基于“萬米單元網格城市管理法”和“城市部件管理法”的一種城市管理新模式[2]。“城市部件管理法”是把物化的城市管理對象作為城市部件進行管理,運用地理編碼技術,將城市部件按照地理坐標定位到萬米單元網格圖上,通過網格化城市管理信息平臺對其進行分類管理的方法[3]。城市部件主要指城市市政管理的各項公用設施、公共設施和交通設施等。
本文以某城市部件數據為對象,著重研究了基于GIS軟件平臺上的組件式開發技術和基于ArcEngine的數字化城市部件信息管理系統設計與實現中的關鍵技術。
1 ArcEngine
ArcGIS是美國環境系統研究所開發的一個全面的、完善的、可伸縮的GIS軟件平臺,是世界上使用最廣泛的GIS軟件之一[4]。ArcGIS與其他GIS軟件相比具有以下特點:完善的空間數據模型;空間與非空間數據的一體化管理;支持MicroSoft的.NET平臺;支持多種數據格式;支持Web GIS應用;具有齊全、強大的空間分析和計算功能等。
ArcGIS Engine(ArcEngine)是開發人員用于建立自定義應用程序的嵌入式GIS組件的一個完整類庫。開發人員可以使用ArcEngine將GIS功能嵌入到現有的應用程序中,也可以建立能分發給眾多用戶的自定義高級GIS系統應用程序。ArcEngine由一個軟件開發工具包和一個可以重新分發的、為所有ArcGIS應用程序提供平臺的運行時組成[5?6]。ArcEngine由數據存取、地圖表達、開發組件、基本服務和運行時選件5個部分組成。
ArcEngine為輔助應用程序開發提供了地圖控件、工具條控件、閱讀者控件、頁面布局控件、內容列表控件、場景控件、球體控件、使用工具條等控件。ArcEngine開發人員可以將以上控件用于ActiveX,.Net和Java等開發者環境,并與其他開發控件和組件結合創建具有顯示多個地圖圖層、地圖漫游和縮放、識別地圖上的要素等定制功能的應用程序。
基于ArcEngine的信息管理系統關鍵技術包括視圖同步技術、圖層控制技術、數據查詢技術、空間分析等技術。
2 圖層控制技術
2.1 調整圖層顯示順序
調整圖層顯示順序功能的實現主要利用了TOCControl控件的OnMouseDown,OnMouseUp兩個事件和HitTest(),Update()兩個方法;OnMouseDown事件方法的主要功能是獲得源圖層pMoveLayer,OnMouseUp事件方法的主要功能是:獲得目標圖層及其索引號;利用IMap提供的MoveLayer(pMoveLayer,Toindex)將源圖層pMoveLayer移到目標圖層(Toindex)的下方;使用ITOCControl提供的Updata()方法更新TOCControl空間中顯示的內容。
2.2 鼠標右鍵獲得圖層屬性
2.3 鼠標右鍵獲得圖層標注[8]
ArcObjects中的文字標注分為2種:標注(Label)和注記(Annotation)。它們都是在要素圖層上以文字來揭示地圖要素的某些信息,如地名、人口等。前者較為簡單,后者較為復雜但功能更加強大,本系統采用了后者。
3 數據查詢技術
在基于ArcEngine的信息管理系統中,使用了基于空間要素和基于空間屬性2種查詢技術。
3.1 基于空間要素的查詢
3.2 基于空間屬性的查詢
基于空間屬性查詢空間對象,需要使用QueryFilter和FeatureCursor對象。QueryFilter對象用來構造屬性查詢條件,其實現了IQueryFilter接口。FeatureCursor是一個可以包含多個Feature對象,它實現了IFeatureCursor接口和ICursor接口,通過IFeatureCursor::NextFeature方法可以遍歷所有的Feature對象,通過ICursor::NextRow可以遍歷所有的屬性記錄。基于空間屬性查詢的部分關鍵代碼如下:
4 空間分析技術[9]
本系統具有兩種空間分析方法:緩沖區分析和最短路徑分析。緩沖區分析是在緩沖區概念上,以數據庫中的點、線、面為對象,自動建立其周圍一定范圍內的緩沖區多邊形,幫助解決臨近度的問題[10]。ArcEngine中已經封裝好了緩沖區運算的方法,設計人員只要根據緩沖區多邊形獲得需要的信息即可。
最短路徑分析是利用ArcCatalog中的工具建立好網絡拓撲,然后靜態加載已經創建好的網絡。當選擇了起始節點和終止節點后,系統便可以自動分析出最優路徑并以紅色高亮顯示。最短路徑分析部分關鍵代碼如下:
5 結 語
本文以.NET作為開發環境,采用高級編程語言C#開發了一套基于ArcEngine組件庫的數字化城市部件信息管理系統,實現了用戶對城市部件屬性數據和空間數據的管理。該系統不僅具有地圖瀏覽功能、圖層控制功能、要素和屬性查詢功能、空間分析等功能,而且人機界面友好、功能強大、操作簡便。本文所涉及的關鍵技術具有一定的通用性和實用性。
參考文獻
[1] 陳平.網格化城市管理新模式[M].北京:北京大學出版社, 2006.
[2] 王洪深,吳強華,許欣.數字化城市管理新模式信息系統設計與開發[J].地理信息世界,2008,37(4):22?23.
[3] 王建強.城市部件數字化調查系統的研究與實現[J].測繪與空間地理信息,2009,30(3):56?62.
[4] 李德仁,龔健雅,邊馥荃.地理信息系統導論[M].北京:測繪出版社,1993.
[5] 何建國,呂從,劉偉,等.基于ArcGIS Engine的城市基礎地理信息數據庫系統開發研究[J].測繪科學,2007,13(4):67?79.
[6] XU Han?wei, BADAWI R, FAN Xiao?hu, et al. Research for 3D visualization of digital city based on SketchUp and ArcGIS [J]. Proceedings of SPIE, 2009, 7492: 111?116.
[7] CHEN Hua, LI Xiao?bing, XU Guang?hui. Design and realization of geographic information service system based on SuperMap GIS [J]. Computer Engineering and Design, 2009, 13(20): 100?103.
[8] XU Han?wei, LIU Zhi?hui, BADAWI R, et al. Research on models of digital city geo?information sharing platform [J]. Proceedings of SPIE, 2009, 7492: 7?13.
[9] 李贏.空間數據格式轉換方法的研究[J].職教研究,2009(3):9?13.
[10] 賈鵬鵬.空間數據庫實現理論與應用研究[J].硅谷,2010,34(10):8?11.