張峻驍 李寬
(成都理工大學(xué)空間信息研究室,四川成都610059)
Google Maps的誕生標(biāo)志著互聯(lián)網(wǎng)地圖服務(wù)的興起。Google作為此項(xiàng)革新的發(fā)起者,為互聯(lián)網(wǎng)帶來(lái)了簡(jiǎn)單易用的Google Maps API。
本文研究的就是結(jié)合Google Maps API和數(shù)字九寨溝的KML數(shù)據(jù),開(kāi)發(fā)出一個(gè)基于WebGIS的數(shù)字九寨溝旅游平臺(tái)來(lái)豐富廣大旅游愛(ài)好者的生活。
WebGIS是Internet技術(shù)應(yīng)用于GIS開(kāi)發(fā)的產(chǎn)物。GIS通過(guò)WWW功能得以擴(kuò)展,真正成為一種大眾使用的工具。隨著GPU硬件加速技術(shù)的運(yùn)用以及HTML5的普及與發(fā)展,我們完全有理由相信WebGIS將會(huì)面臨新一次的革命!
本系統(tǒng)基于B/S模式開(kāi)發(fā)。前臺(tái)由HTML描述語(yǔ)言和JavaScript腳本語(yǔ)言開(kāi)發(fā),主要負(fù)責(zé):UI設(shè)計(jì)、地圖調(diào)用和顯示、以及和地圖相關(guān)的其它功能;后臺(tái)由ASP.NET開(kāi)發(fā),主要負(fù)責(zé):用戶注冊(cè)、登錄、注銷;最后,數(shù)據(jù)庫(kù)方面,主要設(shè)計(jì)2張表:用于認(rèn)證和KML文件存儲(chǔ)。
本平臺(tái)采用的是增量模型。增量模型也被稱為漸增模型,是指在開(kāi)發(fā)軟件時(shí),把軟件產(chǎn)品作為一系列的增量來(lái)設(shè)計(jì)、編碼、集成和測(cè)試。這樣,每個(gè)構(gòu)件就由多個(gè)相互作用的模塊構(gòu)成,并協(xié)作完成相應(yīng)的特定功能。
2.3.1 Google地圖最基本的模塊設(shè)計(jì)
首先需要判斷瀏覽器是否兼容,使用語(yǔ)句:if(GBrowserIsCompatible())。為了顯示地圖,需要?jiǎng)?chuàng)建一個(gè)GMap2對(duì)象,使用語(yǔ)句:
2.3.2 Google地圖解析KML文件模塊設(shè)計(jì)
這部分是本系統(tǒng)功能關(guān)鍵所在,完成了兩大功能:在地圖上解析出了KML和KMZ文件;同時(shí)在右側(cè)顯示出解析內(nèi)容。采用的是第三方開(kāi)源的geoxml.js包來(lái)實(shí)現(xiàn)。這開(kāi)源JS項(xiàng)目來(lái)源于:http://code.google.com/p/geoxml/
加載KML文件函數(shù)代碼如下:
2.3.3 Google地圖搜索功能模塊設(shè)計(jì)
用戶常常對(duì)不熟悉的地方需要搜索來(lái)提供幫助;本搜索功能模塊是在前幾個(gè)模塊的基礎(chǔ)上完成的。其實(shí)現(xiàn)也比較簡(jiǎn)單,主要是利用Google Maps API中的GClientGeocoder類。搜索功能函數(shù)代碼如下:
2.3.4 Google地圖測(cè)量距離模塊設(shè)計(jì)
該模塊采用的是第三方開(kāi)源的ruler.js包來(lái)實(shí)現(xiàn)。測(cè)量距離代碼如下:
本系統(tǒng)的功能主要是通過(guò)Google Maps API(JS版)和一些第三方JS包實(shí)現(xiàn)。難點(diǎn)主要集中在JS函數(shù)的學(xué)習(xí)。至于后臺(tái)用戶認(rèn)證模塊是通過(guò)ASP.NET和ADO.NET實(shí)現(xiàn)。
下面通過(guò)例子,展示各個(gè)功能。
圖1是本系統(tǒng)初始界面,加載了遙感底圖、地標(biāo)、以及線路。從界面結(jié)構(gòu)上講:左側(cè)主要是地圖、包含左下角的距離測(cè)量器,右側(cè)主要是對(duì)KML、KMZ文件內(nèi)容的解析、右上角還提供當(dāng)前坐標(biāo)顯示以及景點(diǎn)搜索功能,可通過(guò)直接輸入地名轉(zhuǎn)到相應(yīng)視圖;在本項(xiàng)目中,由于Google提供的影像地圖達(dá)不到所需要的標(biāo)準(zhǔn),所以我們購(gòu)買了更清晰的底圖,通過(guò)圖層形式疊加到地圖中。如圖2所示。
圖1 初始界面
圖2 遙感底圖加載
點(diǎn)擊各個(gè)地標(biāo)或者選擇右側(cè)對(duì)KML文件解析的內(nèi)容,即可以觀看景點(diǎn)介紹,支持HTML格式,可以播放視頻、圖片。
圖3 視頻播放
本文研究了如何使用JavaScript和Google Maps API將Google地圖嵌入自己的網(wǎng)頁(yè)中,并應(yīng)用到了數(shù)字九寨溝項(xiàng)目中,展示了WebGIS給大眾帶來(lái)的新的體驗(yàn)。隨著瀏覽器功能的進(jìn)一步增強(qiáng)、Google Maps API的進(jìn)一步完善、以及越來(lái)越多的開(kāi)源的JS包的公布,我相信WebGIS會(huì)帶給我們不一樣的感受。
[1] 黃海,祝國(guó)瑞,林孝松.基于WebGIS的港口航道管理信息系統(tǒng)設(shè)計(jì)[J].地理空間信息,2006,(06):66-68.
[2] 吳金塔,曾向明.WEBGIS技術(shù)及其在防汛中的應(yīng)用研究[J].水利科技,2003,(01):24-26.
[3] 桑錦國(guó).基于SVG的WebGIS中矢量圖形處理研究[J].佳木斯大學(xué)學(xué)報(bào)(自然科學(xué)版),2004,(02):43-46.
[4] 張聰.遮光系統(tǒng)設(shè)計(jì)淺介[J].南方建筑,2004,(05):12-14.
[5] 馬德富,丁建勛.淺談實(shí)現(xiàn)WebGIS中網(wǎng)絡(luò)安全的幾點(diǎn)措施[J].城市勘測(cè),2005,(02).
[6] 張海軍,趙雍,王周.基于WebGIS的青藏公路鉆孔數(shù)據(jù)管理系統(tǒng)設(shè)計(jì)[J].四川地質(zhì)學(xué)報(bào),2005,(03):78-79.
[7] 陳永華.WebGIS三維可視化的研究[D].解放軍信息工程大學(xué),2000.