999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

GIS開發中可重用組件資源庫的設計

2011-09-27 10:42:52恒,劉
地理空間信息 2011年1期
關鍵詞:數據庫用戶功能

張 恒,劉 群

(四川建筑職業技術學院,四川德陽 618000)

GIS開發中可重用組件資源庫的設計

張 恒,劉 群

(四川建筑職業技術學院,四川德陽 618000)

傳統的 GIS系統開發多采用結構化的設計思想,對于不同 GIS信息系統的建設,需要重復去設計、開發相關模塊,開發效率較低。將組件重用思想應用到GIS開發實踐中,總結了組件、組件重用思想及組件開發流程,探討了GIS開發中可重用接口的設計思路,包括:空間數據庫連接和圖層加載接口設計,數據查詢和維護接口設計,空間分析接口設計。應用實踐表明,基于可重用組件的GIS系統開發,可以高效、快速地開發出更穩定的應用系統,顯著降低開發成本。

組件式地理信息系統;基于組件開發;重用

隨著組件和中間件技術(如 COM、CORBA、JavaBeans)的普及,越來越多的GIS開發者采用面向對象的設計模式(如 UML)、面向對象的編程語言(如C#、VB.NET)和COMGIS組件來開發GIS應用系統。在系統開發中,COMGIS組件僅提供對空間數據進行輸入、存儲、處理、分析、輸出等功能的基類、控件和接口,為了開發出完整實用的應用系統,GIS開發者還應充分分析這些控件間的內在聯系,對其進行二次集成和深加工,開發出新的可重用模塊。因此,深入分析應用型GIS系統的通用功能,設計并開發可重用組件,這無疑是GIS開發者需要深刻思考的問題。本文以空間分析組件的設計和開發為例,介紹應用型GIS系統開發中可重用組件的設計方法,供GIS開發人員參考。

1 組件及組件重用

組件(Component),是一些獨立代碼的封裝體,提供一定的功能。組件具有高度封裝、可復用、穩定性好、易維護升級等特點[1,2,4]。COM組件,是按照COM規范編寫的,以動態鏈接庫(ActiveX DLL)或對象類別擴充組件(OCX)等形

式發布的可執行二進制代碼,它為建立可伸縮的信息系統提供了極大的便利。隨著組件化軟件開發技術的流行和日趨成熟,GIS軟件公司在組件框架的約束下,結合GIS行業的特點和應用,推出了面向行業應用的COMGIS組件,使組件粒度進一步細化和行業化。COMGIS組件的基本思路是:把GIS的各種功能模塊劃分為不同類型的控件,每個控件完成各自相應的功能。COMGIS存在的目的是向外界(應用框架、其他組件或者最終用戶)提供GIS數據顯示、分析、處理等功能的專業服務。可見,COMGIS根據組件規范的要求,封裝了GIS專業功能,實現了相應的接口,GIS開發人員需要進一步將COMGIS組件、開發語言和數據庫集成起來,開發出滿足行業需求的應用系統,其實質是將各類異構系統提供的組件重組。

軟件重用是指通過可重用組件來組裝、集成、構建和更新軟件系統[1-2]。組件的重用性依賴于組件的粒度大小、實現功能、通用性、組合方式、準確性、容錯性等因素。組件重用的粒度可大可小,小到普通子函數、接口、類庫的重用,大到整個軟件體系的重用[1,4],這些重用提供了一套解決某類共性問題的思路和參考代碼,使開發者無需重復制定方案,只需做適當的修改和完善。組件重用的目標是讓開發者充分利用現有的組件組裝應用程序,而不需要考慮這些組件是如何開發的。可見,利用可重用組件來開發GIS應用軟件,開發者將從繁重、瑣碎的底層重復代碼編程中得以解脫,不僅極大地減少了軟件開發的工作量,而且顯著降低了軟件開發的成本,提高了軟件的質量。

2 組件開發流程

組件開發流程如下:1)組件抽象與設計;2)組件編程實現;3)組件功能測試;4)組件評價與更新。組件的抽象是按照業務邏輯來抽象組件的功能,為了便于表達和理解,可將組件實現的功能抽象為業務邏輯圖,并使用邏輯圖之間的聯系來表達組件之間的關系。組件的設計包括組件接口的抽象、定義、多態性表達、實現代碼和接口之間的關聯表達。通常,組件由若干功能接口組成,接口是一組相關操作的集合,通常用于實現某項功能或說明某個行為。組件接口的實現需要充分利用現有的各種組件(COMGIS組件和非GIS組件),定制、開發出滿足應用需求的功能函數,即按照功能將各類異構組件重組和集成。在應用系統開發時,COM對象通過接口與外界交互,客戶程序是利用接口提供的成員函數來獲得組件對象提供的服務。因此,接口的設計是組件設計的核心工作,接口的通用性決定了組件的可重用能力。用戶在設計組件時,應注意組件設計的粒度不易過大,設計的每一類組件最好能實現某一類相似的應用請求;而組件接口的設計應簡單實用,同時具有可擴充性。設計的組件通常封裝為類,用戶可通過對象聲明及實例化類的方式使用,通過多態或繼承機制進行功能擴展。組件測試是指通過模擬測試項目或程序,對組件接口的功能、容錯性等進行測試,及時發現問題并改正。組件評價與更新是指依據組件的重復利用率、業務邏輯及功能,進一步改進、完善和升級組件。

