WebGIS產品分析

南水之源發表於2024-08-19

WebGIS(網路地理資訊系統)是指基於網路平臺,客戶端應用軟體採用網路協議,執行在網路上的地理資訊系統,即將GIS所能提供的功能透過網路展現給使用者。顧名思義,WebGIS就是展現在網路上的GIS,是GIS 與Web 融合的產物。GIS 透過Web功能得以擴充套件,使得GIS衝破專業圈子,真正成為大眾化的GIS。如今,網路已成為日常生活中不可或缺的工具,人們可以在網上訂餐、購物、查詢路線資訊、實現定位分析等。地理資訊普惠大眾,越來越多的人使用地理資訊服務,享受地理資訊所帶來的便利與樂趣。

隨著技術的不斷髮展,GIS經歷了單機環境應用向網路環境應用發展的過程。從21世紀開始,網路進入了爆發式增長階段,這為 WebGIS 的發展提供了堅實的基礎。網路環境 GIS應用從C/S(Client/Server,客戶機/伺服器)模式向網路環境下的B/S(Browser/Server,瀏覽器/伺服器)架構發展,逐步成為GIS應用的主流。相比C/S架構,B/S架構的WebGIS具有部署方便、使用簡單、便於推廣等優勢,為地理資訊服務的發展奠定了基礎。於是,WebGIS應用需求劇增,基於B/S架構的GIS系統越來越多地開始提供服務,並且隨著RIA技術、Ajax技術等的湧現和成熟,WebGIS能夠以更好的視覺效果與互動效果展現,越來越受到廣大使用者的關注。

網路的大發展為人類創造了極大的物質財富和精神財富,各種資訊資源透過手指輕輕一點便可輕易獲取。網路與GIS的融合成為GIS應用的催化劑,標誌著GIS迎來一個新的時代,GIS真正走向大眾化,其應用全面融入人們的工作與生活,並彰顯出了巨大的活力。WebGIS啟用了GIS大眾應用的市場。網路的嗅覺早已敏銳地嗅到了商機,大量資本與外界力量進駐,網路巨頭紛紛跨界佈局地圖領域,Google地圖、百度地圖等服務提供商的大規模擴張便是最好的證明。

移動網際網路成功的關鍵是為使用者提供優質便捷的生活服務,地圖則是實現移動端增值服務的最佳入口。因此,當移動網際網路遇上無處不在的地理資訊位置服務時,LBS 應用市場需求旺盛,移動端必將湧現出更多意想不到的特色應用。隨著終端定位能力、網路及資費等外部條件的成熟,位置服務可能會在很多應用上成為標配,更有希望基於位置資訊維度重新組織網路中的海量資訊,創新地理資訊價值。如今,GIS 早已融入人們的日常生活,網路線上地圖不再限於導航,人們可以透過地圖快速獲取周圍的景點、餐館資訊,甚至能在同一種應用下實現訂餐、訂房、支付等一站式服務。有了移動網際網路的支撐,地圖所承載的應用會更加豐富、多元化,WebGIS應用將更加寬泛和深入。隨著網路新技術的發展,廣義WebGIS 被賦予了更多內容。我們所討論的WebGIS 通常為狹義的WebGIS,即僅僅是指基於B/S架構透過Web瀏覽器訪問的WebGIS。

WebGIS的應用非常廣泛,幾乎可以應用到所有的領域,主要分為行業應用與大眾應用。行業應用通常為傳統專業領域的應用,如地礦、國土、公安、市政、應急防災等領域;大眾應用則主要為網際網路方向服務於人們日常生活的GIS應用,諸如百度地圖等線上地圖產品,以及旅遊、餐飲、購物、公交出行等各類 WebGIS 應用系統,而公眾接觸最多的也就是這些大眾應用類產品,只是很多時候我們並不清楚這些就是WebGIS應用而已。

得益於網路的發展,WebGIS快速發展前進,開發工具與平臺也呈現出百花齊放之勢。目前,湧現出大量用於二次開發的WebGIS產品,主要包括開發API、開源與商業WebGIS開發平臺等。在網際網路方向,如百度地圖API、天地圖API、高德地圖API、騰訊地圖API、Google地圖API等;在行業應用方向,有很多諸如GeoServer的開源WebGIS平臺,還有中地數碼、超圖、ESRI等GIS廠商提供的專業WebGIS開發平臺產品,如MapGIS IGServer、ArcGIS for Server等相關產品。

見的開源WebGIS平臺
WebGIS市場需求旺盛,更多的人開始關注WebGIS應用,很多開發者投身於GIS開發大軍,催生了眾多開源GIS專案,推動了WebGIS的普及。部分開源GIS專案如表1-1所示。


1.uDig
uDig是一個開源的桌面應用程式框架,是構建在Eclipse RCP 和GeoTools(一個開源基於Java的GIS工具包)上的桌面GIS。uDig作為一款開源桌面GIS軟體,基於Java和Eclipse平臺,可以進行shp格式地圖檔案的編輯和檢視,是一個開源空間資料檢視器與編輯器。uDig頁面如圖1-1所示。

2.QGIS
QGIS是一個使用者頁面友好的桌面GIS,可執行在Linux、UNIX、Mac OS X和Windows等平臺之上。QGIS是基於Qt(跨平臺的圖形工具軟體包)、使用C++開發的一個使用者頁面友好、跨平臺的開源版桌面地理資訊系統。

