1.3.2 組件式GIS
組件式軟件技術(shù)已經(jīng)成為當(dāng)今軟件技術(shù)的潮流之一,為了適應(yīng)這種技術(shù)潮流,GIS軟件象其他軟件一樣,已經(jīng)或正在發(fā)生著革命性的變化,即由過去廠家提供了全部系統(tǒng)或者具有二次開發(fā)功能的軟件,過渡到提供組件由用戶自己再開發(fā)的方向上來。無疑,組件式GIS技術(shù)將給整個(gè)GIS技術(shù)體系和應(yīng)用模式帶來巨大影響。
組件式GIS
基本思想是把GIS的各大功能模塊劃分為幾個(gè)控件,每個(gè)控件完成不同的功能。各個(gè)GIS控件之間,以及GIS控件與其它非GIS控件之間,可以方便地通過可視化的軟件開發(fā)工具集成起來,形成最終的GIS應(yīng)用??丶缤欢迅魇礁鳂拥姆e木,他們分別實(shí)現(xiàn)不同的功能(包括GIS和非GIS功能),根據(jù)需要把實(shí)現(xiàn)各種功能的 “積木”搭建起來,就構(gòu)成應(yīng)用系統(tǒng)。
組件式GIS系統(tǒng)的特點(diǎn)
(1) 小巧靈活、價(jià)格便宜
(2)無須專門GIS開發(fā)語言,直接嵌入MIS開發(fā)工具
(3) 開發(fā)簡捷
把GIS的功能適當(dāng)抽象,以組件形式供開發(fā)者使用,將會(huì)帶來許多傳統(tǒng)GIS工具無法比擬的優(yōu)點(diǎn)。
(1) 小巧靈活、價(jià)格便宜 由于傳統(tǒng)GIS結(jié)構(gòu)的封閉性,往往使得軟件本身變得越來越龐大,不同系統(tǒng)的交互性差,系統(tǒng)的開發(fā)難度大。在組件模型下,各組件都集中地實(shí)現(xiàn)與自己最緊密相關(guān)的系統(tǒng)功能,用戶可以根據(jù)實(shí)際需要選擇所需控件,最大限度地降低了用戶的經(jīng)濟(jì)負(fù)擔(dān)。。組件化的GIS平臺(tái)
集中提供空間數(shù)據(jù)管理能力,并且能以靈活的方式與數(shù)據(jù)庫系統(tǒng)連接。在保證功能的前提下,系統(tǒng)表現(xiàn)得小巧靈活,而其價(jià)格僅是傳統(tǒng)GIS開發(fā)工具的十分之一,甚至更少。這樣,用戶便能以較好的性能價(jià)格比獲得或開發(fā)GIS應(yīng)用系統(tǒng)。
(2) 無須專門GIS開發(fā)語言,直接嵌入MIS開發(fā)工具 傳統(tǒng)GIS往往具有獨(dú)立的二次開發(fā)語言,對(duì)用戶和應(yīng)用開發(fā)者而言存在學(xué)習(xí)上的負(fù)擔(dān)。而且使用系統(tǒng)所提供的二次開發(fā)語言,開發(fā)往往受到限制,難以處理復(fù)雜問題。而組件式GIS建立在嚴(yán)格的標(biāo)準(zhǔn)之上,不需要額外的GIS二次開發(fā)語言,只需實(shí)現(xiàn)GIS的基本功能函數(shù),按照Microsoft的ActiveX控件標(biāo)準(zhǔn)開發(fā)接口。這有利于減輕GIS軟件開發(fā)者的負(fù)擔(dān),而且增強(qiáng)了GIS軟件的可擴(kuò)展性。GIS應(yīng)用開發(fā)者,不必掌握額外的GIS開發(fā)語言,只需熟悉基于Windows平臺(tái)的通用集成開發(fā)環(huán)境,以及GIS各個(gè)控件的屬性、方法和事件,就可以完成應(yīng)用系統(tǒng)的開發(fā)和集成。目前,可供選擇的開發(fā)環(huán)境很多,如Visual C++、Visual Basic、Visual FoxPro、Borland C++、Delphi、C++ Builder以及Power Builder等都可直接成為GIS或GMIS的優(yōu)秀開發(fā)工具,它們各自的優(yōu)點(diǎn)都能夠得到充分發(fā)揮。這與傳統(tǒng)GIS專門性開發(fā)環(huán)境相比,是一種質(zhì)的飛躍。 (3)、 強(qiáng)大的GIS功能
新的GIS組件都是基于32位系統(tǒng)平臺(tái)的,采用InProc直接調(diào)用形式,所以無論是管理大數(shù)據(jù)的能力還是處理速度方面均不比傳統(tǒng)GIS軟件遜色。小小的GIS組件完全能提供拼接、裁剪、疊合、緩沖區(qū)等空間處理能力和豐富的空間查詢與分析能力。 (4)、 開發(fā)簡捷 由于GIS組件可以直接嵌入MIS開發(fā)工具中,對(duì)于廣大開發(fā)人員來講,就可以自由選用他們熟悉的開發(fā)工具。而且,GIS組件提供的API形式非常接近MIS工具的模式,開發(fā)人員可以像管理數(shù)據(jù)庫表一樣熟練地管理地圖等空間數(shù)據(jù),無須對(duì)開發(fā)人員進(jìn)行特殊的培訓(xùn)。在GIS或GMIS的開發(fā)過程中,開發(fā)人員的素質(zhì)與熟練程度是十分重要的因素。這將使大量的MIS開發(fā)人員能夠較快地過渡到GIS或GMIS的開發(fā)工作中,從而大大加速GIS的發(fā)展。
(5) 更加大眾化 組件式技術(shù)已經(jīng)成為業(yè)界標(biāo)準(zhǔn),用戶可以象使用其他ActiveX控件一樣使用GIS控件,使非專業(yè)的普通用戶也能夠開發(fā)和集成GIS應(yīng)用系統(tǒng),推動(dòng)了GIS大眾化進(jìn)程。組件式GIS 的出現(xiàn)使GIS不僅是專家們的專業(yè)分析工具,同時(shí)也成為普通用戶對(duì)地理相關(guān)數(shù)據(jù)進(jìn)行管理的的可視化工具。
(6)組件式GIS開發(fā)平臺(tái)的結(jié)構(gòu) 組件式GIS開發(fā)平臺(tái)通??稍O(shè)計(jì)為三級(jí)結(jié)構(gòu):
基礎(chǔ)組件
面向空間數(shù)據(jù)管理,提供基本的交互過程,并能以靈活的方式與數(shù)據(jù)庫系統(tǒng)連接;
高級(jí)通用組件
由基礎(chǔ)組件構(gòu)造而成,面向通用功能,簡化用戶開發(fā)過程,如顯示工具組件、選擇工具組件、編輯工具組件、屬性瀏覽器組件等等。它們之間的協(xié)同控制消息都被封裝起來。這級(jí)組件經(jīng)過封裝后,使二次開發(fā)更為簡單。如一個(gè)編輯查詢系統(tǒng),若用基礎(chǔ)平臺(tái)開發(fā),需要編寫大量的代碼,而利用高級(jí)通用組件,只需幾句程序就夠了。面向通用功能;
行業(yè)性組件
抽象出行業(yè)應(yīng)用的特定算法,固化到組件中,進(jìn)一步加速開發(fā)過程。以GPS監(jiān)控為例。對(duì)于GPS應(yīng)用,除了需要地圖顯示、信息查詢等一般的GIS功能外,還需要特定的應(yīng)用功能,如動(dòng)態(tài)目標(biāo)顯示、目標(biāo)鎖定、軌跡顯示等。這些GPS行業(yè)性應(yīng)用功能組件被封裝起來后,開發(fā)者的工作就可簡化為設(shè)置顯示目標(biāo)的圖例、軌跡顯示的顏色、鎖定的目標(biāo),以及調(diào)用、接受數(shù)據(jù)的方法等。
GIS組件的構(gòu)成
GIS軟件的模型包含若干功能單元:
空間數(shù)據(jù)獲取
坐標(biāo)轉(zhuǎn)換
圖形編輯
數(shù)據(jù)存儲(chǔ)
數(shù)據(jù)查詢
數(shù)據(jù)分析
制圖表示 ……
可以想象要把這些所有的功能放在一個(gè)控件中幾乎是不可能的,即使實(shí)現(xiàn)也會(huì)帶來系統(tǒng)效率上的低下。一般可以認(rèn)為GIS構(gòu)件的設(shè)計(jì)主要遵循應(yīng)用領(lǐng)域地需求。例如ESRI地MapObjects就是以空間數(shù)據(jù)訪問、查詢、制圖為主要目標(biāo)的GIS構(gòu)件。
評(píng)論