【摘要】地理信息系統在越來越多的領域發揮著不可替代的作用。本文介紹了承鋼地理信息管理系統中插件式GIS框架的簡單設計和實現。
【關鍵詞】GIS;插件;框架
【中圖分類號】P208 【文獻標識碼】A 【文章編號】1672-5158(2012)09-0130-01
隨著承鋼生產規模的不斷擴大,公司對通信網絡的要求日益增高,無論是設計、施工、維護等各個方面的需求都追求完善。然而承鋼信息化資源的管理還僅僅是依賴手工完成,耗費了大量的人力、物力的同時也暴露了許多缺點,例如:各種信息的采集和更新工作不夠準確、及時;整理、查詢、修改工作日趨繁重;對整個系統情況不易把握、維護不便等等。因此,地理信息管理系統的設計與開發則顯得尤為重要。它能夠提供豐富的采集、檢索、分析統計功能,可以對各種通信資源進行綜合、準確、高效的圖形化管理,既減少了人力、物力、財力的浪費,也有效的提高了工作效率。
一、承鋼地理信息系統介紹
1、地理信息系統簡介
地理信息系統(Geographic Information System),簡稱GIS,是一種用于采集、存儲、管理、顯示、描述和分析特定空間中有關地理分布的數據信息系統。它是建立在空間實體數據庫(包括空間數據、屬性數據、圖形數據等等)的基礎上,在計算機軟、硬件系統的支持下,采用地理模型等分析方法,實現對空間地理信息的實時地分析和研究,以便解決復雜的規劃和管理問題。
2、承鋼地理信息系統架構
承鋼地理信息系統采用ArcGIS系列產品線,是在Visual Studio.NET 2008集成開發環境下建立的基于ArcGIS Engine 93和ArcGISServer 9.3應用的開發項目,即在vs2008中注冊ArcGIS Engine開發組件,然后創建基于窗體的應用程序,添加ArcGIS Engine組件并編寫代碼來建立應用邏輯。本系統采用C/S(客戶端/服務端)+B/S(瀏覽器/服務端)相結合的混合結構模式以及ArcSDE和Oraclel0的混合數據庫模式進行設計。
3、承鋼地理信息系統基本功能
(1)數據的采集、審核、編輯與更新:
該功能主要用于實時、動態地獲取地理空間數據,從而保證系統數據數據在內容與時間上的完整性等等。本系統支持離線增加、刪除和編輯功能,能夠隨時對端局、管道、桿路、光纜、電纜、配線架、交接箱、分線盒等網絡設施進行日常維護。
(2)數據的查詢、檢索、統計與計算:
這是地理信息系統的最基本功能。它提供對各種信息資源實體的查詢、顯示和定位功能,我們能夠根據系統提供的各種關鍵字,在地圖上進行快速的查詢、定位各種屬性,還包括基于網絡拓撲模型的路由計算功能。能夠根據各種數據模型進行空間數據的統計分析操作,指導進一步的數據更新和采集。
(3)數據顯示與輸出
數據的顯示功能包括了GIS的基本功能,如:地圖放大、縮小、漫游、全圖、視圖、鷹眼等等。數據輸出方式則包括了地圖輸出、網絡傳輸、圖層打印、圖層管理等等。
二、插件式GIS框架的具體應用
所謂插件式GIS框架,是指在不修改程序主體的情況下,通過插件模塊的方式來實現各種功能的軟件。在軟件開發的過程中,整個應用程序被劃分為主體程序、插件對象、插件協議三部分。主體程序獨立于插件對象存在,通過調用插件對象來實現不同的功能;插件協議是溝通主體程序和插件對象的橋梁,是插件對象能夠被主體辨識的關鍵所在;插件對象包含了一系列基本的功能模塊,比如:放大、縮小、全圖、漫游等等。插件式GIS框架通過模塊化的思想,大大提高了承鋼地理信息管理系統的可重用性和可集成性,從而為系統的日后維護奠定了基礎。
接下來,我們將插件式GIS框架在承鋼地理信息管理系統中的具體應用簡單介紹如下:
1、主體程序的設計
首先,啟動vs2008,新建一個WinFonn類型的C#項目,項目名稱定義為CGGIS.MainGIS,并將Forml窗體修改為MamGIS窗體,即主體程序的主窗體。主體程序MainGIS將在Load方法中,在程序被加載時完成插件的加載和解析工作,包括ICommand、ITool、IMenuDef、IToolBarDef對象等等。
2、插件協議的設計
插件協議是主體程序和插件對象之間進行交流的平臺,是實現插件式GIS框架設計的關鍵所在。主體程序需要將多個屬性傳遞給插件對象,我們通過IApplication接口來進行描述而這些屬性。根據設計需要,我們定義了如下幾種接口:ICommand、ITool、IltemDef.ITooBarDef、IMenuDefo
(1)ICommand接口在框架UI層上表現為一個命令按鈕,本接口定義了10個屬性、2個方法。包括這個Command要顯示的圖片、文字、名稱等等。OnClick( )是當用戶點擊該Command的時所觸發的事件,OnCreate( )是當實例化繼承ICommand這個接口的類的時候需要調用的方法。
(2)ITool接口在框架UI層上表現為一個工具按鈕,它繼承自ICommand接口,只是又曾加了一個Cursor屬性和9個方法。這些方法大多是與鍵盤或鼠標有關的事件,比如OnMouseDown( )、OnMouseMove( )、OnKeyDown( )等。
(3)IltemDef.IToolBarDef接口都代表了UI層上的一個工具條,用于存儲ICommand、ITool對象。
(4)IMenuDef接口代表UI層上的一個菜單欄,共有3個屬性、1個方法。
3、插件對象的設計
本系統中設計了多種不同類型的插件,簡單介紹如下:
(1)ICommand類型插件AddData,它的UI對象被放在MainTool工具條上,主要實現數據添加功能。
(2)ITool類型插件Pan,用來實現地圖平移功能。
(3)ITool類型插件ZoomIn/ZoomOut,用來實現地圖放大、縮小功能。
三、結束語
本文以ArcGIS Engine為例,從插件式GIS框架開發的基本方式介紹了其在承鋼地理信息系統中的簡單應用,充分體現了其功能模塊的重用性和獨立性,為承鋼地理信息系統的建設提供了強有力的技術保障。