3 GIS中空間分析組件的設計

GIS應用系統的主要特點是對空間數據的處理和分析能力,而常見COMGIS組件工具僅提供了基本的空間數據操作和分析功能,GIS開發者需要充分利用這些基本功能,通過組合和繼承的方式進行功能擴充[1,2,4],從而開發出可供不同GIS系統使用的通用接口函數。本文以COMGIS組件工具--SuperMap Objects為例來說明可重用空間分析組件的設計思路。

3.1 空間數據庫連接和圖層加載接口

數據庫連接接口的設計既可針對特定的數據庫開發相應的接口,也可將用戶對不同類型數據庫的操作以多態的形式進行封裝。該接口的核心思想如下:編寫數據庫連接子函數,按照用戶輸入的信息構建字符串連接參數并連接數據庫。如果連接失敗,則給出提示信息;如果連接成功,則通過SuperMap Objects提供的工作空間接口打開空間數據源,加載空間數據集并設置圖層的顯示風格。在系統退出時,通過定制的子函數斷開應用系統和數據庫的連接,釋放系統資源。

相關接口函數的設計如下:1)屬性數據庫連接接口,通過開發 ConnectDB(字符串連接參數)函數連接各類DBMS;2)空間數據庫連接接口,開發OpenDB(數據庫服務器名稱、數據庫名稱、數據庫別名、用戶名、密碼)函數,返回值類型為布爾型,表示空間數據庫連接是否成功。其中,關鍵語句如下:采用Super-Workspace.OpenDataSourceEx(數據源文件全路徑名、數據源標識名、數據源引擎類型、是否只讀、是否事務、是否獨占、是否加密、密碼字符串)方法來打開空間數據源。用戶可通過編寫 OpenDB函數的多態性接口,打開存放于各種媒介中(如 SDB文件、各類DBMS)的空間數據源;3)圖層加載及顯示風格定義接口,通過編寫 LoadDataset(圖層名稱、顯示風格參數)函數實現,可通過LoadDataset接口的多態性,加載不同類型的圖層(如點、線、面、文本數據集)并設置其風格。關鍵語句如下:采用 SuperMap.Layers. AddDataset(加載的數據集,是否放置到最頂層)方法加載數據集,通過soLayer對象設置圖層的各種專題顯示風格;4)斷開數據庫連接接口,開發CloseAll()函數實現,該函數應關閉數據庫,斷開用戶對空間數據庫的連接,釋放地圖窗口、工作空間等SuperMapObjects組件占用的系統資源。

3.2 數據查詢和維護接口

