張峻驍 李寬
(成都理工大學空間信息研究室,四川成都610059)
Google Maps的誕生標志著互聯網地圖服務的興起。Google作為此項革新的發起者,為互聯網帶來了簡單易用的Google Maps API。
本文研究的就是結合Google Maps API和數字九寨溝的KML數據,開發出一個基于WebGIS的數字九寨溝旅游平臺來豐富廣大旅游愛好者的生活。
WebGIS是Internet技術應用于GIS開發的產物。GIS通過WWW功能得以擴展,真正成為一種大眾使用的工具。隨著GPU硬件加速技術的運用以及HTML5的普及與發展,我們完全有理由相信WebGIS將會面臨新一次的革命!
本系統基于B/S模式開發。前臺由HTML描述語言和JavaScript腳本語言開發,主要負責:UI設計、地圖調用和顯示、以及和地圖相關的其它功能;后臺由ASP.NET開發,主要負責:用戶注冊、登錄、注銷;最后,數據庫方面,主要設計2張表:用于認證和KML文件存儲。
本平臺采用的是增量模型。增量模型也被稱為漸增模型,是指在開發軟件時,把軟件產品作為一系列的增量來設計、編碼、集成和測試。這樣,每個構件就由多個相互作用的模塊構成,并協作完成相應的特定功能。
2.3.1 Google地圖最基本的模塊設計
首先需要判斷瀏覽器是否兼容,使用語句:if(GBrowserIsCompatible())。為了顯示地圖,需要創建一個GMap2對象,使用語句:


2.3.2 Google地圖解析KML文件模塊設計
這部分是本系統功能關鍵所在,完成了兩大功能:在地圖上解析出了KML和KMZ文件;同時在右側顯示出解析內容。采用的是第三方開源的geoxml.js包來實現。這開源JS項目來源于:http://code.google.com/p/geoxml/
加載KML文件函數代碼如下:


2.3.3 Google地圖搜索功能模塊設計
用戶常常對不熟悉的地方需要搜索來提供幫助;本搜索功能模塊是在前幾個模塊的基礎上完成的。其實現也比較簡單,主要是利用Google Maps API中的GClientGeocoder類。搜索功能函數代碼如下:

2.3.4 Google地圖測量距離模塊設計
該模塊采用的是第三方開源的ruler.js包來實現。測量距離代碼如下:

本系統的功能主要是通過Google Maps API(JS版)和一些第三方JS包實現。難點主要集中在JS函數的學習。至于后臺用戶認證模塊是通過ASP.NET和ADO.NET實現。
下面通過例子,展示各個功能。
圖1是本系統初始界面,加載了遙感底圖、地標、以及線路。從界面結構上講:左側主要是地圖、包含左下角的距離測量器,右側主要是對KML、KMZ文件內容的解析、右上角還提供當前坐標顯示以及景點搜索功能,可通過直接輸入地名轉到相應視圖;在本項目中,由于Google提供的影像地圖達不到所需要的標準,所以我們購買了更清晰的底圖,通過圖層形式疊加到地圖中。如圖2所示。

圖1 初始界面

圖2 遙感底圖加載
點擊各個地標或者選擇右側對KML文件解析的內容,即可以觀看景點介紹,支持HTML格式,可以播放視頻、圖片。

圖3 視頻播放
本文研究了如何使用JavaScript和Google Maps API將Google地圖嵌入自己的網頁中,并應用到了數字九寨溝項目中,展示了WebGIS給大眾帶來的新的體驗。隨著瀏覽器功能的進一步增強、Google Maps API的進一步完善、以及越來越多的開源的JS包的公布,我相信WebGIS會帶給我們不一樣的感受。
[1] 黃海,祝國瑞,林孝松.基于WebGIS的港口航道管理信息系統設計[J].地理空間信息,2006,(06):66-68.
[2] 吳金塔,曾向明.WEBGIS技術及其在防汛中的應用研究[J].水利科技,2003,(01):24-26.
[3] 桑錦國.基于SVG的WebGIS中矢量圖形處理研究[J].佳木斯大學學報(自然科學版),2004,(02):43-46.
[4] 張聰.遮光系統設計淺介[J].南方建筑,2004,(05):12-14.
[5] 馬德富,丁建勛.淺談實現WebGIS中網絡安全的幾點措施[J].城市勘測,2005,(02).
[6] 張海軍,趙雍,王周.基于WebGIS的青藏公路鉆孔數據管理系統設計[J].四川地質學報,2005,(03):78-79.
[7] 陳永華.WebGIS三維可視化的研究[D].解放軍信息工程大學,2000.