周赟 黃云
摘 要:隨著城市化進程的不斷推進,原有的城市管理模式和社會信息發布媒介已經不能產生與之相對應的社會效益和經濟效益。而電子地圖提供了一個集大容量、高速度、超便捷和智能化于一身的現代化信息平臺。本文基于ArcGIS Server 9.3平臺利用組件式開發模式,以徐州市為例設計開發出基于WebGIS的電子地圖發布系統。該系統具有地圖的基本瀏覽功能、信息查詢、搜索功能,使得用戶能夠第一時間了解到相關的地圖信息,并且解決了瀏覽電子地圖必須基于專業瀏覽軟件以及柵格化電子地圖數據量大、瀏覽速度慢的缺點,采用該文的研究成果,大大增強了地圖信息服務的便捷性,為數字化城市的建設提供了幫助。
關鍵詞:WebGIS ArcGIS Server 電子地圖 徐州市
中圖分類號:TP311 文獻標識碼:A 文章編號:1674-098X(2015)02(b)-0052-04
1 緒論
1.1 引言
WebGIS是在Internet或Intranet網絡環境下的一種兼容存儲、處理、分析、顯示與應用地理信息的計算機信息系統。Internet技術的迅速發展為GIS提供了一種嶄新而又非常有效的地理信息載體,尤其是“數字地球”概念的提出,引起了人們對GIS技術的廣泛關注,已經成為新的研究熱點。
WebGIS的基本思想就是在互聯網上提供地理信息,讓用戶通過瀏覽器瀏覽和獲得一個地理信息系統中的數據和功能服務。WebGIS為地理信息和GIS服務通過Internet在更大范圍內發揮作用提供了新的平臺。WebGIS是一個基于網絡,服務器分布式系統,是GIS在廣域網環境下的一種應用,最終目標是實現空間信息的網絡化。
1.2 本文研究的主要內容
本文在對組件式GIS開發分析理解的基礎上,根據對WebGIS電子地圖發布系統建設的需求分析,并結合現有條件,選擇在Visual Studio 2005開發環境下,利用.NET技術以及C#語言,以ArcGIS Server 9.3為開發平臺,對WebGIS電子地圖發布系統進行開發定制,主要研究內容如下:
(1)分析了當前國內外地理信息系統以及網絡地理信息系統(WebGIS)的研究以及應用現狀,提出了基于WebGIS的電子地圖發布系統的開發方案;
(2)對GIS概念、特征、發展趨勢進行論述;
(3)對WebGIS概念、特點、體系結構進行歸納分析,在此基礎上選擇采用B/S結構對系統進行設計開發;
(4)采用 B/S結構對系統進行總體設計,包括系統分析、系統設計、數據庫設計等方面。
本系統具體應實現以下主要功能:
基本的地圖縮放功能:地圖的放大、縮小、漫游等基本操作,地圖的圖層信息顯示以及圖示顯示,可選擇放大比例的窗口縮放,鷹眼功能;
地圖的距離量算以及面積量算;
地圖屬性以及字段的信息查詢功能,并且能夠在地圖上標記出查詢的內容,查詢結果區域顯示并存儲所有查詢結果;
高亮顯示,將選取到結果框中的地物高亮顯示,即鼠標移動至圖塊上時顯示高亮以突出結果。
2 基于WebGIS的電子地圖發布系統設計
2.1 系統分析
系統需求分析是在對用戶進行深入細致的調查基礎上進行的,它是應用型地理信息系統設計的基礎,是通過與系統潛在用戶進行書面和口頭交流,將收集到的信息以及需求根據系統軟件設計的要求歸納整理后,得到對系統概略描述和可行性分析的論證文件,系統分析流程如下圖1所示。通過一段時間的資料采集以及用戶調查,不難發現以下幾點需要著重考慮的地方:
(1)傳統的柵格化電子地圖的方式雖然也能夠顯示相關的地物信息,但是無法滿足高精度地圖需求用戶的應用要求,這時候就必須使用矢量形態的地圖來代替,并且數據量比柵格地圖要小;
(2)與傳統的地理信息系統相比,WebGIS應用不需要在客戶端安裝任何軟件,只需要在服務器上配置好地圖服務后發布,客戶端通過網絡瀏覽器直接訪問,易用性高;
(3)系統需要提供空間信息與非空間信息相結合的數據分析功能,為學校決策層提供輔助,例如,查看不同類型土地分布狀況,綠化情況等;
(4)隨著科技和社會的發展,數字化城市的發展趨勢使得加快城市的信息化步伐,提高工作效率,強化信息管理,建立基于WebGIS的城市電子地圖發布系統勢在必行。
2.2 系統設計
2.2.1 系統設計原則
(1)簡單性:界面設計應遵循一個統一的標準,具有整體感,靈活清晰;(2)交互性:空間信息與屬性信息在必要時顯示出來,和程序有機的結合起來;(3)標準性:數據格式的標準性,引用規范的標準性;(4)可靠性:空間數據、屬性數據要求可靠與準確;(5)擴展性:系統設計采用模塊化結構設計,為系統升級、功能擴充、數據庫更新升級做準備。
2.2.2 系統功能設計
基于WebGIS的電子地圖發布系統設計的主要目標是結合Internet的廣泛應用,將傳統的地理信息系統與Web服務相結合,面向廣大的Internet用戶以及相關職能決策部門開發設計的系統。系統功能設計圖如圖2所示:
(1)用戶管理:包括新用戶的注冊,用戶登陸,用戶密碼修改,用戶密碼找回等功能;
(2)圖層信息顯示:分層顯示地圖上各類地物,如水體、山丘、林地、耕地、建筑用地等等,并且在相應的圖層編號邊顯示出本層的圖示;
(3)地圖瀏覽:包括地圖的基本縮放功能、漫游功能和全景功能,并且支持撤銷操作(即返回上一次操作時的縮放比例以及位置)以及鷹眼功能;
(4)屬性查詢:當鼠標點選地物時,所選地物的所有字段以及屬性顯示在地圖上并且可以伸縮顯示窗口達到隱藏的目的,并且查詢的結果可以添加到查詢結果中,以備后用;
(5)距離面積量算:可以在地圖上對兩點間進行距離量算,對地物進行多邊形面積量算;
(6)結果顯示:在結果面板中可以對多個搜索結果進行比較并且結果地物高亮顯示。
2.2.3 數據庫設計
(1)空間數據庫設計。
空間數據是指以不同來源和方式的遙感與非遙感手段獲取的數據,包括地圖、各種專題圖、圖像、統計數據等能夠確定空間位置的數據。要建立電子地圖,先建立空間數據庫。
根據徐州市區地物的特點,按數據分層組織方法和系統信息輸出利用的需要,對地圖上不同地理要素進行分層,對每一種地理要素建立一個數據集,并對各數據集的表結構進行設定,配置屬性表,建立GIS空間數據庫,具體如表1。
(2)屬性數據庫設計。
屬性數據是與地物相關的屬性信息,通過在關系數據庫建立相應的字段來存儲文件路徑,而實際數據以文件的方式來存儲和管理,程序運行時通過在相關模塊進行調用來獲取電子地圖數據,通過這種方式實現地圖數據和GIS的集成。屬性數據與空間數據沒有直接聯系,但卻是查詢分析的必備數據。具體設計如表2。
2.3 開發環境以及平臺的選擇
2.3.1 開發環境的選擇
根據本設計的需要,本設計選擇了Visual Studio 2005開發環境,Visual Studio.NET 是一套完整的開發工具,用于生成ASP Web應用程序、XML Web services、桌面應用程序和移動應用程序。Visual Basic.NET、Visual C++.NET、Visual C#.NET和Visual J#.NET 全都使用相同的集成開發環境(IDE),該環境允許它們共享工具并有助于創建混合語言解決方案。另外,這些語言利用了.NET Framework的功能,此框架提供對簡化ASP Web應用程序和XML Web services 開發的關鍵技術的訪問,與所安裝的ArcGIS Server 9.3 For .NET配套使用進行開發。
2.3.2 組件式GIS(COMGIS)
WebGIS的基本思想是在互聯網上提供地理信息,讓用戶通過瀏覽器瀏覽和獲得一個地理信息系統中的數據和功能服務。
組件式GIS是指基于組件對象平臺,以組件的形式提供基本功能,與組件技術結合的新一代地理信息系統[1]。它是根據組件提供的接口與專業應用系統集成的系統,或者在GIS組件系統平臺上按照某種協議嵌入專業應用軟件進行二次開發而成的系統。
根據基于WebGIS的電子地圖發布系統建設的需求分析,并結合現有條件,本系統采用ESRI(美國環境系統研究所)公司的ArcGIS Server 9.3作為WebGIS開發平臺,它是一個功能強大的網絡地理信息發布系統的開發平臺,可以全面滿足網絡GIS的應用需要,快速建立基于地圖的Internet或Intranet的地理信息服務網站。
2.3.3 ArcGIS Server 9.3簡介
ArcGIS Server是一個基于Web的企業級GIS解決方案,為創建和管理基于服務器的GIS應用提供了一個高效的框架平臺。它充分利用了ArcGIS的核心組件庫ArcObject,并且基于工業標準提供WebGIS服務。ArcGIS Server將兩項功能強大的技術——GIS和網絡技術(Web)結合在一起,GIS擅長與空間相關的分析和處理,網絡技術則提供全球互聯,促進信息共享。這兩項技術協同工作,相得益彰。
2.3.4 ArcGIS Server 9.3體系結構
ArcGIS Server是一個分布式系統,由分布在多臺機器上各個角色協同工作。ArcGIS Server搭建的WebGIS解決方案支持多種類型的客戶端,包括:ArcGIS Desktop、ArcGIS Engine Application、Web Browser。
GIS server:運行SOC和SOM的機器。SOM即Server Object Manager:Server Object管理器,負責管理調度Server Object,而具體Server Object的運行是在ArcSOC.EXE進程中。SOC即Server Object Container(容器)。SOM和SOC可以運行在同一臺機器上,也可以是SOM獨占一臺機器,管理一個或多個運行SOC的機器。采用分布式部署,可以大幅提高GIS server的整體性能,擴展能力強。
Web server:運行web應用程序或web service的機器。這里的web應用程序或web service通過訪問GIS server并調用GIS server的對象來實現GIS功能,然后把結果返回給客戶端
Web browsers:諸如IE,Firefox等Web瀏覽器軟件。
桌面應用程序:可以是ArcGIS Desktop和ArcGIS Engine應用。通過Http協議訪問在Web server 上發布的ArcGIS網絡服務,或者通過Lan/QWan直接連接到GIS Servers。一般通過ArcCatalog應用程序來管理ArcGIS Servver[2]。(具體結構如圖3)
3 基于WebGIS的電子地圖發布系統開發
3.1 開發前的準備工作
3.1.1 Web開發背景知識的學習
由于網絡地圖服務是Internet 技術與GIS 技術相結合的產物,因此進行這方面的開發工作不僅需要GIS開發的專業知識,還需要開發者了解并熟悉Web開發的過程以及相關內容:(1) 組件化編程概念;(2) HTML,ASP編輯基礎;(3) HTTP協議基礎;(4) Visual C#.NET語言基礎;(5) .NET和Web應用程序開發基礎;(6) ArcGIS應用基礎知識;(7) 地圖編輯與操作基礎知識;(8) ArcGIS Server結構、程序接口與開發方法。
3.1.2 地圖數據的準備工作
ArcGIS Server 9.3可以支持多種服務類型,用戶通過ArcGIS Server 9.3發布的這些服務可以享用GIS功能,在開發本系統時應用的是Map Service服務也是ArcGIS Server中使用最多的一種服務。該服務可以支持發布二維地圖,支持建模,支持OGC WMS和KML,支持在線編輯空間數據等。發布地圖之前,先將地圖用ArcMap數字化并錄入相關屬性,并且保存為*.mxd的地圖文檔格式。將保存地圖的文件夾存在C盤根目錄下。在此例中由于使用的是徐州的面狀圖作為地圖,所以將地圖文檔取名xz.mxd保存。
3.1.3 系統開發流程
在地圖數據的準備工作做好以后,就可以開始系統的開發設計了,需要對相關數據信息進行收集、錄入以及集成,并且要對程序的結構,程序的代碼編寫和界面進行設計,與此同時還要對數據庫系統進行建立和調試,最后將這些綜合集成起來,對系統總體進行運行與調試,系統開發總體流程圖如圖4。
當所有的準備工作做好以后,就進入了實際開發階段,按照順序有以下幾個步驟:
(1)服務器的安裝與配置;(2)啟動地圖服務器;(3)配置開發環境;(4)新建站點工程;(5)界面設計與功能設計;(6)系統功能的開發;(7)調試運行;(8)發布站點;(9)系統部署與檢驗。
3.2 系統開發
3.2.1 配置開發環境
(1)操作系統版本:Windows XP SP3;(2)IIS版本:IIS5.1;(3)集成開發軟件:Microsoft Visual Studio 2005;(4)開發平臺:ArcGIS Server9.3;(5)網頁瀏覽器:Chrome(由于Internet Explorer在JavaScript解譯方面速度比較慢,為了流暢的運行系統,選用Google Chrome來代替IE8)。
3.2.2 配置地圖服務器
在安裝完相關軟件以及開發環境以后,就可以開始對地圖服務器進行配置了。ArcGIS Server 9.3以遠程管理的方式管理和配置服務器,這種方式可以同時滿足本地管理和遠程管理的需要。ArcGIS Server 9.3安裝過程中創建的ArcGIS Manager (http://localhost/ArcGIS/Manager)站點(如圖5)就是遠程管理站點名稱,通過這個管理站點可以對服務器主機操作系統的所有Services 進行監控和停止、啟動操作,對進程實行監控和管理,對ArcGIS Server服務以及參數配置進行全面的管理。
為了后續的系統開發,需要把已經數字化好的發布到地圖服務器上以在程序中調用地圖服務功能,所以在ArcGIS Server Manager中將地圖發布到地圖服務器上,在電子地圖發布系統開發中,使用徐州地區的地圖作為示范地圖,發布一個地圖服務,取名為XZ,如圖6。
3.2.3 WebGIS站點開發
ArcGIS Server 9.3為用戶建立WebGIS站點提供了多種不同的開發方式,也為開發者提供了許多的Web控件,允許用戶在自己建立的網站上對空間進行拖拽,可視化地建立網站,開發和調試過程簡單,可以輕松的完成網站的部署工作[3]。在開發本系統的過程中,先用Visual Studio 2005新建一個網站,位置和編程語言如圖7所示,新建網站后,在頁面上添加相應的WebControl控件。在開發系統發過程中調用相關的控件、類庫的屬性、方法和事件來實現相關功能。值得注意的是,網站發布的位置是直接發布到Localhost中去,而不是存在其他目錄下,這樣的好處是網站建立后可以直接使用瀏覽器進行瀏覽而不必每次都使用Visual Studio 2005自帶的調試器進行網站的生成。
3.3 系統功能的實現
3.3.1 用戶管理功能
當用戶打開網站的時候默認頁面就是登陸界面(如圖8、圖9),輸入能夠訪問頁面的登錄名和密碼或者是存在于計算機argsadmin組中的用戶名和密碼的時候才能夠登錄轉到地圖應用界面。
3.3.2 地圖基本瀏覽功能
主要是地圖瀏覽的基本功能,包括以下幾種:
縮放工具:包括放大、縮小、自由縮放、鼠標滾輪縮放、全幅顯示地圖等,可以顯示地圖不同詳細程度的信息。
定位工具:包括前后視圖、漫游、鷹眼功能。
地圖圖例及圖層控制功能:在左側的面板中顯示出所有地圖中的圖層和地類代碼以及對應圖例;
3.3.3 屬性查詢功能
當用戶需要點選當前頁面上的某個地物的時候,可以用屬性查詢功能點選某個地物,地物將會在地圖上用高亮顯示出來并且在地圖窗口中用Maptips的形式顯示出該地物的全部屬性以及屬性值。
3.3.4 地物量算功能
當用戶需要取得點的坐標時,比如某一個公園或者住宅小區大門的坐標;兩點間的距離時,比如兩個目的地之間的道路長度的總和;以及多邊形面積,比如某個廠房或者廠區的面積的時候,可以用到地物量算的功能。
4 結論
該文對基于WebGIS 的電子地圖發布系統總體設計進行了詳盡的論述,包括系統分析、系統設計和空間數據庫設計,并在Visual Stiudio 2005集成開發環境下,采用.NET技術下的Visual C#開發語言,以ArcGIS Server 9.3為開發平臺,構建了基于WebGIS的電子地圖發布系統,解決了傳統電子地圖發布系統由于使用柵格地圖發布時數據量大,細節要求達不到標準的問題。系統充分利用了GIS技術和Internet的優勢,將空間信息和屬性信息有機結合,使訪問者除了能夠進行地圖縮放、圖層顯示、鷹眼視圖等基本地圖操作以外,還能夠方便的對地圖信息進行網上訪問、查詢分析和簡單的空間分析。
參考文獻
[1] 劉南,劉仁義,基于COM的分布式WebGIS架構及實現方法[J].中國圖像圖形學報,2004(1):101-106,131.
[2] ESRI中國(北京)培訓中心.ArcGIS輕松入門教程——ArcGIS Server.2008.
[3] 周峰,李德路.Visual C#.NET 2005中文版基礎與實踐教程[M].北京:電子工業出版社,2007.