數據查詢和維護功能是GIS應用系統中頻繁使用的關鍵功能,查詢的目的是按照某些過濾條件查找出用戶關心的信息(如空間分布、描述性屬性等),并對其進行定位、瀏覽、維護(修改、刪除、更新)、統計分析等操作。在數據查詢和維護接口設計中,組件重用思想主要體現在以下的應用中:1)界面和框架的重用,即針對不同的行業應用,定制類似的查詢界面和窗體布局,其區別在于不同的應用中后臺數據庫表單、字段和用戶輸入的查詢信息不同;2)SQL操作子函數的重用,即編寫LoadQueryData(SQL語句、數據填充容器)函數,根據用戶選擇或輸入的查詢條件,枚舉所有的SQL語句,然后調用該函數,將滿足SQL條件的記錄加載到數據填充容器中。具體應用時可分為兩種情況:即對純屬性表單的操作和對空間表單的操作。前者可通過輸入規范的SQL語句或存儲過程,可以是查詢、修改、刪除等語句,然后調用該函數執行相應的操作,并返回執行的結果;后者可通過soDatasetVector. Query(查詢條件、是否查詢空間數據、字段列表、查詢選項)查詢滿足條件的記錄集,而在數據更新時,應找到某個空間實體對應的唯一標示號(即"Sm ID"號),然后更新空間表中的屬性字段(一般只更新空間表中用戶自定義的屬性字段,空間表中系統自動生成的字段不能修改)。

此外,用戶還需開發事務控制函數來保障數據的完整性、一致性和并發操作控制。即在執行SQL語句之前,需要開啟事務,正確執行SQL語句之后,通過提交事務完成對表單的更新;如果在更新的時候出現了任何異常,應給出提示并回退到更新前的狀態。

3.3 空間分析接口

在開發實踐中,空間分析接口涉及的函數較多,用戶可根據SuperMap Objects提供的對象靈活組合,定制功能實用的接口函數,本文以下列典型空間接口函數為例進行說明。

1)緩沖區分析函數:開發AddBufferToMap(數據集類型、類型參數、緩沖區半徑)函數,在SuperMap的TrackingLayer(臨時層)上添加單個點、線、面實體的緩沖區;2)動態標注函數:開發LabelLayer(圖層、標注字段、標注風格)函數,使用戶采用某一標注字段和風格對某一圖層進行標注;3)地圖定位函數:開發LocateMapObject(地圖控件、圖層名稱、定位條件)函數,使用戶可根據定位條件快速地定位某個圖層上滿足條件的空間數據;4)路徑分析接口函數,開發FindShortPath(起始節點號、終止節點號)函數,其關鍵函數為SoNetworkAnalyst對象提供的FindPath、FindPath2等方法。開發 MarkSelectedPoint(x坐標,y坐標)函數,在地圖上實時標注用戶選擇的拓撲節點;5)屬性統計函數,開發StatAttribute(記錄集、統計字段、排序字段)函數,按照某個字段統計指定記錄集中的信息并排序;6)三維分析函數,主要采用Super3D控件提供的方法組合來實現常見的三維分析功能,如三維場景生成、三維圖形基本操作、水淹模擬、三維圖片輸出等功能。

4結 語

組件重用技術和面向對象技術集成產生的COMGIS正在引導著GIS應用系統開發的方向,推動著GIS軟件的系統集成化和應用大眾化。GIS開發者根據COMGIS提供的基本空間分析組件,將其靈活組合或繼承發展而創建用戶自定義的組件庫和接口函數,進而提供給不同的GIS系統使用,這無疑是快速開發高效、安全、健壯的GIS應用系統的有效途徑。因此,將組件重用思想進一步應用于GIS系統的研發,從開發者的角度研究GIS和非GIS通用接口的實現,從最小粒度研究組件重用,將具有深遠的意義和極具潛力的應用前景。

[1] Katharine Whitehead.基于組件開發[M].北京:人民郵電出版社,2003

[2]DON BOX(著),潘愛民(譯).COM本質論[M].北京:中國電力出版社,2001

[3] 吳信才,鄭貴洲,謝忠,等.地理信息系統的設計與實現[M].北京:電子工業出版社,2002

