李 均,周世財,鄭 剛
(1.廣東省建筑科學研究院,廣東廣州510500;2.孝感市水文水資源勘測局,湖北孝感432000;3.武漢鐵路局收入稽查處,湖北武漢430071)
組件式GIS技術及應用淺析
李 均1,周世財2,鄭 剛3
(1.廣東省建筑科學研究院,廣東廣州510500;2.孝感市水文水資源勘測局,湖北孝感432000;3.武漢鐵路局收入稽查處,湖北武漢430071)
闡述了組件式GIS開發原理、意義及系統的特點,介紹組件式GIS軟件的功能及其結構,并給出了利用MapGISIMS開發時為實現某功能而編寫的代碼實例,說明采用該技術和.NET構架實現WebGIS應用是一個比較好的解決方案。關鍵詞:GIS;WebGIS;組件式GIS;MapGIS

組件式軟件技術已經成為當今軟件技術的潮流之一,為了適應這種技術潮流,GIS軟件像其他軟件一樣,正在發生著革命性的變化,即由過去廠家提供了全部系統或者具有二次開發功能的軟件,過渡到提供組件由用戶自己再開發的方向上來。無疑,組件式GIS技術將給整個GIS技術體系和應用模式帶來巨大影響。
組件技術是一種二進制標準,即可執行文件標準。它使得操作系統中的進程能夠操縱、共享和訪問由其他進程所提供的方法和數據[4]。組件技術有以下優點:
1)組件可共享和重用。即已開發出的組件可用于不同系統,大大節省開發時間和投入;組件技術采用面向對象思想,支持反復使用。
2)組件的使用簡單明了。使用組件的用戶只需了解組件的接口即可進行二次開發。
3)組件具有雙向和語言無關性。可采用不同語言來開發組件,而組件也可被不同語言來使用;同時組件能在不同機器不同操作系統上運行。
目前市場上流行的GIS軟件很多,這些軟件都將圖形處理、空間查詢與分析、屬性管理和其他的 GIS功能包含在了一個較為龐大的系統中。這雖然能夠適應部分用戶的要求,但對其他用戶來說就可能存在如下的問題:
1)對大多數用戶來說,他們需要的可能只是部分GIS功能,卻要為此購買整個GIS軟件系統,代價較高。
2)大部分GIS軟件都需要經過二次開發來滿足用戶的特殊需要,當用戶在GIS開發工具上直接開發地圖應用系統時,盡管用戶所關心的是系統的業務功能和流程實現,卻要為了實現最終的業務功能而花費大量時間和精力來學習與其并沒有直接關系的底層操作和通用地圖功能開發,造成時間和人力的浪費。因此含有組件技術的GIS二次開發軟件是上述用戶的最佳選擇。
把GIS的功能適當抽象,以組件形式供開發者使用,有許多傳統GIS工具無法比擬的優點。
1)小巧靈活、價格便宜。GIS軟件越來越龐大,不同系統的交互性差,系統的開發難度大。在組件模型下,各組件都集中地實現與自己最緊密相關的系統功能,用戶可以根據實際需要選擇所需控件,最大限度地降低用戶的經濟負擔。組件化的GIS平臺集中提供空間數據管理能力,并且能以靈活的方式與數據庫系統連接。在保證功能的前提下,系統表現得小巧靈活,而其價格僅是傳統GIS開發工具的十分之一,這樣,用戶能以較好的性能價格比獲得或開發GIS應用系統。
2)無須專門GIS開發語言,直接嵌入M IS開發工具。傳統GIS往往具有獨立的二次開發語言,對用戶和應用開發者而言存在學習上的負擔。而且使用系統所提供的二次開發語言,開發往往受到限制,難以處理復雜問題。而組件式GIS建立在嚴格的標準之上,不需要額外的GIS二次開發語言,只需實現GIS的基本功能函數,按照M icrosoft的ActiveX控件標準開發接口。這有利于減輕GIS軟件開發者的負擔,而且增強了GIS軟件的可擴展性。GIS應用開發者,不必掌握額外的GIS開發語言,只需熟悉基于Windows平臺的通用集成開發環境,以及GIS各個控件的屬性、方法和事件,就可以完成應用系統的開發和集成。目前,可供選擇的開發環境有:VisualC++、VisualBasic、Borl and C++、Delphi、C++Builder等。使用它們作為開發工具,是一種質的飛躍。
3)強大的GIS功能。GIS組件采用InProc直接調用形式,所以無論是管理大數據的能力還是處理速度方面均比傳統GIS軟件強。小小的GIS組件完全能提供拼接、裁剪、疊合、緩沖區等空間處理能力和豐富的空間查詢與分析能力。
4)開發簡捷。由于GIS組件可以直接嵌入M IS開發工具中,對于廣大開發人員來講,就可以自由選用他們熟悉的開發工具。而且,GIS組件提供的API形式非常接近M IS工具的模式,開發人員可以像管理數據庫表一樣熟練地管理地圖等空間數據,無須對開發人員進行特殊的培訓。從而大大加速GIS的發展。
5)更加大眾化。組件式技術已經成為業界標準,用戶可以象使用其他ActiveX控件一樣使用GIS控件,使非專業的普通用戶也能夠開發和集成GIS應用系統,推動了GIS大眾化進程。組件式GIS的出現使GIS不僅是專家們的專業分析工具,同時也成為普通用戶對地理相關數據進行管理的的可視化工具。
目前,已推出的比較有代表性的 WebGIS系統平臺中,國外有ESRI的ArcIMS9.0;Map Info公司的MapXtreme;Intergraph公司的GeoMedia Web Map等;國內有武漢中地公司的MapGIS-IMS;國家遙感應用工程技術研究中心的地網GeoBeans等。
共應用開發人員使用的COM組件有很多,常見的有國外產的ArcObjects、Map Info MapX等。由中國地質大學開發的MapGIS是組件GIS。其MapGIS-IMS是建立在Internet網上的具有三級體系結構的網絡GIS系統。它的主要任務是建立WebGIS服務器,在網上發布地理信息,使人們可以在網上獲取更多相關的地理空間信息。他采用組件方式為用戶提供二次開發接口,熟悉并掌握各組件的功能及其結構關系是進行WebGIS二次開發的基礎,也是使開發能夠達到事半功倍效果的必要前提。
在MapGIS-IMS中,最常用的組件有六個:
1)MpViewCom——實現 WebGIS中地圖圖片顯示、放大、縮小、坐標變換等功能;
2)MpMapCom——裝載工程、修改工作區的狀態、工程查詢等;
3)M pAreaCom——提供對點、線、區、網工作區信息的管理和查詢;
4)MpAppCom——提供GIS應用功能:地圖裁剪、點線面的緩沖區、投影變換、距離和面積的計算等;
5)MpNetOperCom——提供網絡操作和網絡分析功能,如:網絡路徑分析、最優路徑、最短路徑、路徑查詢、結點查詢等;
6)MpKitCom——提供文件類型轉換、編碼方式轉換文件、上載及打包等。
基于.NET和MapGIS-IMS進行WebGIS二次開發時,首先在項目中添加引用,根據需要加入IMS的一些 組 件(MpViewCom、MpMapCom、MpAreaCom、M pAppCom、MpNetOperCom、MpKitCom);同時在.aspx文件代碼中添加引用這些命名空間,例如:using MapgisNet.Web.DNMapCom;using MapgisNet.Web. DNViewCom;usingMapgisNet.web.DNAreaCom等。像DNMapCom、DNViewCom、DNAreaCom等是在.NET環境下封裝的組件,更有利于.NET的二次開發。利用它們提供的接口能實現空間查詢、地圖編輯、公交換乘等功能。
以下是利用 MapGIS開發時為實現拉框查詢功能而編寫的部分代碼:
...
//調用組件二次開發接口函數 gisPrjBy IndexGet-TypeAreaObj(根據索引號得工作區類型)

