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