3.GeoServer
GeoServer是OpenGIS Web伺服器規範的J2EE實現,利用GeoServer可以方便地釋出地圖資料,允許使用者對特徵資料進行更新、刪除、插入操作,透過 GeoServer 可以比較容易地在使用者之間迅速共享空間地理資訊。GeoServer是社群開源專案,可以直接透過社群網站(如中文社群網站http://www.opengeo.cn/)下載相關資料。

GeoServer 支援 OGC 標準規範的系列服務,支援 PostgreSQL、MySQL 等資料庫以及ArcSDE、Shapefile等中介軟體和檔案資源,能夠將網路地圖輸出為jpeg、png、KML等多種圖片和資料格式,可以執行在任何基於 J2EE/Servlet 的容器之上,支援多種客戶端框架,如OpenLayers等。

4.MapServer
MapServer是美國明尼蘇達大學(University of Minnesota)在20世紀90年代利用C語言開發的開源WebGIS專案。
MapServer是一套基於胖伺服器端/瘦客戶端模式的實時地圖釋出系統,當客戶端傳送資料請求時,伺服器端實時處理空間資料,並將生成的資料傳送給客戶端。MapServer的核心部分是 C 語言編寫的地圖操作模組,它本身許多功能的實現依賴一些開源或免費的庫。MapServer遵循OGC標準規範,可以集合PostGIS和開源資料庫PostgreSQL對空間資料進行儲存和查詢操作,同時還支援其他客戶端API實現空間資料的傳輸與表達。


5.OpenLayers
OpenLayers是一個專為WebGIS客戶端開發提供的JavaScript類庫,用於訪問以標準格式釋出的地圖資料,實現訪問空間資料的方法都符合行業標準,支援各種公開的和私有的資料標準和資源。OpenLayers採用純物件導向的JavaScript方式開發,同時借用了Prototype框架和Rico庫的一些元件。

OpenLayers是一個開源的專案,其目的是為網際網路客戶端提供強大的地圖展示功能,包括地圖資料顯示與相關操作,並具有靈活的擴充套件機制。目前,OpenLayers已經成為一個擁有眾多開發者和幫助社群的成熟、流行的框架。目前OpenLayers 3 已經升級為OpenLayers 5,可從其官方網站(http://openlayers.org/)下載相關資源

6.OpenScales
OpenScales是一個基於Flex的優秀的前臺地圖框架,開發者可以在此開發各種網路版、手機版和桌面版的地圖程式。

OpenScales是基於ActionScript 3和Flex開發的,能夠支援各種標準的地圖服務,如WMS、WFS、TMS、OSM等。OpenScales是開源的、免費的客戶端開發框架,基於LGPL開源協議,並且基於 FlashPlayer 執行,可以執行在各個瀏覽器上,具有很好的跨平臺特性。OpenScales作為一個開源的 GIS 客戶端框架,具有非常大的應用潛力,可從其官方網站(http://www.openscales.org/)下載相關資源,如圖1-5所示。

圖1-5 OpenS cales官網

OpenScales可看成對OpenLayers的ActionScript翻譯,所以在學習OpenScales時可以適當參考 OpenLayers 的官方教程。相比之下,雖然 OpenLayers 的教程也是英文的,不過非常詳細,提供的示例也遠比OpenScales豐富。

針對 WebGIS 應用開發,最具代表性的開源 GIS 專案是:伺服器端為 GeoServer 與MapServer,客戶端為 OpenLayers 與 OpenScales。總體來說,GeoServer 功能要稍強於MapServer,MapServer對WMS的支援更高效,而GeoServer更擅長結合WFS規範進行屬性查詢。

不同的GIS開源專案所採用的技術框架不同,根據開發環境可以將主流的WebGIS開源解決方案分成兩派,一派是C/C++,另一派是Java。常用的WebGIS全套解決方案為:

(1)基於 C/C++的解決方案:MapServer(伺服器)+QGIS(桌面軟體)+Tomcat(中介軟體)+PostGIS或MySQL空間擴充套件(資料庫)+OpenLayers(JS)或OpenSc ales(Flex)(瀏覽器客戶端);
(2)基於 JavaEE 的解決方案:GeoServer(伺服器)+uDig(桌面軟體)+Tomact(中介軟體)+PostGIS|MySQL空間擴充套件(資料庫)+OpenLayers(JS)/OpenScales(Flex)(瀏覽器客戶端)。
採用開源 WebGIS 平臺進行二次開發,一般是從客戶端、伺服器端、資料來源與資料儲存方面進行設計和實現的。
Web客戶端:可以選擇使用OpenLayers、OpenScales等開源框架,也可以結合網際網路方向的線上地圖API(如百度地圖API等)。
伺服器端:使用最具代表性的GeoServer或MapServer作為地理資訊伺服器,基於伺服器釋出地圖資料服務(如OGC的WMS、WFS、WCS等),Web應用程式則透過HTTP請求訪問伺服器釋出的服務。若設計簡單的大眾應用WebGIS,可以不使用伺服器端開源GIS平臺,直接訪問第三方提供的資料服務、資料介面,或者儲存在關聯式資料庫中的POI資料等。
資料層:資料來源可使用公共線上地圖服務(如百度地圖、天地圖、Google地圖等),一般將它們作為底圖,或者GIS伺服器釋出的地圖服務資料,以及開放格式的檔案資料等。針對空間資料的儲存,一般可選擇開源的空間資料庫,如使用PostgreSQL作為關聯式資料庫,用其擴充套件模組PostGIS儲存空間資料。
儘管這些開源GIS專案為開發者提供了很多進行二次開發的資源,給廣大GISer帶來了便利,但只能滿足一部分WebGIS開發需求,無法應對更多的面向大眾的網際網路應用。目前,GIS 開源專案的不足主要表現在對底圖處理能力不足、對空間資料的管理能力不足、空間分析能力較弱、無法實現一體化的系統構建與應用等。針對開源GIS專案的不足,往往需要藉助專業的WebGIS開發平臺,滿足更多應用的需求。

相關文章