亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于插件式GIS的國(guó)土資源管理信息系統(tǒng)開發(fā)

        2015-02-19 03:48:46黃翔濤劉義海吳學(xué)饒
        地理空間信息 2015年6期
        關(guān)鍵詞:通信協(xié)議插件控件

        黃翔濤,劉義海,吳學(xué)饒

        (1.江西理工大學(xué) 建筑與測(cè)繪工程學(xué)院,江西 贛州 341000)

        國(guó)土資源管理信息系統(tǒng)作為“數(shù)字城市”的一個(gè)重要分支,有著廣闊的發(fā)展空間及應(yīng)用前景。根據(jù)系統(tǒng)總體功能的要求,國(guó)土資源管理信息系統(tǒng)主要由城鄉(xiāng)一體化地籍管理子系統(tǒng)、土地儲(chǔ)備管理子系統(tǒng)、礦產(chǎn)資源管理子系統(tǒng)、地質(zhì)災(zāi)害管理子系統(tǒng)、土地利用規(guī)劃管理子系統(tǒng)、地籍?dāng)?shù)據(jù)處理子系統(tǒng)、系統(tǒng)維護(hù)管理子系統(tǒng)組成。這些子系統(tǒng)的共同特點(diǎn)是都需要具備基本的GIS功能。如果采用當(dāng)前流行的組件開發(fā)方式,存在以下問題:①各子系統(tǒng)相同的功能模塊,需要重復(fù)開發(fā),采用復(fù)制粘貼方式進(jìn)行開發(fā),效率低;②系統(tǒng)耦合性強(qiáng),系統(tǒng)的后期擴(kuò)展及更新困難;③靈活性不強(qiáng),界面風(fēng)格不統(tǒng)一,不能很好地滿足國(guó)土資源局各部門間的需求[1]?;谝陨蠁栴},本文提出了基于插件式的應(yīng)用框架技術(shù),并在.NET開發(fā)環(huán)境下,采用C#語(yǔ)言結(jié)合ArcEngine 10.0組件開發(fā)包,把各子系統(tǒng)都具有的功能模塊以插件的形式封裝成一個(gè)更高級(jí)別的組件,應(yīng)用到各子系統(tǒng)中,從而避免重復(fù)開發(fā)。

        1 插件技術(shù)

        插件技術(shù)是在軟件的設(shè)計(jì)與開發(fā)過(guò)程中,應(yīng)用程序主要由宿主程序和插件對(duì)象2部分組成[2],二者之間可以通過(guò)一定的通信協(xié)議(即接口)進(jìn)行交互,宿主程序可以對(duì)實(shí)現(xiàn)了自身接口的插件對(duì)象進(jìn)行調(diào)用,插件對(duì)象同樣也可以在遵守宿主程序通信協(xié)議的基礎(chǔ)上實(shí)現(xiàn)自己的邏輯,并添加到宿主程序。二者之間既相互依賴,又相互獨(dú)立,宿主程序可以獨(dú)立于插件對(duì)象而存在,插件對(duì)象的實(shí)現(xiàn)需要依賴于宿主程序。因此,開發(fā)過(guò)程中,系統(tǒng)的更新及維護(hù)可以在避免修改宿主程序的情況下,通過(guò)對(duì)插件對(duì)象的調(diào)整或增加達(dá)到目的,從而降低了系統(tǒng)的耦合性。

        1.1 插件技術(shù)實(shí)現(xiàn)方案

        當(dāng)前插件技術(shù)的實(shí)現(xiàn)主要有基于動(dòng)態(tài)鏈接庫(kù)DLL技術(shù)、基于組件對(duì)象模型COM技術(shù)以及基于.NET反射技術(shù)等3種技術(shù)方案[3]。本文采用基于.NET反射技術(shù),其實(shí)現(xiàn)的方式是通過(guò).NET的反射機(jī)制和接口技術(shù),程序在反射機(jī)制下獲取動(dòng)態(tài)加載的插件中的類型信息,并借助于接口技術(shù)來(lái)判斷所獲取的類型信息是否滿足宿主程序的要求,如果滿足,宿主程序?qū)⑹褂脤?duì)象動(dòng)態(tài)技術(shù)在內(nèi)存中生成一個(gè)插件對(duì)象并添加到插件池中。

        1.2 插件技術(shù)原理

        插件技術(shù)的本質(zhì)是在不修改宿主程序的基礎(chǔ)上,通過(guò)對(duì)插件對(duì)象的修改或增加對(duì)軟件進(jìn)行更新與維護(hù),開發(fā)人員便可以在遵循插件接口標(biāo)準(zhǔn)的情況下進(jìn)行開發(fā)。插件式應(yīng)用框架中各個(gè)模塊是以插件的形式相互獨(dú)立存在的,主要由3個(gè)部分組成[4],如圖1所示。

        圖1 插件式框架結(jié)構(gòu)圖

        1)宿主程序,即系統(tǒng)的主體部分,是各個(gè)插件依附的對(duì)象,主要負(fù)責(zé)加載與卸載插件對(duì)象、UI的生成及動(dòng)作交互、協(xié)調(diào)各插件間的協(xié)同工作。宿主程序主要由系統(tǒng)主界面、插件引擎、通信協(xié)議3部分組成。系統(tǒng)主界面主要以可執(zhí)行文件的形式存在,負(fù)責(zé)對(duì)插件對(duì)象的解析并生成各種UI,并將生成的UI對(duì)象進(jìn)行委托事件的關(guān)聯(lián);插件引擎主要負(fù)責(zé)為宿主程序解析插件對(duì)象,并將這些解析的對(duì)象放到插件容器里供系統(tǒng)主界面進(jìn)行調(diào)用;通信協(xié)議即宿主程序與插件對(duì)象之間的一種通信標(biāo)準(zhǔn),它規(guī)定只有實(shí)現(xiàn)該通信協(xié)議接口的插件對(duì)象才能被宿主程序所調(diào)用,并與宿主程序進(jìn)行交互。

        2)框架插件,主要起到系統(tǒng)功能的承載作用。

        3)附加的組件庫(kù),在整個(gè)系統(tǒng)起到輔助的作用,如提供一些公共的函數(shù)方法、圖層的遍歷、打開或創(chuàng)建工作空間等。

        2 基于插件式的系統(tǒng)設(shè)計(jì)

        2.1 系統(tǒng)開發(fā)環(huán)境和平臺(tái)選擇

        1)GIS平臺(tái):ArcSDE 10.0、ArcEngine 10.0;

        2)數(shù)據(jù)庫(kù):Oracle11g;

        3)開發(fā)工具:VS2010;

        4)其他軟件:DotNetBar 9.2。

        2.2 通信協(xié)議的接口設(shè)計(jì)

        在通信協(xié)議的接口設(shè)計(jì)中,主要定義了3個(gè)接口:宿主程序接口IApplication、插件對(duì)象接口IPlugin、插件框架接口IPluginService(圖2)。

        圖2 通信協(xié)議接口設(shè)計(jì)圖

        1)宿主程序接口IApplication,定義一個(gè)類Application實(shí)現(xiàn)該接口,Application對(duì)象是插件系統(tǒng)中的核心對(duì)象,代表應(yīng)用程序本身,插件對(duì)象可以通過(guò)這個(gè)對(duì)象訪問到其定義的一些成員變量,如系統(tǒng)主界面菜單RibbonControlMain、主地圖控件MapControlMain、制圖控件PageLayoutControl、圖層控件TOCControlLayers、狀態(tài)欄BarStatus等,是宿主程序與插件對(duì)象進(jìn)行交互的關(guān)鍵。

        2)插件接口IPlugin,所有實(shí)現(xiàn)了該接口的插件都可以加載到宿主程序,主要定義了插件對(duì)象的基本信息,如定義了全局對(duì)象Applicaiont,用于與宿主程序進(jìn)行交互,以及描述Description、名稱Name、類型Type以及插件加載方法Load和卸載方法Unload。

        3)插件框架接口IPluginService,是所有插件對(duì)象的容器,主要定義了解析并獲取插件對(duì)象的方法,如加載插件到宿主程序的方法LoadPlugin、從宿主程序卸載插件的方法RemovePlugin等。

        2.3 基于插件的系統(tǒng)功能框架設(shè)計(jì)

        本文設(shè)計(jì)主要采用組件式開發(fā)模式,該模式的基本思想是,將大而復(fù)雜或有相同功能模塊的軟件應(yīng)用分成一系列可先行實(shí)現(xiàn)、易于開發(fā)、理解和調(diào)整的單元組件[5]。以GIS二次開發(fā)平臺(tái)ArcEngine開發(fā)組件為例,其提供了地圖顯示控件AxMapControl、制圖控件AxPageLayoutControl、圖層控件AxTOCControl以及工具欄控件AxToolbarContrl等各類通用的控件。正是使用了組件式開發(fā)技術(shù),使得在GIS系統(tǒng)開發(fā)的過(guò)程中,通過(guò)直接把這些控件拖放到窗體上就可以實(shí)現(xiàn)簡(jiǎn)單的GIS功能[6]。基于此,本文把國(guó)土資源管理信息系統(tǒng)中各個(gè)子系統(tǒng)的公共功能(如地圖的瀏覽、查詢、制圖、空間分析等)提取出來(lái)以插件的形式封裝在一起,相當(dāng)于一個(gè)更高級(jí)別的組件。在各個(gè)子系統(tǒng)需要這些功能模塊時(shí),只要把相應(yīng)的插件生成的DLL放到指定的文件夾里就可以實(shí)現(xiàn)目的,從而避免了不必要的重復(fù)開發(fā)工作,提高了開發(fā)效率。

        3 國(guó)土資源管理系統(tǒng)應(yīng)用實(shí)例

        3.1 實(shí)例概述

        本系統(tǒng)以土地權(quán)屬、土地利用規(guī)劃、礦產(chǎn)資源分布等數(shù)據(jù)為例,構(gòu)建了某市國(guó)土資源管理信息系統(tǒng)的功能框架(圖3),并通過(guò)上述3個(gè)通信協(xié)議接口實(shí)例化插件,構(gòu)建插件集。在系統(tǒng)啟動(dòng)時(shí),宿主程序從指定位置讀取并解析所有的插件對(duì)象后存放到插件集合PluginCollection中,通過(guò).NET的反射技術(shù),把解析出來(lái)的插件對(duì)象以UI(主要是按鈕或右鍵菜單)的形式加載到系統(tǒng)主界面的相應(yīng)位置,并注冊(cè)相應(yīng)的按鈕或右鍵菜單事件。在用戶管理窗口中,管理員可以選擇指定的用戶,并在權(quán)限列表中勾選功能模塊,啟動(dòng)時(shí)系統(tǒng)會(huì)根據(jù)所勾選的功能模塊加載插件(圖4),以滿足國(guó)土資源局各個(gè)部門所需要的功能需求,而不必針對(duì)不同部門的功能需求開發(fā)相應(yīng)的系統(tǒng)。

        圖3 系統(tǒng)功能框架圖

        圖4 各子系統(tǒng)主界面圖

        3.2 功能舉例

        基于前面的分析,下面選擇地圖瀏覽模塊進(jìn)行插件的開發(fā)。

        1)新建一個(gè)類庫(kù)MapBrowse,并定義一個(gè)類ClsPluginMapBrowse,繼承通信協(xié)議接口IPlugin。

        2)在ClsPluginMapBrowse重寫IPlugin中的Load方法,在該方法中主要是做2個(gè)工作:①實(shí)例化按鈕或右鍵菜單并添加到宿主程序的主界面,并注冊(cè)相應(yīng)的事件;②通過(guò)全局對(duì)象Application獲取系統(tǒng)主窗體、地圖、圖層等對(duì)象,以實(shí)現(xiàn)相應(yīng)的操作。部分代碼如圖5所示。

        4 結(jié) 語(yǔ)

        通過(guò)插件的方式把國(guó)土資源管理信息系統(tǒng)各子系統(tǒng)中公共功能提取出來(lái),使得各子系統(tǒng)可以方便地獲取這些插件,很好地滿足了國(guó)土各部門間的功能需求。實(shí)踐表明,采用插件式技術(shù)開發(fā)大型的GIS系統(tǒng)有以下幾點(diǎn)優(yōu)勢(shì):避免了相同功能的重復(fù)開發(fā),提高了工作效率;在系統(tǒng)后期的更新與維護(hù)中,只需要增加或更新插件就可以達(dá)到目的;在系統(tǒng)的開發(fā)過(guò)程中,開發(fā)人員之間的開發(fā)工作相互獨(dú)立,方便項(xiàng)目的管理。

        圖5 代碼截圖

        [1]盧學(xué)鶴,余光輝,溫小榮,等.基于插件技術(shù)的森林資源GIS的設(shè)計(jì)與實(shí)現(xiàn)[J].南京林業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2009,33(1):127-130

        [2]劉勇,岳建偉.基于.NET的插件式GIS應(yīng)用框架設(shè)計(jì)與實(shí)現(xiàn)[J].地理信息世界,2008(4):82-86

        [3]余叔同,鄭粉莉,張鵬.基于插件技術(shù)和GIS的坡面土壤侵蝕模擬系統(tǒng)[J].地理科學(xué),2010,30(3):441-445

        [4]李祉.基于插件式框架的農(nóng)業(yè)氣象災(zāi)害服務(wù)保障系統(tǒng)的實(shí)現(xiàn)[D].北京:中國(guó)地質(zhì)大學(xué),2012

        [5]黃信望,盧遠(yuǎn).基于GIS的水生態(tài)健康評(píng)價(jià)系統(tǒng)開發(fā)[J].地理空間息,2013,11(4):67-69

        [6]張俊,吳健平.插件技術(shù)在ArcGISEngine開發(fā)中的應(yīng)用[J].測(cè)繪與空間地理信息,2009,32(3):128-130

        [7]范強(qiáng).插件式GIS在地質(zhì)災(zāi)害信息管理系統(tǒng)中的應(yīng)用[D].成都:成都理工大學(xué),2010

        [8]蔣波濤.插件式GIS應(yīng)用框架的設(shè)計(jì)與實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2008

        [9]蘭小機(jī),劉德兒,魏瑞娟.基于ArcObjects與C#.NET的GIS應(yīng)用開發(fā)[M].北京:冶金工業(yè)出版社,2011

        猜你喜歡
        通信協(xié)議插件控件
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計(jì)
        基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計(jì)與研究
        基于NS-3的PLC多頻通信協(xié)議仿真平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)
        MapWindowGIS插件機(jī)制及應(yīng)用
        基于Revit MEP的插件制作探討
        RSSP-I、RSSP-Ⅱ及SAHARA三種安全通信協(xié)議實(shí)現(xiàn)技術(shù)簡(jiǎn)介
        就這樣玩會(huì)VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        火力加強(qiáng)再加強(qiáng)IE插件三劍客
        亚洲色欲在线播放一区| 风流少妇一区二区三区91| 青青草手机在线观看视频在线观看| 二区免费在线视频观看| 国产性自爱拍偷在在线播放| 一区二区三区人妻无码| 日韩内射美女人妻一区二区三区| 亚洲人成无码网站久久99热国产| 高潮社区51视频在线观看| 亚洲国产精品午夜一区| 亚洲av五月天一区二区| 日韩精品无码一区二区三区四区 | 美女脱了内裤张开腿让男人桶网站| 国产精品成人观看视频| 亚洲尺码电影av久久| 久久久久亚洲av成人网址 | 国产麻豆一区二区三区在线播放| 国产愉拍91九色国产愉拍| 精品国产一区二区三区av天堂| 国产精品一区二区av麻豆| 国产精品18久久久| 国产成人亚洲精品无码h在线| 亚洲欧美日韩专区一| 亚洲A∨日韩Av最新在线| 特级黄色大片性久久久| 久久久精品人妻一区二区三区四区| 国产做国产爱免费视频| 好男人日本社区www| 亚洲男人精品| 久久亚洲精品成人av观看| а天堂中文地址在线| 成人无码免费一区二区三区| a级国产精品片在线观看| 成人全视频在线观看免费播放| 国产午夜在线视频观看| 成 人 免费 在线电影| 日本巨大的奶头在线观看| 色综合久久久久综合999| 中文字幕东京热一区二区人妻少妇| 无码一区二区三区中文字幕| 狠狠噜天天噜日日噜|