李 均,周世財(cái),鄭 剛
(1.廣東省建筑科學(xué)研究院,廣東廣州510500;2.孝感市水文水資源勘測(cè)局,湖北孝感432000;3.武漢鐵路局收入稽查處,湖北武漢430071)
組件式GIS技術(shù)及應(yīng)用淺析
李 均1,周世財(cái)2,鄭 剛3
(1.廣東省建筑科學(xué)研究院,廣東廣州510500;2.孝感市水文水資源勘測(cè)局,湖北孝感432000;3.武漢鐵路局收入稽查處,湖北武漢430071)
闡述了組件式GIS開(kāi)發(fā)原理、意義及系統(tǒng)的特點(diǎn),介紹組件式GIS軟件的功能及其結(jié)構(gòu),并給出了利用MapGISIMS開(kāi)發(fā)時(shí)為實(shí)現(xiàn)某功能而編寫(xiě)的代碼實(shí)例,說(shuō)明采用該技術(shù)和.NET構(gòu)架實(shí)現(xiàn)WebGIS應(yīng)用是一個(gè)比較好的解決方案。關(guān)鍵詞:GIS;WebGIS;組件式GIS;MapGIS
組件式軟件技術(shù)已經(jīng)成為當(dāng)今軟件技術(shù)的潮流之一,為了適應(yīng)這種技術(shù)潮流,GIS軟件像其他軟件一樣,正在發(fā)生著革命性的變化,即由過(guò)去廠家提供了全部系統(tǒng)或者具有二次開(kāi)發(fā)功能的軟件,過(guò)渡到提供組件由用戶自己再開(kāi)發(fā)的方向上來(lái)。無(wú)疑,組件式GIS技術(shù)將給整個(gè)GIS技術(shù)體系和應(yīng)用模式帶來(lái)巨大影響。
組件技術(shù)是一種二進(jìn)制標(biāo)準(zhǔn),即可執(zhí)行文件標(biāo)準(zhǔn)。它使得操作系統(tǒng)中的進(jìn)程能夠操縱、共享和訪問(wèn)由其他進(jìn)程所提供的方法和數(shù)據(jù)[4]。組件技術(shù)有以下優(yōu)點(diǎn):
1)組件可共享和重用。即已開(kāi)發(fā)出的組件可用于不同系統(tǒng),大大節(jié)省開(kāi)發(fā)時(shí)間和投入;組件技術(shù)采用面向?qū)ο笏枷?,支持反?fù)使用。
2)組件的使用簡(jiǎn)單明了。使用組件的用戶只需了解組件的接口即可進(jìn)行二次開(kāi)發(fā)。
3)組件具有雙向和語(yǔ)言無(wú)關(guān)性??刹捎貌煌Z(yǔ)言來(lái)開(kāi)發(fā)組件,而組件也可被不同語(yǔ)言來(lái)使用;同時(shí)組件能在不同機(jī)器不同操作系統(tǒng)上運(yùn)行。
目前市場(chǎng)上流行的GIS軟件很多,這些軟件都將圖形處理、空間查詢與分析、屬性管理和其他的 GIS功能包含在了一個(gè)較為龐大的系統(tǒng)中。這雖然能夠適應(yīng)部分用戶的要求,但對(duì)其他用戶來(lái)說(shuō)就可能存在如下的問(wèn)題:
1)對(duì)大多數(shù)用戶來(lái)說(shuō),他們需要的可能只是部分GIS功能,卻要為此購(gòu)買(mǎi)整個(gè)GIS軟件系統(tǒng),代價(jià)較高。
2)大部分GIS軟件都需要經(jīng)過(guò)二次開(kāi)發(fā)來(lái)滿足用戶的特殊需要,當(dāng)用戶在GIS開(kāi)發(fā)工具上直接開(kāi)發(fā)地圖應(yīng)用系統(tǒng)時(shí),盡管用戶所關(guān)心的是系統(tǒng)的業(yè)務(wù)功能和流程實(shí)現(xiàn),卻要為了實(shí)現(xiàn)最終的業(yè)務(wù)功能而花費(fèi)大量時(shí)間和精力來(lái)學(xué)習(xí)與其并沒(méi)有直接關(guān)系的底層操作和通用地圖功能開(kāi)發(fā),造成時(shí)間和人力的浪費(fèi)。因此含有組件技術(shù)的GIS二次開(kāi)發(fā)軟件是上述用戶的最佳選擇。
把GIS的功能適當(dāng)抽象,以組件形式供開(kāi)發(fā)者使用,有許多傳統(tǒng)GIS工具無(wú)法比擬的優(yōu)點(diǎn)。
1)小巧靈活、價(jià)格便宜。GIS軟件越來(lái)越龐大,不同系統(tǒng)的交互性差,系統(tǒng)的開(kāi)發(fā)難度大。在組件模型下,各組件都集中地實(shí)現(xiàn)與自己最緊密相關(guān)的系統(tǒng)功能,用戶可以根據(jù)實(shí)際需要選擇所需控件,最大限度地降低用戶的經(jīng)濟(jì)負(fù)擔(dān)。組件化的GIS平臺(tái)集中提供空間數(shù)據(jù)管理能力,并且能以靈活的方式與數(shù)據(jù)庫(kù)系統(tǒng)連接。在保證功能的前提下,系統(tǒng)表現(xiàn)得小巧靈活,而其價(jià)格僅是傳統(tǒng)GIS開(kāi)發(fā)工具的十分之一,這樣,用戶能以較好的性能價(jià)格比獲得或開(kāi)發(fā)GIS應(yīng)用系統(tǒng)。
2)無(wú)須專門(mén)GIS開(kāi)發(fā)語(yǔ)言,直接嵌入M IS開(kāi)發(fā)工具。傳統(tǒng)GIS往往具有獨(dú)立的二次開(kāi)發(fā)語(yǔ)言,對(duì)用戶和應(yīng)用開(kāi)發(fā)者而言存在學(xué)習(xí)上的負(fù)擔(dān)。而且使用系統(tǒng)所提供的二次開(kāi)發(fā)語(yǔ)言,開(kāi)發(fā)往往受到限制,難以處理復(fù)雜問(wèn)題。而組件式GIS建立在嚴(yán)格的標(biāo)準(zhǔn)之上,不需要額外的GIS二次開(kāi)發(fā)語(yǔ)言,只需實(shí)現(xiàn)GIS的基本功能函數(shù),按照M icrosoft的ActiveX控件標(biāo)準(zhǔn)開(kāi)發(fā)接口。這有利于減輕GIS軟件開(kāi)發(fā)者的負(fù)擔(dān),而且增強(qiáng)了GIS軟件的可擴(kuò)展性。GIS應(yīng)用開(kāi)發(fā)者,不必掌握額外的GIS開(kāi)發(fā)語(yǔ)言,只需熟悉基于Windows平臺(tái)的通用集成開(kāi)發(fā)環(huán)境,以及GIS各個(gè)控件的屬性、方法和事件,就可以完成應(yīng)用系統(tǒng)的開(kāi)發(fā)和集成。目前,可供選擇的開(kāi)發(fā)環(huán)境有:VisualC++、VisualBasic、Borl and C++、Delphi、C++Builder等。使用它們作為開(kāi)發(fā)工具,是一種質(zhì)的飛躍。
3)強(qiáng)大的GIS功能。GIS組件采用InProc直接調(diào)用形式,所以無(wú)論是管理大數(shù)據(jù)的能力還是處理速度方面均比傳統(tǒng)GIS軟件強(qiáng)。小小的GIS組件完全能提供拼接、裁剪、疊合、緩沖區(qū)等空間處理能力和豐富的空間查詢與分析能力。
4)開(kāi)發(fā)簡(jiǎn)捷。由于GIS組件可以直接嵌入M IS開(kāi)發(fā)工具中,對(duì)于廣大開(kāi)發(fā)人員來(lái)講,就可以自由選用他們熟悉的開(kāi)發(fā)工具。而且,GIS組件提供的API形式非常接近M IS工具的模式,開(kāi)發(fā)人員可以像管理數(shù)據(jù)庫(kù)表一樣熟練地管理地圖等空間數(shù)據(jù),無(wú)須對(duì)開(kāi)發(fā)人員進(jìn)行特殊的培訓(xùn)。從而大大加速GIS的發(fā)展。
5)更加大眾化。組件式技術(shù)已經(jīng)成為業(yè)界標(biāo)準(zhǔn),用戶可以象使用其他ActiveX控件一樣使用GIS控件,使非專業(yè)的普通用戶也能夠開(kāi)發(fā)和集成GIS應(yīng)用系統(tǒng),推動(dòng)了GIS大眾化進(jìn)程。組件式GIS的出現(xiàn)使GIS不僅是專家們的專業(yè)分析工具,同時(shí)也成為普通用戶對(duì)地理相關(guān)數(shù)據(jù)進(jìn)行管理的的可視化工具。
目前,已推出的比較有代表性的 WebGIS系統(tǒng)平臺(tái)中,國(guó)外有ESRI的ArcIMS9.0;Map Info公司的MapXtreme;Intergraph公司的GeoMedia Web Map等;國(guó)內(nèi)有武漢中地公司的MapGIS-IMS;國(guó)家遙感應(yīng)用工程技術(shù)研究中心的地網(wǎng)GeoBeans等。
共應(yīng)用開(kāi)發(fā)人員使用的COM組件有很多,常見(jiàn)的有國(guó)外產(chǎn)的ArcObjects、Map Info MapX等。由中國(guó)地質(zhì)大學(xué)開(kāi)發(fā)的MapGIS是組件GIS。其MapGIS-IMS是建立在Internet網(wǎng)上的具有三級(jí)體系結(jié)構(gòu)的網(wǎng)絡(luò)GIS系統(tǒng)。它的主要任務(wù)是建立WebGIS服務(wù)器,在網(wǎng)上發(fā)布地理信息,使人們可以在網(wǎng)上獲取更多相關(guān)的地理空間信息。他采用組件方式為用戶提供二次開(kāi)發(fā)接口,熟悉并掌握各組件的功能及其結(jié)構(gòu)關(guān)系是進(jìn)行WebGIS二次開(kāi)發(fā)的基礎(chǔ),也是使開(kāi)發(fā)能夠達(dá)到事半功倍效果的必要前提。
在MapGIS-IMS中,最常用的組件有六個(gè):
1)MpViewCom——實(shí)現(xiàn) WebGIS中地圖圖片顯示、放大、縮小、坐標(biāo)變換等功能;
2)MpMapCom——裝載工程、修改工作區(qū)的狀態(tài)、工程查詢等;
3)M pAreaCom——提供對(duì)點(diǎn)、線、區(qū)、網(wǎng)工作區(qū)信息的管理和查詢;
4)MpAppCom——提供GIS應(yīng)用功能:地圖裁剪、點(diǎn)線面的緩沖區(qū)、投影變換、距離和面積的計(jì)算等;
5)MpNetOperCom——提供網(wǎng)絡(luò)操作和網(wǎng)絡(luò)分析功能,如:網(wǎng)絡(luò)路徑分析、最優(yōu)路徑、最短路徑、路徑查詢、結(jié)點(diǎn)查詢等;
6)MpKitCom——提供文件類型轉(zhuǎn)換、編碼方式轉(zhuǎn)換文件、上載及打包等。
基于.NET和MapGIS-IMS進(jìn)行WebGIS二次開(kāi)發(fā)時(shí),首先在項(xiàng)目中添加引用,根據(jù)需要加入IMS的一些 組 件(MpViewCom、MpMapCom、MpAreaCom、M pAppCom、MpNetOperCom、MpKitCom);同時(shí)在.aspx文件代碼中添加引用這些命名空間,例如:using MapgisNet.Web.DNMapCom;using MapgisNet.Web. DNViewCom;usingMapgisNet.web.DNAreaCom等。像DNMapCom、DNViewCom、DNAreaCom等是在.NET環(huán)境下封裝的組件,更有利于.NET的二次開(kāi)發(fā)。利用它們提供的接口能實(shí)現(xiàn)空間查詢、地圖編輯、公交換乘等功能。
以下是利用 MapGIS開(kāi)發(fā)時(shí)為實(shí)現(xiàn)拉框查詢功能而編寫(xiě)的部分代碼:
...
//調(diào)用組件二次開(kāi)發(fā)接口函數(shù) gisPrjBy IndexGet-TypeAreaObj(根據(jù)索引號(hào)得工作區(qū)類型)
//調(diào)用組件接口的矩形查詢函數(shù):gisSearchByRect
m_gisSearch.gisSearchByRect(viewport,(MpPntArea) TypeAreaObj,rect,out m_nCount,out m_AreapLst);
break;
...
WebGIS是GIS發(fā)展的必然趨勢(shì)。組件式WebGIS的二次開(kāi)發(fā)不僅降低了應(yīng)用系統(tǒng)的復(fù)雜程度,而且降低了開(kāi)發(fā)成本,增強(qiáng)了系統(tǒng)的易維護(hù)性和可擴(kuò)展性;. NET框架解決了跨語(yǔ)言、跨平臺(tái)和對(duì)開(kāi)放互聯(lián)網(wǎng)標(biāo)準(zhǔn)和協(xié)議的支持,使用戶可以更快、更好地開(kāi)發(fā)出適合互聯(lián)網(wǎng)特點(diǎn)的WebGIS。因此,采用組件技術(shù)和.NET構(gòu)架實(shí)現(xiàn)WebGIS的應(yīng)用是一個(gè)比較好的解決方案。
[1] 吳信才.WebGIS地理信息系統(tǒng)參考手冊(cè)[M].武漢:中國(guó)地質(zhì)大學(xué),2001
[2] 劉南,劉仁義.WebGIS原理及其應(yīng)用-主要WebGIS平臺(tái)開(kāi)發(fā)示例[M].北京:科學(xué)出版社,2004
[3] 蔣泰,鄧一星.基于Map GIS-IMS的WebGIS應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用研究,2004(12):196-197
[4] 潘愛(ài)民.COM原理與應(yīng)用[M].北京:清華大學(xué)出版社,2001
[5] 謝忠,胡虹雨,李越.基于ASP組件技術(shù)的WebGIS解決方案[J].中國(guó)圖象圖形學(xué)報(bào),2001,6(A版)(8):795-799
[7] James Liu.組件式GIS與MapX[EB/OL].http://www.mygis. com.cn/forum/dispbbs.asp?board ID=4&ID=802,2006-05-20
Component GIS Technology and Its Applications
LI Jun1,ZHOU Shicai2,ZHENG Gang2
(1.Guangdong Academy of Building Science,Guangzhou 510500,China; 2.Xiaogan Bureau of Hydrology and Water Resources Survey,Xiaogan 432000,China; 3.Revenue Audit Office,Wuhan Railway Bureau,Wuhan 430071,China)
This paper expounded development principles,meaning and the characteristics for ComGIS.It introduced components GISsoftware,MapGIS-IMS's function and structure, and gave thecodeexamplesby using of MapGIS-IMS development for the realization of the inquiry box.It has a conclusion that it is a better solution for achieving WebGIS by using component and .NET technology.
GIS;WebGIS;ComGIS;MapGIS
2008-08-27
P208
B
1672-4623(2010)01-0125-02
李均,助理工程師,研究方向?yàn)镚IS、GPS理論及應(yīng)用。