馮金順 孫哲
(1 中國電子科技集團公司第五十四研究所河北石家莊 050081)
(2 海軍駐石家莊地區(qū)通信軍事代表室河北石家莊 050081)
GIS統(tǒng)一接口軟件模塊的設計與實現(xiàn)
馮金順1孫哲2
(1 中國電子科技集團公司第五十四研究所河北石家莊 050081)
(2 海軍駐石家莊地區(qū)通信軍事代表室河北石家莊 050081)
隨著信息化建設的推進,地理信息系統(tǒng)在網管系統(tǒng)中的地位越來越重要。但是不同項目對地理信息系統(tǒng)有著不同的使用需求,同一套軟件框架需要進行大量的適應性修改,才能同時適應不同的地理信息系統(tǒng)。針對兩套地理信息系統(tǒng)進行了統(tǒng)一的接口封裝,使軟件框架對于不同的地理信息系統(tǒng)可以采用同樣的接口調用,從而降低了軟件開發(fā)的復雜度,提高了開發(fā)效率。
MapInfo MGIS 網絡管理 地理信息系統(tǒng)
近年來,隨著信息化建設的快速發(fā)展,越來越多的應用系統(tǒng)將地理信息系統(tǒng)融合進來,進而提升系統(tǒng)的易用性,豐富系統(tǒng)的信息含量。從日常使用的網上購物和地圖導航,到關系人民生命財產安全的防火防汛,甚至關系到國家安全的軍事裝備,都一步步深入地將自身功能與地理信息系統(tǒng)緊密聯(lián)系到一起,從而給應用系統(tǒng)的使用帶來了極大的方便[1]。
網絡管理系統(tǒng)屬于很早就與地理信息系統(tǒng)結合,使用較為成熟的一種應用系統(tǒng),幾乎所有的網絡管理系統(tǒng)都離不開地理信息系統(tǒng)的支撐。但是目前開發(fā)基于地理信息系統(tǒng)的網管應用面臨著以下2種情況:
①用戶需求不同:應用系統(tǒng)需基于不同的平臺運行,比如網管系統(tǒng)在軍用和民用這2種環(huán)境下需分別基于軍用地理信息系統(tǒng)和民用地理信息系統(tǒng)運行;
于地理信息系統(tǒng)的版本變更會帶來開發(fā)接口變更:然而目前的地理信息系統(tǒng)沒有一個公共的標準和統(tǒng)一的接口,作為應用系統(tǒng)的開發(fā)者,需要根據不同地理信息系統(tǒng)分別設計專用的解決方案,同時當需要對地理信息系統(tǒng)進行升級時必須對應用程序進行調整,給應用程序開發(fā)和維護帶來了很大的不便,不僅降低了開發(fā)效率,而且應用程序模塊也很難實現(xiàn)重用。
為了能夠更好地適應這種形勢,以典型民用地理信息系統(tǒng)MapInfo和軍事地理信息系統(tǒng)(Military Geography Information System,MGIS)為例,設計了一套接口,并對以上2種地理信息系統(tǒng)進行了封裝,實現(xiàn)統(tǒng)一調用,最終實現(xiàn)了在不更改應用程序的情況下,使應用程序在2種地理信息系統(tǒng)之間進行切換。
地理信息系統(tǒng)(Geographic Information System,GIS)是一門綜合性學科,結合地理學、地圖學、遙感和計算機科學,已經廣泛地應用于不同的領域,適用于輸入、存儲、查詢、分析和顯示地理數據的計算機系統(tǒng)。GIS是一種基于計算機的工具,可以對空間信息進行分析和處理,GIS技術把地圖這種獨特的視覺化效果和地理分析功能與一般的數據庫操作(例如查詢和統(tǒng)計分析等)集成在一起,從而使其在廣泛的公眾和個人企事業(yè)單位中的數據分析處理、預測結果和輔助決策等方面具有實用價值[1,2]。
MapInfo是美國MapInfo公司的桌面地理信息系統(tǒng)軟件,是一種數據可視化和信息地圖化的桌面解決方案。本文使用的是基于MapInfo的MapX產品,是MapInfo公司產品中的地圖繪制控件,為開發(fā)人員提供了一個快速和易用的地圖化組件,可以輕松地添加強大的地圖繪制功能。MapX繼承了MapInfo的地圖數據格式,可以在應用程序中方便地插入各種地圖,輕松實現(xiàn)地理空間數據的可視化,完成空間查詢、地理編碼和專題分析等豐富的地圖信息系統(tǒng)功能[3]。
MGIS是GIS技術在現(xiàn)代軍事中的應用,是一種在計算機硬件支持下,運用系統(tǒng)工程和信息科學的理論和方法,動態(tài)地、綜合地獲取、管理和分析作戰(zhàn)區(qū)域地理環(huán)境及軍事專題屬性信息,服務于作戰(zhàn)環(huán)境分析和輔助指揮決策的現(xiàn)代軍事應用系統(tǒng),是現(xiàn)代高科技條件下網絡管理自動化的重要工作平臺。本文采用的MGIS是國內開發(fā)的一套基于軍事地圖數據的地理信息系統(tǒng),對外提供了詳細和友好的二次開發(fā)接口,能夠方便的進行二次開發(fā),基于地圖顯示環(huán)境進行被管平臺的位置、狀態(tài)及其綜合信息的分析和展示[4,5]。
3.1 設計原則
根據目前多樣化的地理信息系統(tǒng)使用需求,基于方便開發(fā)人員開發(fā)和軟件重用的設計思路,在保證完成網管系統(tǒng)對地理信息系統(tǒng)基本功能需求的前提下,設計一套功能統(tǒng)一和接口統(tǒng)一的支持多個地理信息系統(tǒng)平臺的功能模塊。
在設計和實現(xiàn)軟件框架對地理信息系統(tǒng)進行調用時,不需要考慮最終使用的是哪一種地理信息系統(tǒng),通過替換程序執(zhí)行目錄下的動態(tài)鏈接庫文件,使程序完成對不同地理信息系統(tǒng)的調用。由于采用了統(tǒng)一的接口,程序設計時不用考慮各種地理信息系統(tǒng)的差異性,提高了應用程序的開發(fā)效率和應用程序軟件模塊的重用度。
3.2 軟件模塊設計
設計的GIS統(tǒng)一接口軟件模塊用于實現(xiàn)不同地理信息系統(tǒng)的統(tǒng)一接口封裝,生成對外統(tǒng)一接口的軟件模塊。該模塊在軟件架構中處于上層應用程序和下層地理信息系統(tǒng)之間,向上提供GIS調用接口和地圖服務,向下通過調用各地理信息系統(tǒng)的二次開發(fā)接口實現(xiàn)GIS統(tǒng)一接口軟件模塊的功能。GIS統(tǒng)一接口軟件模塊結構組成如圖1所示。
圖1 GIS的統(tǒng)一接口軟件模塊結構圖
在進行軟件接口封裝的過程中,首先根據當前網管應用的地理信息系統(tǒng)使用需求,抽象出統(tǒng)一的接口GISInterface,然后分別通過MapX和MGIS的二次開發(fā)包實現(xiàn)GISInterface接口,生成不同的動態(tài)鏈接庫。
3.3 統(tǒng)一接口設計
基于以上模塊設計,首先對網管應用的地理信息系統(tǒng)使用需求進行分析。根據以往項目的開發(fā)經驗抽象出統(tǒng)一的接口,其主要內容如表1所示。
表1 主要接口函數
3.4 統(tǒng)一接口實現(xiàn)
分別基于MapX和MGIS的二次開發(fā)接口,采用C#語言,實現(xiàn)了表1中的各個接口,生成了分別基于MapX和MGIS這2種地理信息系統(tǒng)的統(tǒng)一接口的動態(tài)鏈接庫[3,6]。
根據生成的動態(tài)鏈接庫實現(xiàn)了基于這2種地理信息系統(tǒng)的網絡管理程序。由于基于這2種地理信息系統(tǒng)封裝的動態(tài)鏈接庫采用統(tǒng)一的接口,所以該網絡管理應用程序在進行地理信息系統(tǒng)操作時,只需要在涉及地理信息系統(tǒng)操作時調用相應的接口函數即可,無需考慮調用的是哪一種地理信息系統(tǒng)。如果將基于MapX實現(xiàn)的動態(tài)鏈接庫放到程序執(zhí)行目錄下,網管軟件啟動時,網管軟件的GIS呈現(xiàn)則是基于MapInfo地理信息系統(tǒng)的;如果將基于MGIS實現(xiàn)的動態(tài)鏈接庫放到程序執(zhí)行目錄下,網管軟件啟動時,網管軟件的GIS呈現(xiàn)則是基于MGIS的,就網絡管理程序在使用統(tǒng)一接口實現(xiàn)地理信息系統(tǒng)調用的流程進行如下介紹,調用流程如圖2所示。
圖2 統(tǒng)一接口GIS軟件模塊調用流程圖
基于統(tǒng)一接口軟件模塊的地圖應用軟件調用流程可分為以下幾個步驟,如下:
①在使用地圖之前調用initilizeMap接口對地理信息系統(tǒng)環(huán)境進行初始化;
于根據使用需要,調用openMap接口打開地圖或者調用selectMap接口選擇地圖,完成打開地圖的操作并顯示地圖;
③打開地圖后,即可在此基礎上調用不同的接口函數完成各項地圖操作(包括地圖放大縮小(zoom)、漫游(roamMap)、設置顯示圖層(showMapLayer)),在調用各個的接口函數時程序內部通過觸發(fā)地圖更新事件最終完成地圖控件的更新;
④當需要對當前地圖狀態(tài)(如顯示位置、縮放比例和顯示圖層等信息)進行保存時,調用saveMapInfo接口對當前地圖信息進行保存;
⑤在不需要進行地圖顯示時,調用closeMap接口關閉地圖。
通過對MapInfo和MGIS的研究和分析,對這2種地理信息系統(tǒng)按照統(tǒng)一接口進行了封裝,實現(xiàn)了GIS統(tǒng)一接口軟件模塊,并基于此軟件模塊實現(xiàn)了如圖2調用流程的網絡管理應用程序。該應用程序可以在2種地理信息系統(tǒng)之間進行切換而不需要更改調用程序代碼,只需要將軟件模塊中相應的動態(tài)鏈接庫放置到執(zhí)行目錄中即可。
隨著地理信息系統(tǒng)的逐步發(fā)展,網絡管理系統(tǒng)開發(fā)需要針對用戶不同的地理信息系統(tǒng)使用需求。如果要使一套基于某地理信息系統(tǒng)的應用程序框架能夠應用于其他地理信息系統(tǒng),往往需要投入不小的人力對原有應用程序進行適應性改造,而且開發(fā)周期長,設計復雜。提出了一種基于GIS統(tǒng)一接口軟件模塊的設計思路,并通過2種地理信息系統(tǒng)的二次開發(fā)接口實現(xiàn)了統(tǒng)一接口的軟件模塊。
該GIS統(tǒng)一接口軟件模塊具有跨2個地理信息系統(tǒng)的通用性,實現(xiàn)了基于GIS平臺的應用軟件對2個地理信息系統(tǒng)的無差別調用,避免了為適應多個地理信息系統(tǒng)進行重復開發(fā)帶來的浪費,提高了基于地理信息系統(tǒng)的應用程序模塊的通用性和應用程序的開發(fā)效率;同時當需要對地理信息系統(tǒng)進行升級時,可以盡可能地將地理信息系統(tǒng)的改動和差異性屏蔽在GIS統(tǒng)一接口軟件模塊內,避免和減少對應用程序的影響。
[1]湯國安.地理信息系統(tǒng)[M].北京:科學出版社,2010.
[2]朱恩利,李建輝,等.地理信息系統(tǒng)基礎及應用教程[M].北京:機械工業(yè)出版社,2004.
[3]柏寶華.基于MapX技術的地理信息系統(tǒng)開發(fā)實例[M].北京:清華大學出版社,2009.
[4]陳兆峰,李勇.軍事地理信息系統(tǒng)在數字化戰(zhàn)場中的應用[J].測繪信息與工程,2008,33(4):31-32.
[5]白鵬飛,劉理華,邢云.面向網絡的軍事地理信息系統(tǒng)設計[J].地理空間信息,2010(1):107-108.
[6]王瑞民.MapInfo5.X使用指南[M].北京:中國鐵道出版社, 2000.
Design and Implementation of Unified Interface Software Module Based on GIS System
FENG Jin-shun1SUN Zhe2
(1 The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China;)
(2 Military Communication Representative Office of PLA Navy Stationed in Shijiazhuang Region,Shijiazhuang Hebei 050081,China)
With the advancement of informationization construction,the position of geographic information system(GIS)is more and more important in the network management system.However,the application requirements of GIS are different in different programs,in order to adapt to different GISs at the same time,the same software framework needs a large number of modification for adaptability.In this paper,the unified interface package for two sets of GISs is implemented,so that the software framework can adapt to different GISs with the same interfaces,in order to reduce the complexity of software development and improve the development efficiency.
MapInfo;MGIS;network management;geographic information system
TP391.41
A
1008-1739(2014)10-59-3
定稿日期:2014-04-26