本站小編為你精心準備了GIS的水生態評估體系的研發參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
流域水生態健康評價領域的GIS軟件應用程序可分為GIS功能部分和非GIS功能部分。GIS功能部分一般包括地圖的瀏覽、屬性查詢、空間查詢、空間分析、空間制圖、專題圖輸出、水生態評價、水污染模擬等;非GIS功能包括系統的登錄功能、權限管理功能、數據庫管理功能、數據統計功能、數據備份與恢復功能、系統界面管理功能、系統維護功能。對于流域水生態健康評價領域來說,功能要求相當明確,如涉及到GIS地圖可視化功能,就需要提供地圖瀏覽、屬性查詢、空間查詢、制圖輸出等功能。在GIS二次開發平臺中,通過添加地圖控件、制圖控件、圖層控制控件、地圖工具欄及其工具,實現圖層控制控件和地圖工具欄跟地圖控件與制圖控件的捆綁,實現圖層屬性數據的操作、地圖控件數據的操作等。
2粗粒度組件式GIS開發模式
該模式是將通用、底層的功能集成為一個組件,這個組件不僅能滿足簡單的功能需求,而且能進行更深層次的開發,在組件的基礎上實現更高級的功能。
2.1GIS功能組件構建
在流域水生態健康評價中,需要使用到GIS功能的模塊包括基礎地圖數據的管理、水生態健康的評價、水污染模擬等。這些模塊的共同點是都需要最基本的GIS操作功能,如地圖的瀏覽、屬性查詢、空間查詢、專題圖制作、制圖輸出等,將這些功能封裝集成為一個組件模塊,就可應用到多個應用程序中,避免重復開發。對于不是通用的GIS功能來說,通過提取它們底層的共同點,構建通用功能模型、實現動態增減功能和修改原來功能的接口。通過接口可以實現組件的二次開發,使得組件能重復利用,提高了組件的通用性和靈活性。
2.2非GIS功能組件構建
在非GIS功能中,登錄模塊程序和數據庫管理模塊可以成為另一個組件,不同的數據庫的操作結構可能不一樣,可以通過動態配置數據庫服務器、修改配置文件等方式,來適應不同的數據庫服務器。登錄所需要的信息存儲在配置文件中,這些信息經過加密處理,鏈接數據庫的功能采用統一接口實現,這樣有利于動態修改數據庫服務器鏈接。組件構建邏輯結構如圖1所示。圖1組件重構邏輯結構圖從圖1中我們可以看到,將簡單通用的功能集成以后,系統邏輯結構變得更加清晰,功能需求與實現更為明確,程序調試更為簡單。最重要的一點是一旦組件構建完成以后,可以將組件移植到類似的系統中去,從而節省了時間和經費開銷。通常在涉及到GIS的應用程序中,對GIS功能的需求大致相同,如國土、水利、氣象等,所以構建一個功能完善,運行穩定,可二次開發的組件模塊能為開發GIS應用程度帶來極大的便利。
3基于插件式框架的系統設計
插件式應用程序的宿主系統開發和功能開發都具有COM規范,功能插件通過安裝,可插入宿主系統中,實現功能模塊的“即插即用”。從GIS開發的角度講,插件模塊可共享,有利于系統更快速地開發,降低了開發費用;從用戶使用角度講,用戶可以根據需求選購功能插件,擴展系統的功能,實現系統的自定義。插件式系統總體的設計流程是搭建應用程序框架、設計通信契約、設計插件容器、構建插件、動態加載插件。組件式開發思想主要應用于插件式系統構架中插件程序對象的設計上,通過構建一個通用、穩定、可再次開發的組件使得插件程序能夠快速開發,方便后期維護。應用程序中涉及GIS功能需求的插件都是基于GIS功能組件再次開發所得。
3.1系統框架宿主程序設計
宿主系統可以是新開發的系統,也可以是一個已有的系統,插件式框架的宿主程序是應用插件的管理者。宿主程序與插件之間還需要進行交互,以便于雙方進行雙向交流。宿主程序設計的好壞直接影響整個應用程序的構建結果,所以宿主程序的設計需要綜合考慮整個系統的特性,包括插件程序的可識別性、可擴展性、可移除性和應用程序的穩定性。
3.2系統界面設計
插件式系統設計的界面需要隨著系統插件的多少來自動增減界面UI元素。為了使界面UI元素在增加和刪除時不會影響界面的美觀和其他功能,界面UI元素與插件之間必須一一對應,界面UI元素之間必須各自獨立,插件與插件之間需要相互獨立。本次系統界面設計如圖2所示。該系統界面設計分為4欄:標題欄、功能欄、視圖操作欄和狀態欄。其中功能欄由功能按鈕組成,按鈕的多少由系統基礎功能和插件程序對象數量決定,采用自適應方法布局在界面上,可隨插件對象的增減而自動增減。視圖區域由可切換頁面構成,每一個頁面對應一個功能按鈕。頁面內容由插件程序提供,宿主程序只是提供了頁面布局用的切換模版和插件程序中集成頁面顯示內容的用戶控件。用戶控件中集成有用于操作用戶視圖的工具欄,工具欄實現可增減工具和拖放停靠,主界面上的功能按鈕只是提供為宿主程序加載插件程序的入口,不具備操作插件程序提供的功能,從而使得系統的功能分層明確,宿主程序界面無需知道插件程序內部操作。應用程序初次運行的時候,宿主程序通過讀取指定路徑中的插件程序,調用插件程序的接口,獲取插件程序中的用戶控件,將它增加到宿主程序主角們的視圖區域中。通過判斷插件程序的類型和數量,在主界面生成相應的UI按鈕,當點擊按鈕時,才獲取插件對象的視圖區域控件。這樣不論功能增加或減少,系統的界面架構均保持原有的風格,簡潔美觀。
3.3系統通信設計
宿主程序與插件程序對象之間的交互操作稱為通信,其主要的通信契約為接口。接口可以被看作是一種定義了必要的方法和屬性的類型,因此宿主程序就可以通過這種契約來生成具體的UI對象,并對外界操作作出反應。宿主程序必須聲明自己有什么樣的功能可被插件調用,且插件必須符合什么條件才能被宿主程序使用;反之,插件也需要知道宿主程序提供給了什么樣的功能和屬性,才能將自己融入宿主程序的結構中。
3.4應用程序插件設計與使用
插件是一種遵循一定規范的API或按COM接口編寫出來的模塊化程序,它能夠“插入”到主應用系統中,對軟件功能進行加強。應用程序插件對象是框架舞臺上的主角和功能擴展的執行者。框架的合理性和有效性是插件對象構件的基礎,反之,插件能有效地檢驗框架的合理性和有效性。對基于COM規范開發的軟件來說,插件可以是動態鏈接庫(DLL)。插件的使用相當簡單,將編譯生成的DLL文件直接復制到應用程序指定插件獲取的路徑中便可,無需通過打包和安裝,也不需要注冊表信息。
4結語
本文通過構建一個通用的GIS功能組件,完成了流域水生態健康評價應用程序的開發。對于需要應用到GIS功能的應用程序來說,這種組件能實現重復利用,提高應用程序開發效率。但由于是針對GIS應用領域所構建的組件,不適用于沒有GIS功能需求的應用軟件系統,所以這種組件的通用性相對低一點。在插件架構中,采用的是宿主程序直接與插件程序通信,這使得插件程序移植功能差,宿主可識別的插件類型少。但從軟件開發者的角度來說,可以重復利用這種已構建的系統框架和組件,開發類似的軟件系統。
作者:黃信望盧遠單位:廣西師范學院資源與環境科學學院