[4] 張文江,陳秀萬,李京,等.基于COM組件技術的GIS空間模型庫研究[J].中國圖像圖形學報,2003,8(1):110-114

[5] Diomidis Spinellis(著),趙學良(譯).代碼閱讀方法與實踐[M].北京:清華大學出版社,2004

[6] 張恒.基于COMGIS的工程圖文信息管理系統的設計與實現[D].成都:西南交通大學,2007

[7] 李志毅,趙政.軟件復用與COM及.NET組件技術[J].微處理機,2006(6):57-60

Design of the Reuse Component Resources in the GIS Development

by Zhang Heng veloped by adopting

The traditional GIS application is mostly destructured design thought,needs repetition o f the design,develops related module,the efficiency of development is lower.So this paper introduced the reusable com ponents to the GIS application development practice,summed up the component,component reuse thought,component development process, discussed the reuse interface design thoughts of GIS development,including: spatial database interoperation and layer loading interface design,data query and maintenance interface design,spatial analysis interface design.Practice shows that the GIS system development based on reusable components can be highly efficient and rapid developed amore stable system,the development costs can be significant reduced.

COMGIS,Com ponent-Based Development(CBD),reuse(Page:36)

P208

B

1672-4623(2011)01-0036-03

2009-06-08

張恒,碩士,講師,研究方向為地理信息系統開發及應用。

猜你喜歡
數據庫用戶功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
關于非首都功能疏解的幾點思考
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 精品福利视频网| 国产美女在线观看| 就去色综合| 久久无码av三级| 99久久无色码中文字幕| 日韩精品亚洲精品第一页| 凹凸精品免费精品视频| 日本国产精品| 亚洲精品卡2卡3卡4卡5卡区| 在线观看亚洲精品福利片| 一区二区三区成人| 国产精品网址你懂的| 狠狠干欧美| 亚洲a级毛片| 国产网站免费观看| 国产网站免费看| 国产男人的天堂| 精品国产乱码久久久久久一区二区| jizz国产在线| 91精品小视频| 国产97视频在线观看| 免费女人18毛片a级毛片视频| 中文字幕有乳无码| 精品国产成人国产在线| 中文字幕 日韩 欧美| 99re66精品视频在线观看| 亚洲免费三区| 国产另类视频| 欧美激情综合| 国产欧美精品午夜在线播放| 萌白酱国产一区二区| 成年女人a毛片免费视频| 美女无遮挡拍拍拍免费视频| 一级毛片在线免费看| 色有码无码视频| 2018日日摸夜夜添狠狠躁| 97视频在线观看免费视频| 欧美一区二区精品久久久| 国产亚洲欧美另类一区二区| 色婷婷成人| 黄色网址免费在线| 国产乱人伦AV在线A| 精品少妇人妻av无码久久| 国产黄在线免费观看| 欧美午夜性视频| 黄色网页在线播放| 国产美女精品在线| 亚洲最新地址| 中文字幕在线观看日本| 国内a级毛片| 欧美另类图片视频无弹跳第一页| 尤物国产在线| 青青草久久伊人| 国产欧美日韩在线一区| 国产亚洲精品精品精品| 青草娱乐极品免费视频| a级高清毛片| 久久国产av麻豆| 99re热精品视频中文字幕不卡| 在线视频一区二区三区不卡| 日韩在线播放中文字幕| 久久精品亚洲热综合一区二区| 亚洲 欧美 偷自乱 图片| 久久人午夜亚洲精品无码区| 免费国产福利| 一区二区午夜| 草逼视频国产| 亚洲三级a| 久久夜色精品国产嚕嚕亚洲av| 99久视频| 91在线激情在线观看| 亚洲va视频| 国产一级毛片网站| 日本不卡在线视频| 国产精品男人的天堂| jizz亚洲高清在线观看| 2021天堂在线亚洲精品专区| 欧美人人干| 99青青青精品视频在线| 青草国产在线视频| 影音先锋丝袜制服| 欧美一级在线看|