簡介
GIS技術的發展,在軟體模式上經歷了功能模組、包式軟體、核心式軟體,從而發展到組件式GIS和WebGIS的過程。傳統GIS雖然在功能上已經比較成熟,但是由於這些系統多是基於十多年前的軟體技術開發的,屬於獨立封閉的系統。同時,GIS軟體變得日益龐大,用戶難以掌握,費用昂貴,阻礙了GIS的普及和套用。組件式GIS的出現為傳統GIS面臨的多種問題提供了全新的解決思路。基本思想
組件式GIS的基本思想是把GIS的各大功能模組劃分為幾個控制項,每個控制項完成不同的功能。各個GIS控制項之間,以及GIS控制項與其它非GIS控制項之間,可以方便地通過可視化的軟體開發工具集成起來,形成最終的GIS套用。控制項如同一堆各式各樣的積木,他們分別實現不同的功能(包括GIS和非GIS功能),根據需要把實現各種功能的 “積木”搭建起來,就構成套用系統。基本特點
把GIS的功能適當抽象,以組件形式供開發者使用,將會帶來許多傳統GIS工具無法比擬的優點。(1)小巧靈活、價格便宜
由於傳統GIS結構的封閉性,往往使得軟體本身變得越來越龐大,不同系統的互動性差,系統的開發難度大。在組件模型下,各組件都集中地實現與自己最緊密相關的系統功能,用戶可以根據實際需要選擇所需控制項,最大限度地降低了用戶的經濟負擔。組件化的GIS平台集中提供空間數據管理能力,並且能以靈活的方式與資料庫系統連線。在保證功能的前提下,系統表現得小巧靈活,而其價格僅是傳統GIS開發工具的十分之一,甚至更少。這樣,用戶便能以較好的性能價格比獲得或開發GIS套用系統。(2)無須專門GIS開發語言
傳統GIS往往具有獨立的二次開發語言,對用戶和套用開發者而言存在學習上的負擔。而且使用系統所提供的二次開發語言,開發往往受到限制,難以處理複雜問題。而組件式GIS建立在嚴格的標準之上,不需要額外的GIS二次開發語言,只需實現GIS的基本功能函式,按照Microsoft的ActiveX控制項標準開發接口。這有利於減輕GIS軟體開發者的負擔,而且增強了GIS軟體的可擴展性。GIS套用開發者,不必掌握額外的GIS開發語言,只需熟悉基於Windows平台的通用集成開發環境,以及GIS各個控制項的屬性、方法和事件,就可以完成套用系統的開發和集成。目前,可供選擇的開發環境很多,如Visual C++、Visual Basic、Visual FoxPro、Borland C++、Delphi、C++ Builder以及Power Builder等都可直接成為GIS或GMIS的優秀開發工具,它們各自的優點都能夠得到充分發揮。這與傳統GIS專門性開發環境相比,是一種質的飛躍。(3)強大的GIS功能
新的GIS組件都是基於32位系統平台的,採用InProc直接調用形式,所以無論是管理大數據的能力還是處理速度方面均不比傳統GIS軟體遜色。小小的GIS組件完全能提供拼接、裁剪、疊合、緩衝區等空間處理能力和豐富的空間查詢與分析能力。(4)開發簡捷
由於GIS組件可以直接嵌入MIS開發工具中,對於廣大開發人員來講,就可以自由選用他們熟悉的開發工具。而且,GIS組件提供的API形式非常接近MIS工具的模式,開發人員可以像管理資料庫表一樣熟練地管理地圖等空間數據,無須對開發人員進行特殊的培訓。在GIS或GMIS的開發過程中,開發人員的素質與熟練程度是十分重要的因素。這將使大量的MIS開發人員能夠較快地過渡到GIS或GMIS的開發工作中,從而大大加速GIS的發展。(5)更加大眾化
組件式技術已經成為業界標準,用戶可以象使用其他ActiveX控制項一樣使用GIS控制項,使非專業的普通用戶也能夠開發和集成GIS套用系統,推動了GIS大眾化進程。組件式GIS 的出現使GIS不僅是專家們的專業分析工具,同時也成為普通用戶對地理相關數據進行管理的的可視化工具。開發平台的結構
組件式GIS開發平台通常可設計為三級結構:(1) 基礎組件
面向空間數據管理,提供基本的互動過程,並能以靈活的方式與資料庫系統連線;(2)高級通用組件
由基礎組件構造而成,面向通用功能,簡化用戶開發過程,如顯示工具組件、選擇工具組件、編輯工具組件、屬性瀏覽器組件等等。它們之間的協同控制訊息都被封裝起來。這級組件經過封裝後,使二次開發更為簡單。如一個編輯查詢系統,若用基礎平台開發,需要編寫大量的代碼,而利用高級通用組件,只需幾句程式就夠了。面向通用功能;(3)行業性組件
抽象出行業套用的特定算法,固化到組件中,進一步加速開發過程。以GPS監控為例。對於GPS套用,除了需要地圖顯示、信息查詢等一般的GIS功能外,還需要特定的套用功能,如動態目標顯示、目標鎖定、軌跡顯示等。這些GPS行業性套用功能組件被封裝起來後,開發者的工作就可簡化為設定顯示目標的圖例、軌跡顯示的顏色、鎖定的目標,以及調用、接受數據的方法等。組件式GIS的構成
GIS軟體的模型包含若干功能單元,諸如空間數據獲取、坐標轉換、圖形編輯、數據存儲、數據查詢、數據分析、製圖表示等。可以想像要把這些所有的功能放在一個控制項中幾乎是不可能的,即使實現也會帶來系統效率上的低下。一般可以認為GIS構件的設計主要遵循套用領域地需求。GIS組件與組件式GIS產品
GIS組件和組件式GIS是有區別的兩個概念,GIS組件指實現GIS某部分功能的軟體組件,而組件式GIS是指由一系列各自完成不同功能的GIS組件群構成的一個整體,這些組件既可以集成在一起使用,更能拆開使用。有時我們也把初級的只有一個控制項的組件式GIS成為GIS組件,如MapObjects和MapX就是20世紀九十年到中後期推出的最著名的GIS組件產品,其中MapObjects由ESRI推出,MapX由MapInfo公司推出。這兩個產品的共同特點都是只包含GIS的基本功能,屬於入門級組件式GIS產品。
2000年前後,ESRI推出的ArcObjects和超圖推出的SuperMap Objects把組件式GIS平台發展到一個新的階段,龐大的GIS組件群包含了從數據管理、格式轉換、地圖編輯、排版製圖、網路分析、疊加分析、緩衝區分析、柵格分析、二維可視化、三維可視化等GIS的幾乎全部功能,並引領了此後將近十年的GIS二次開發方式。