• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于GIS的水生態(tài)健康評價系統(tǒng)開發(fā)

      2013-09-28 07:42:10黃信望
      地理空間信息 2013年4期
      關(guān)鍵詞:插件控件視圖

      黃信望,盧 遠

      (1.廣西師范學(xué)院 資源與環(huán)境科學(xué)學(xué)院,廣西 南寧 530001)

      市場上銷售的GIS軟件平臺多數(shù)是通用軟件平臺,不具備針對特定領(lǐng)域的綜合信息集成以及特殊功能,迫切需要開發(fā)應(yīng)用領(lǐng)域的GIS應(yīng)用程序。軟件商家提供的二次開發(fā)平臺組件受眾面廣,能很好地實現(xiàn)了組件式開發(fā)的特點,大大提高了GIS軟件開發(fā)的效率。而針對特定領(lǐng)域的GIS應(yīng)用程序(如大氣污染模擬系統(tǒng)、水質(zhì)污染模擬系統(tǒng)、流域水生態(tài)健康評估系統(tǒng)等)之間存在著許多相同或者相似的功能,從組件的思想來看,這些功能無需再重新構(gòu)件,可提取這些功能構(gòu)建為粒度更大的組件,以實現(xiàn)快速重構(gòu)同類軟件系統(tǒng)的目的。

      1 組件式GIS開發(fā)技術(shù)

      組件式GIS開發(fā)的基本思想是把GIS的各大功能模塊劃分為若干控件,每個控件完成不同的功能,控件之間以及GIS控件與其他非GIS控件之間,可以通過可視化的軟件開發(fā)工具集成起來,形成最終的GIS應(yīng)用程序。以GIS二次開發(fā)平臺ArcEngine來說,它提供了各類通用控件,包括用于地圖顯示的AxMapControl控件、用于版面制圖的AxPageLayoutControl控件、用于顯示三維視圖的AxSceneControl控件和AxGlobeControl控件,用于圖層控制的AxTOCControl控件和工具條控件AxToolbarControl等。這些控件能像“積木”一樣通過快速堆積,成為一個簡單的GIS應(yīng)用程序,而不需要編寫任何一句代碼,使得GIS軟件開發(fā)更加簡便而節(jié)約成本[1-3]。

      2 基于GIS的流域水生態(tài)管理特點

      流域水生態(tài)健康評價領(lǐng)域的GIS軟件應(yīng)用程序可分為GIS功能部分和非GIS功能部分。GIS功能部分一般包括地圖的瀏覽、屬性查詢、空間查詢、空間分析、空間制圖、專題圖輸出、水生態(tài)評價、水污染模擬等;非GIS功能包括系統(tǒng)的登錄功能、權(quán)限管理功能、數(shù)據(jù)庫管理功能、數(shù)據(jù)統(tǒng)計功能、數(shù)據(jù)備份與恢復(fù)功能、系統(tǒng)界面管理功能、系統(tǒng)維護功能。對于流域水生態(tài)健康評價領(lǐng)域來說,功能要求相當(dāng)明確,如涉及到GIS地圖可視化功能,就需要提供地圖瀏覽、屬性查詢、空間查詢、制圖輸出等功能。在GIS二次開發(fā)平臺中,通過添加地圖控件、制圖控件、圖層控制控件、地圖工具欄及其工具,實現(xiàn)圖層控制控件和地圖工具欄跟地圖控件與制圖控件的捆綁,實現(xiàn)圖層屬性數(shù)據(jù)的操作、地圖控件數(shù)據(jù)的操作等。

      3 粗粒度組件式GIS開發(fā)模式

      該模式是將通用、底層的功能集成為一個組件,這個組件不僅能滿足簡單的功能需求,而且能進行更深層次的開發(fā),在組件的基礎(chǔ)上實現(xiàn)更高級的功能。

      3.1 GIS功能組件構(gòu)建

      在流域水生態(tài)健康評價中,需要使用到GIS功能的模塊包括基礎(chǔ)地圖數(shù)據(jù)的管理、水生態(tài)健康的評價、水污染模擬等。這些模塊的共同點是都需要最基本的GIS操作功能,如地圖的瀏覽、屬性查詢、空間查詢、專題圖制作、制圖輸出等,將這些功能封裝集成為一個組件模塊,就可應(yīng)用到多個應(yīng)用程序中,避免重復(fù)開發(fā)。對于不是通用的GIS功能來說,通過提取它們底層的共同點,構(gòu)建通用功能模型、實現(xiàn)動態(tài)增減功能和修改原來功能的接口。通過接口可以實現(xiàn)組件的二次開發(fā),使得組件能重復(fù)利用,提高了組件的通用性和靈活性。

      3.2 非GIS功能組件構(gòu)建

      在非GIS功能中,登錄模塊程序和數(shù)據(jù)庫管理模塊可以成為另一個組件,不同的數(shù)據(jù)庫的操作結(jié)構(gòu)可能不一樣,可以通過動態(tài)配置數(shù)據(jù)庫服務(wù)器、修改配置文件等方式,來適應(yīng)不同的數(shù)據(jù)庫服務(wù)器。登錄所需要的信息存儲在配置文件中,這些信息經(jīng)過加密處理,鏈接數(shù)據(jù)庫的功能采用統(tǒng)一接口實現(xiàn),這樣有利于動態(tài)修改數(shù)據(jù)庫服務(wù)器鏈接。組件構(gòu)建邏輯結(jié)構(gòu)如圖1所示。

      圖1 組件重構(gòu)邏輯結(jié)構(gòu)圖

      從圖1中我們可以看到,將簡單通用的功能集成以后,系統(tǒng)邏輯結(jié)構(gòu)變得更加清晰,功能需求與實現(xiàn)更為明確,程序調(diào)試更為簡單。最重要的一點是一旦組件構(gòu)建完成以后,可以將組件移植到類似的系統(tǒng)中去,從而節(jié)省了時間和經(jīng)費開銷。通常在涉及到GIS的應(yīng)用程序中,對GIS功能的需求大致相同,如國土、水利、氣象等,所以構(gòu)建一個功能完善,運行穩(wěn)定,可二次開發(fā)的組件模塊能為開發(fā)GIS應(yīng)用程度帶來極大的便利。

      4 基于插件式框架的系統(tǒng)設(shè)計

      插件式應(yīng)用程序的宿主系統(tǒng)開發(fā)和功能開發(fā)都具有COM規(guī)范,功能插件通過安裝,可插入宿主系統(tǒng)中,實現(xiàn)功能模塊的“即插即用”。從GIS開發(fā)的角度講,插件模塊可共享,有利于系統(tǒng)更快速地開發(fā),降低了開發(fā)費用;從用戶使用角度講,用戶可以根據(jù)需求選購功能插件,擴展系統(tǒng)的功能,實現(xiàn)系統(tǒng)的自定義[3]。插件式系統(tǒng)總體的設(shè)計流程是搭建應(yīng)用程序框架、設(shè)計通信契約、設(shè)計插件容器、構(gòu)建插件、動態(tài)加載插件。組件式開發(fā)思想主要應(yīng)用于插件式系統(tǒng)構(gòu)架中插件程序?qū)ο蟮脑O(shè)計上,通過構(gòu)建一個通用、穩(wěn)定、可再次開發(fā)的組件使得插件程序能夠快速開發(fā),方便后期維護。應(yīng)用程序中涉及GIS功能需求的插件都是基于GIS功能組件再次開發(fā)所得。

      4.1 系統(tǒng)框架宿主程序設(shè)計

      宿主系統(tǒng)可以是新開發(fā)的系統(tǒng),也可以是一個已有的系統(tǒng),插件式框架的宿主程序是應(yīng)用插件的管理者。宿主程序與插件之間還需要進行交互,以便于雙方進行雙向交流[4]。宿主程序設(shè)計的好壞直接影響整個應(yīng)用程序的構(gòu)建結(jié)果,所以宿主程序的設(shè)計需要綜合考慮整個系統(tǒng)的特性,包括插件程序的可識別性、可擴展性、可移除性和應(yīng)用程序的穩(wěn)定性。

      4.2 系統(tǒng)界面設(shè)計

      插件式系統(tǒng)設(shè)計的界面需要隨著系統(tǒng)插件的多少來自動增減界面UI元素。為了使界面UI元素在增加和刪除時不會影響界面的美觀和其他功能,界面UI元素與插件之間必須一一對應(yīng),界面UI元素之間必須各自獨立,插件與插件之間需要相互獨立。本次系統(tǒng)界面設(shè)計如圖2所示。

      該系統(tǒng)界面設(shè)計分為4欄:標(biāo)題欄、功能欄、視圖操作欄和狀態(tài)欄。其中功能欄由功能按鈕組成,按鈕的多少由系統(tǒng)基礎(chǔ)功能和插件程序?qū)ο髷?shù)量決定,采用自適應(yīng)方法布局在界面上,可隨插件對象的增減而自動增減。視圖區(qū)域由可切換頁面構(gòu)成,每一個頁面對應(yīng)一個功能按鈕。頁面內(nèi)容由插件程序提供,宿主程序只是提供了頁面布局用的切換模版和插件程序中集成頁面顯示內(nèi)容的用戶控件。用戶控件中集成有用于操作用戶視圖的工具欄,工具欄實現(xiàn)可增減工具和拖放??浚鹘缑嫔系墓δ馨粹o只是提供為宿主程序加載插件程序的入口,不具備操作插件程序提供的功能,從而使得系統(tǒng)的功能分層明確,宿主程序界面無需知道插件程序內(nèi)部操作。應(yīng)用程序初次運行的時候,宿主程序通過讀取指定路徑中的插件程序,調(diào)用插件程序的接口,獲取插件程序中的用戶控件,將它增加到宿主程序主角們的視圖區(qū)域中。通過判斷插件程序的類型和數(shù)量,在主界面生成相應(yīng)的UI按鈕,當(dāng)點擊按鈕時,才獲取插件對象的視圖區(qū)域控件。這樣不論功能增加或減少,系統(tǒng)的界面架構(gòu)均保持原有的風(fēng)格,簡潔美觀。

      圖2 系統(tǒng)界面設(shè)計圖

      4.3 系統(tǒng)通信設(shè)計

      宿主程序與插件程序?qū)ο笾g的交互操作稱為通信,其主要的通信契約為接口。接口可以被看作是一種定義了必要的方法和屬性的類型,因此宿主程序就可以通過這種契約來生成具體的UI對象,并對外界操作作出反應(yīng)。宿主程序必須聲明自己有什么樣的功能可被插件調(diào)用,且插件必須符合什么條件才能被宿主程序使用;反之,插件也需要知道宿主程序提供給了什么樣的功能和屬性,才能將自己融入宿主程序的結(jié)構(gòu)中[4]。

      4.4 應(yīng)用程序插件設(shè)計與使用

      插件是一種遵循一定規(guī)范的API或按COM接口編寫出來的模塊化程序,它能夠“插入”到主應(yīng)用系統(tǒng)中,對軟件功能進行加強[5]。應(yīng)用程序插件對象是框架舞臺上的主角和功能擴展的執(zhí)行者??蚣艿暮侠硇院陀行允遣寮ο髽?gòu)件的基礎(chǔ),反之,插件能有效地檢驗框架的合理性和有效性。對基于COM規(guī)范開發(fā)的軟件來說,插件可以是動態(tài)鏈接庫(DLL)。插件的使用相當(dāng)簡單,將編譯生成的DLL文件直接復(fù)制到應(yīng)用程序指定插件獲取的路徑中便可,無需通過打包和安裝,也不需要注冊表信息[5-7]。

      5 結(jié) 語

      本文通過構(gòu)建一個通用的GIS功能組件,完成了流域水生態(tài)健康評價應(yīng)用程序的開發(fā)。對于需要應(yīng)用到GIS功能的應(yīng)用程序來說,這種組件能實現(xiàn)重復(fù)利用,提高應(yīng)用程序開發(fā)效率。但由于是針對GIS應(yīng)用領(lǐng)域所構(gòu)建的組件,不適用于沒有GIS功能需求的應(yīng)用軟件系統(tǒng),所以這種組件的通用性相對低一點。在插件架構(gòu)中,采用的是宿主程序直接與插件程序通信,這使得插件程序移植功能差,宿主可識別的插件類型少。但從軟件開發(fā)者的角度來說,可以重復(fù)利用這種已構(gòu)建的系統(tǒng)框架和組件,開發(fā)類似的軟件系統(tǒng)。

      [1]徐強.基于組件的軟件開發(fā)模式[D].北京: 北京工業(yè)大學(xué),2000

      [2]宋關(guān)福, 鐘耳順.組件式地理信息研究與開發(fā)[J].中國圖像圖形學(xué)報,1998,3(4): 313-316

      [3]蘭小機, 劉德兒.ArcObjects GIS應(yīng)用開發(fā)[M]贛州: 江西理工大學(xué)出版社,2006

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

      [5]崔修濤, 吳健平, 張偉鋒.插件式GIS的開發(fā)[J].華東師范大學(xué)學(xué)報:自然科學(xué)版, 2005(4):53-60

      [6]陳方明, 陳奇.基于插件思想的可重用軟件設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計, 2005, 26(1): 172-173

      [7]高慧萍, 呂俊.插件式開發(fā)技術(shù)研究與實現(xiàn)[J].計算機工程與設(shè)計, 2009,30(16) : 3 805-3 807

      猜你喜歡
      插件控件視圖
      自編插件完善App Inventor與樂高機器人通信
      電子制作(2019年22期)2020-01-14 03:16:34
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      5.3 視圖與投影
      視圖
      Y—20重型運輸機多視圖
      SA2型76毫米車載高炮多視圖
      MapWindowGIS插件機制及應(yīng)用
      基于Revit MEP的插件制作探討
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      火力加強再加強IE插件三劍客
      河东区| 黄山市| 临清市| 沙田区| 息烽县| 东平县| 波密县| 青田县| 金堂县| 铜川市| 北辰区| 邵东县| 桂林市| 嘉荫县| 荔浦县| 夏邑县| 斗六市| 含山县| 长顺县| 澜沧| 台安县| 宽城| 馆陶县| 西乡县| 噶尔县| 饶阳县| 陆河县| 雅安市| 普定县| 交城县| 武冈市| 孝感市| 桦南县| 馆陶县| 焦作市| 阳泉市| 台北县| 万全县| 项城市| 六盘水市| 平顶山市|