黃 冠,蔡忠亮,2,吳俊法,張曉倩,陳燕妮
(1.武漢大學(xué)資源與環(huán)境科學(xué)學(xué)院,湖北 武漢 430079;2.武漢大學(xué)地理信息系統(tǒng)教育部重點(diǎn)實(shí)驗(yàn)室,湖北 武漢 430079;3.貴州省第三測(cè)繪院,貴州 貴陽 550004)
伴隨著人民生活水平的提高,全國(guó)各地都出現(xiàn)了旅游熱,種類多樣的旅游信息化產(chǎn)品也隨之而來,其中就有部分是為用戶提供旅游信息的旅游系統(tǒng)。張洋等實(shí)現(xiàn)了一款具有出游輔助決策和旅游信息論壇功能的新疆經(jīng)典旅游信息系統(tǒng)[1]。梁智學(xué)利用互聯(lián)網(wǎng)的開放特點(diǎn)實(shí)現(xiàn)了一款“網(wǎng)友共建、信息共享”的旅游信息系統(tǒng)[2]。Liu Yangyang等基于移動(dòng)GIS的特點(diǎn),開發(fā)了焦作自助旅游系統(tǒng)[3]。Ren Ze基于GIS平臺(tái)的空間信息存儲(chǔ)和空間分析能力,利用MapGIS K9實(shí)現(xiàn)了武漢市旅游信息系統(tǒng)[4]。劉海鵬等利用SuperMap iMobile GIS組件實(shí)現(xiàn)了移動(dòng)端導(dǎo)游系統(tǒng)[5]。
這些旅游系統(tǒng)為用戶提供了景點(diǎn)位置信息查詢、景點(diǎn)簡(jiǎn)介、景點(diǎn)照片瀏覽等功能,但仍有一定的缺陷。具體表現(xiàn)在:①系統(tǒng)數(shù)據(jù)源單一。旅游系統(tǒng)中使用的地圖數(shù)據(jù)均為電子地圖數(shù)據(jù),地圖展示形式單一,容納信息量有限;②景區(qū)內(nèi)部景點(diǎn)介紹不足。用戶抵達(dá)旅游景區(qū)后,旅游系統(tǒng)便失去了作用。用戶仍需使用景區(qū)的紙質(zhì)導(dǎo)游圖為自身游覽參考;③景點(diǎn)介紹不夠直觀。旅游系統(tǒng)僅通過文字和照片為用戶介紹景點(diǎn)信息,使得用戶無法對(duì)景區(qū)形成較為全面直觀的感受。
針對(duì)以上問題,有學(xué)者做了相應(yīng)研究,符韶華利用國(guó)家天地圖的數(shù)據(jù)優(yōu)勢(shì),開發(fā)了基于天地圖的實(shí)景旅游信息系統(tǒng)[6];景昕蒂應(yīng)用旅游專題地圖、導(dǎo)游圖,開發(fā)了大連市旅游信息系統(tǒng)[7];張鳳梅等借助虛擬現(xiàn)實(shí)技術(shù)構(gòu)建三維場(chǎng)景,為用戶帶來最直觀的景區(qū)介紹[8-10]。
本文在上述研究的基礎(chǔ)上深入整合,基于國(guó)家測(cè)繪部門旅游GIS數(shù)據(jù)精確、詳實(shí),專題地圖數(shù)據(jù)精美、豐富,全景地圖數(shù)據(jù)精細(xì)、美觀的特點(diǎn),將GIS、地圖、全景圖三類數(shù)據(jù)集成,設(shè)計(jì)并實(shí)現(xiàn)了貴州省Web全景旅游電子地圖系統(tǒng),全面解決了旅游系統(tǒng)地圖數(shù)據(jù)單一、旅游景區(qū)內(nèi)部介紹不夠、旅游景點(diǎn)介紹直觀度不足的缺陷,為用戶提供了精細(xì)、精確、直觀的旅游信息。
旅游電子地圖系統(tǒng)以測(cè)繪部門旅游GIS數(shù)據(jù)、旅游專題圖數(shù)據(jù)、全景圖數(shù)據(jù)作為源數(shù)據(jù),以“一圖,多專,密全景”為集成框架。“一圖”即整個(gè)旅游信息系統(tǒng)基于一張旅游資源電子地圖為底圖展開,其數(shù)據(jù)為旅游GIS數(shù)據(jù);“多?!奔瓷鲜雎糜钨Y源電子地圖依據(jù)空間位置將對(duì)應(yīng)多幅景點(diǎn)、景區(qū)旅游專題地圖;“密全景”表示在一張旅游專題地圖上,各個(gè)具體景點(diǎn)將通過密集的全景圖熱點(diǎn)進(jìn)行表示,系統(tǒng)總體框架設(shè)計(jì)如圖1所示。
在“一圖,多專,密全景”集成框架下,隨著用戶圖面比例尺發(fā)生變化,地圖主體內(nèi)容也將發(fā)生改變。用戶將在較大尺度范圍內(nèi)通過傳統(tǒng)旅游電子地圖進(jìn)行地圖瀏覽、景點(diǎn)查詢等傳統(tǒng)操作,從整體上了解景點(diǎn)空間信息與整體介紹;在中等尺度范圍內(nèi)通過景區(qū)旅游專題地圖進(jìn)行景區(qū)具體景點(diǎn)導(dǎo)覽,進(jìn)一步獲取景點(diǎn)介紹信息與專題特色信息;在小尺度范圍上通過景點(diǎn)全景圖查看景點(diǎn)具體景觀與景色,直觀地了解與查看景點(diǎn)外觀。
圖1 系統(tǒng)總體設(shè)計(jì)圖
系統(tǒng)總體技術(shù)框架為B/S架構(gòu)。Browser端使用JavaScript與html呈現(xiàn)用戶界面、地圖界面并實(shí)現(xiàn)用戶交互。Server端數(shù)據(jù)庫服務(wù)器采用Java語言開發(fā),空間服務(wù)器使用ArcGIS Server服務(wù)器。Browser端與Server端利用Ajax技術(shù),通過互聯(lián)網(wǎng)進(jìn)行訪問。
1.2.1 地圖引擎ArcGIS JavaScript API
ArcGIS JavaScript API是基于瀏覽器的API,用于開發(fā)便捷、高性能的WebGIS應(yīng)用程序[11]。將ArcGIS JavaScript API與 ArcMap、ArcGIS Server組合使用能夠快捷地將地圖、熱點(diǎn)發(fā)布為網(wǎng)絡(luò)地圖服務(wù)(WMS)和網(wǎng)絡(luò)要素服務(wù)(WFS),并嵌入到個(gè)人的網(wǎng)頁當(dāng)中。ArcGIS JavaScript API中ArcGISDynamicMapServiceLayer和FeatureLayer類可動(dòng)態(tài)地調(diào)用網(wǎng)絡(luò)地圖服務(wù)[12]。前者返回一個(gè)可用于查看靜態(tài)的底圖圖層;后者返回一個(gè)動(dòng)態(tài)、可用于交互的熱點(diǎn)圖層。
本系統(tǒng)旅游電子地圖底圖,旅游專題地圖底圖與旅游熱點(diǎn)的加載、顯示、操作、交互等功能將通過ArcGIS JavaScript API實(shí)現(xiàn)。
1.2.2 全景圖框架Krpano
Krpano是一種基于html5的三維全景播放器,它以體積小巧、靈活和高性能著稱,并且具有跨平臺(tái)特點(diǎn)[13]?;谝陨蟽?yōu)勢(shì),本系統(tǒng)全景圖加載、顯示等功能將通過Krpano實(shí)現(xiàn)。
Krpano使用簡(jiǎn)便快捷,其所有功能都由對(duì)應(yīng)的插件實(shí)現(xiàn)[14]。這些插件是對(duì)三維全景圖及其功能的封裝。功能包括三維場(chǎng)景顯示、場(chǎng)景變換、三維熱點(diǎn)顯示、三維特效、多媒體信息展示等。
Krpano插件通過將數(shù)據(jù)接口暴露給用戶以實(shí)現(xiàn)具體功能。這些數(shù)據(jù)接口利用XML標(biāo)簽實(shí)現(xiàn)。對(duì)插件功能的調(diào)用、修改及復(fù)雜場(chǎng)景、效果的定義通過創(chuàng)建或修改XML文件標(biāo)簽實(shí)現(xiàn)。其中,一個(gè)簡(jiǎn)單場(chǎng)景的定義可通過以下標(biāo)簽嵌套實(shí)現(xiàn):
該系統(tǒng)數(shù)據(jù)包含貴州省旅游普查GIS數(shù)據(jù)、貴州省旅游圖集數(shù)據(jù)、貴州省航拍影像數(shù)據(jù),有著多源、多類型、多尺度的特點(diǎn)。
其中旅游普查GIS數(shù)據(jù)來源于貴州省旅游資源大普查景點(diǎn)數(shù)據(jù),共約10 000條記錄。每條記錄包含該景點(diǎn)的空間位置、簡(jiǎn)介、等級(jí)、類型、多媒體等信息。數(shù)據(jù)共13大類,69小類與5種等級(jí)共115種組合。景點(diǎn)類型包括:地文景觀、水域風(fēng)光、生物景觀、天象與氣候景觀等。景點(diǎn)等級(jí)包括五級(jí)、四級(jí)、三級(jí)、A級(jí)、非A級(jí)。
旅游專題圖數(shù)據(jù)來源于貴州省旅游圖集。共包含貴陽市、貴安新區(qū)、安順市等10個(gè)地州市及其下轄縣的多種類型專題旅游圖、特色旅游資源圖、旅游景區(qū)專題圖。
航拍影像數(shù)據(jù)為720°全景圖數(shù)據(jù)。全景圖像按照級(jí)別(l1-l4),方位(f:前方、l:左方、r:右方、b:后方、u:天頂方向、d:地面方向)進(jìn)行切圖。切圖數(shù)據(jù)以jpg格式存放在與其等級(jí)、方位相對(duì)應(yīng)的文件夾中。其中單幅全景圖大小在10~20 MB,總?cè)皥D大小在50~100 GB。
由于系統(tǒng)數(shù)據(jù)數(shù)量龐大、數(shù)據(jù)類型多樣,在數(shù)據(jù)庫設(shè)計(jì)時(shí)考慮將空間數(shù)據(jù)庫、關(guān)系型數(shù)據(jù)庫、文件型數(shù)據(jù)庫三種形式相結(jié)合。其中旅游GIS數(shù)據(jù)中的景點(diǎn)屬性數(shù)據(jù)由關(guān)系型數(shù)據(jù)庫存儲(chǔ);旅游GIS數(shù)據(jù)中的景點(diǎn)空間數(shù)據(jù)和旅游專題圖數(shù)據(jù)由空間數(shù)據(jù)庫負(fù)責(zé)存儲(chǔ);旅游GIS數(shù)據(jù)中的景點(diǎn)多媒體數(shù)據(jù)和全景圖數(shù)據(jù)由文件型數(shù)據(jù)庫負(fù)責(zé)存儲(chǔ)。系統(tǒng)所包含數(shù)據(jù)類型以及與數(shù)據(jù)庫對(duì)應(yīng)關(guān)系如圖2所示。
圖2 數(shù)據(jù)庫設(shè)計(jì)圖
為實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)目標(biāo)與滿足用戶需求,系統(tǒng)共包含9項(xiàng)功能:①地圖瀏覽模塊:為用戶提供基礎(chǔ)地圖瀏覽、漫游縮放功能;②地圖交互模塊:用戶可在圖面中通過熱點(diǎn)懸浮、點(diǎn)擊等操作獲取該景點(diǎn)的基礎(chǔ)簡(jiǎn)介信息;③景點(diǎn)查詢模塊:為用戶提供了基于景點(diǎn)名的模糊搜索功能;④圖層管理模塊:為用戶提供圖層開關(guān),方便用戶從多種景點(diǎn)類型與景點(diǎn)等級(jí)中篩選感興趣的景點(diǎn)類別與等級(jí);⑤多媒體瀏覽模塊:在地圖交互模塊獲取景點(diǎn)及文字介紹的基礎(chǔ)上,為用戶帶來景點(diǎn)照片和視頻介紹;⑥地圖工具模塊:包含測(cè)距、鷹眼圖、導(dǎo)航等常用地圖功能;⑦景點(diǎn)統(tǒng)計(jì)模塊:依據(jù)行政區(qū)域統(tǒng)計(jì)了全省不同類型、不同等級(jí)景點(diǎn)數(shù)量,為用戶提供出行區(qū)域參考;⑧全景圖瀏覽模塊:為用戶提供全景圖瀏覽功能;⑨跳轉(zhuǎn)聯(lián)動(dòng)模塊:當(dāng)前全景圖中可包含其他景點(diǎn)熱點(diǎn)。它們依據(jù)景點(diǎn)在空間的真實(shí)相對(duì)位置,存在于當(dāng)前全景圖中對(duì)應(yīng)方位。點(diǎn)擊這些全景圖熱點(diǎn),將直接跳轉(zhuǎn)到對(duì)應(yīng)景點(diǎn)全景圖。
其中①~⑦功能用于旅游電子地圖與旅游專題地圖瀏覽;⑧~⑨功能用于旅游全景圖瀏覽,系統(tǒng)功能設(shè)計(jì)圖如圖3所示。
圖3 系統(tǒng)功能設(shè)計(jì)圖
“一圖、多專、密全景”集成框架示意圖如圖4所示。該設(shè)計(jì)框架借鑒了分級(jí)瓦片地圖服務(wù)中,隨著比例尺逐漸增大,地圖瓦片內(nèi)容更加精細(xì),地圖信息更為豐富的特點(diǎn),根據(jù)三類圖顯示風(fēng)格、所承載旅游信息量、用戶使用習(xí)慣對(duì)旅游景點(diǎn)進(jìn)行“分級(jí)”顯示操作。該“分級(jí)”顯示的關(guān)鍵在于實(shí)現(xiàn)三類地圖顯示過程的無縫連接。
為此,旅游電子地圖、旅游專題圖和旅游全景圖將首先被分別加載入ID為WebMap、thematicMap的ArcGISDynamicMapServiceLayer以及Krpano全景組件中。
圖4 “一圖,多專,密全景”集成框架示意圖
隨后,建立函數(shù)scaleListener監(jiān)聽地圖比例尺,并設(shè)定合理閾值t1記錄旅游電子地圖和旅游專題地圖的切換比例尺和t2記錄旅游專題地圖和旅游全景圖的切換比例尺。
當(dāng)監(jiān)聽函數(shù)監(jiān)聽到當(dāng)前圖面比例尺進(jìn)入某范圍時(shí),系統(tǒng)通過上述ID將對(duì)應(yīng)的地圖圖層或組件display屬性設(shè)定為true或block,將其他兩類地圖圖層或組件display屬性設(shè)置為false或none,以實(shí)現(xiàn)三類地圖無縫連接顯示。
在線電子地圖中熱點(diǎn)顯示的常用方法包括以下兩類:①將每個(gè)地圖熱點(diǎn)作為一條記錄保存至數(shù)據(jù)庫中,每條記錄包括該點(diǎn)的空間屬性與非空間屬性。在顯示熱點(diǎn)時(shí),從數(shù)據(jù)庫中依次讀取記錄,并調(diào)用地圖API的addPoint方法添加熱點(diǎn)與pointSymbol方法渲染熱點(diǎn)樣式。②事先將地圖熱點(diǎn)發(fā)布為WFS服務(wù),并調(diào)用地圖API的addServiceLayer方法加載該地圖服務(wù)。
方法一可以簡(jiǎn)便地變化熱點(diǎn)樣式,但由于需要頻繁訪問數(shù)據(jù)庫,因此加載耗時(shí)長(zhǎng)。方法二加載服務(wù)耗時(shí)短,但在更新熱點(diǎn)樣式時(shí)需要重新發(fā)布熱點(diǎn)服務(wù)。
本系統(tǒng)中所涉及的景點(diǎn)類型、等級(jí)組合共115種,景點(diǎn)熱點(diǎn)數(shù)量約10 000個(gè),既需要保證較快的地圖熱點(diǎn)顯示速度,又需要考慮地圖熱點(diǎn)更新的便捷性。因此在存儲(chǔ)旅游地圖熱點(diǎn)時(shí),系統(tǒng)將兩類方法合并。發(fā)布服務(wù)時(shí),依據(jù)熱點(diǎn)類型將熱點(diǎn)分為多個(gè)圖層[layer1,layer2,……layern],并將所有熱點(diǎn)設(shè)置為透明樣式。服務(wù)發(fā)布完畢后,將服務(wù)地址url和圖層應(yīng)有樣式名序列[symbol1,symbol2,……,symboln]保存至數(shù)據(jù)庫中。
加載地圖服務(wù)時(shí),系統(tǒng)通過url從地圖服務(wù)中獲得熱點(diǎn)空間位置信息,通過景點(diǎn)圖層樣式序列在服務(wù)器端尋找對(duì)應(yīng)的熱點(diǎn)符號(hào)文件[symbol1.png,symbol2.png,……,symboln.png],以實(shí)現(xiàn)對(duì)服務(wù)中各圖層熱點(diǎn)樣式的渲染。
此方案有效地解決了多類型數(shù)據(jù)在Web端的顯示問題。在顯示符號(hào)的更新上,僅需替換服務(wù)器端熱點(diǎn)符號(hào)文件即可,避免了重復(fù)發(fā)布服務(wù)而增大工作量的弊端。
在全景圖瀏覽時(shí),用戶界面固定在當(dāng)前景點(diǎn)全景圖。若無跳轉(zhuǎn)聯(lián)動(dòng)功能,則當(dāng)用戶需要瀏覽其他景點(diǎn)全景圖時(shí),必須先回到旅游專題地圖,再進(jìn)入目標(biāo)全景圖,增加了用戶操作繁瑣度。
針對(duì)該問題,本文通過Krpano全景圖熱點(diǎn)實(shí)現(xiàn)全景圖內(nèi)的跳轉(zhuǎn)聯(lián)動(dòng)。
全景圖熱點(diǎn)XML標(biāo)簽為hotspot,熱點(diǎn)表示為 ath為平面方位角,數(shù)值為0~360°;atv為仰角,數(shù)值為-90~90°;兩屬性確定了該熱點(diǎn)在全景圖中的球面坐標(biāo)方位。由于熱點(diǎn)相對(duì)方位不要求完全精確,為簡(jiǎn)化計(jì)算,計(jì)算ath時(shí)由平面坐標(biāo)代替球面坐標(biāo),由式1所示(atv統(tǒng)一取15°)。 式中,xi、yi為目標(biāo)景點(diǎn)平面坐標(biāo);x、y為當(dāng)前景點(diǎn)平面坐標(biāo);θ為無人機(jī)飛行方向與真北方向夾角。在系統(tǒng)實(shí)現(xiàn)過程中,一幅全景圖僅會(huì)查找距它一定范圍內(nèi)的其他全景圖,并將它們以熱點(diǎn)的形式添加到該全景圖中。 onclick屬性指向名為loadscene的函數(shù)。loadscene()的函數(shù)將根據(jù)傳入?yún)?shù)值找尋對(duì)應(yīng)全景圖場(chǎng)景并加載。在此例中,點(diǎn)擊全景圖熱點(diǎn),將加載name屬性為tourism的新場(chǎng)景: …… 在地圖顯示與地圖交互上,系統(tǒng)以“一圖、多專、密全景”為集成框架,實(shí)現(xiàn)了貴州省旅游專題圖、旅游普查GIS數(shù)據(jù)、景區(qū)全景圖的有機(jī)結(jié)合顯示。隨著用戶圖面比例尺由小逐漸增大,地圖主體內(nèi)容將依次呈現(xiàn)旅游電子地圖、旅游專題圖、旅游全景圖,顯示效果如圖5a、b、c所示。隨著地圖主體內(nèi)容的變化,地圖所承載與表達(dá)的信息量、地圖顯示方式、地圖交互方式也將呈現(xiàn)出多樣性。 在系統(tǒng)功能上,系統(tǒng)實(shí)現(xiàn)了多媒體信息瀏覽、景點(diǎn)查詢、景點(diǎn)統(tǒng)計(jì)等功能。景點(diǎn)多媒體信息瀏覽包括景點(diǎn)照片瀏覽與景點(diǎn)視頻瀏覽;景點(diǎn)查詢實(shí)現(xiàn)了基于景點(diǎn)名稱的模糊搜索;景點(diǎn)統(tǒng)計(jì)功能實(shí)現(xiàn)了全省各類型,各等級(jí)景點(diǎn)數(shù)量與位置統(tǒng)計(jì),以上系統(tǒng)功能實(shí)現(xiàn)效果如圖6a、b、c、d所示。 圖5 系統(tǒng)瀏覽效果圖 圖6 系統(tǒng)功能效果圖 系統(tǒng)豐富了旅游系統(tǒng)中旅游信息的表現(xiàn)力與表達(dá)形式,較好地輔助了用戶對(duì)地圖景點(diǎn)的瀏覽,增強(qiáng)了用戶對(duì)景點(diǎn)的直觀了解程度。 利用測(cè)繪部門地理信息數(shù)據(jù)全面精準(zhǔn)的資源優(yōu)勢(shì)、專題地圖精美詳實(shí)的專業(yè)優(yōu)勢(shì)、全景圖精細(xì)美觀的技術(shù)優(yōu)勢(shì)、以旅游出行為結(jié)合點(diǎn),使用WebGIS技術(shù),以ArcGIS JavaScript API為傳統(tǒng)地圖框架,結(jié)合近幾年應(yīng)用廣泛的全景圖技術(shù),以“一圖、多專、密全景”為集成框架,實(shí)現(xiàn)了貴州省Web全景旅游電子地圖系統(tǒng)。系統(tǒng)通過用戶常用的電子地圖、精美的旅游專題地圖、真實(shí)直觀的全景圖相結(jié)合的方式,使得用戶對(duì)旅游景區(qū)有了更為直觀、全面的了解,為用戶的旅游出行提供了參考,有良好的現(xiàn)實(shí)意義和推廣使用價(jià)值。 在今后的研究中,還可在全景圖的使用上向AR/VR的方向深入研究,探究AR/VR技術(shù)在旅游信息系統(tǒng)中的應(yīng)用,進(jìn)一步增強(qiáng)用戶體驗(yàn)。3 系統(tǒng)實(shí)現(xiàn)
4 結(jié) 語