//調用組件接口的矩形查詢函數:gisSearchByRect
m_gisSearch.gisSearchByRect(viewport,(MpPntArea) TypeAreaObj,rect,out m_nCount,out m_AreapLst);
break;
...
WebGIS是GIS發展的必然趨勢。組件式WebGIS的二次開發不僅降低了應用系統的復雜程度,而且降低了開發成本,增強了系統的易維護性和可擴展性;. NET框架解決了跨語言、跨平臺和對開放互聯網標準和協議的支持,使用戶可以更快、更好地開發出適合互聯網特點的WebGIS。因此,采用組件技術和.NET構架實現WebGIS的應用是一個比較好的解決方案。
[1] 吳信才.WebGIS地理信息系統參考手冊[M].武漢:中國地質大學,2001
[2] 劉南,劉仁義.WebGIS原理及其應用-主要WebGIS平臺開發示例[M].北京:科學出版社,2004
[3] 蔣泰,鄧一星.基于Map GIS-IMS的WebGIS應用研究[J].計算機應用研究,2004(12):196-197
[4] 潘愛民.COM原理與應用[M].北京:清華大學出版社,2001
[5] 謝忠,胡虹雨,李越.基于ASP組件技術的WebGIS解決方案[J].中國圖象圖形學報,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理論及應用。