孫仲益 黃卓維 佟志軍
摘 要:旅游信息系統(tǒng)是數(shù)字城市的一個重要組成部分,也是城市信息化發(fā)展的重要內(nèi)容。而由屬性和空間數(shù)據(jù)庫驅(qū)動,并將Google Maps API與Web GIS技術(shù)結(jié)合的旅游地理信息系統(tǒng)的設(shè)計方案與傳統(tǒng)的旅游信息系統(tǒng)相比,有著空間信息準(zhǔn)確、功能強(qiáng)大、輕量級、易擴(kuò)展的特點(diǎn)。并針對長春市旅游業(yè)發(fā)展情況,開發(fā)長春市旅游信息系統(tǒng),該系統(tǒng)將為長春市旅游管理和旅游業(yè)發(fā)展提供可靠的信息平臺。
關(guān)鍵詞:旅游地理信息系統(tǒng)Google APIWeb GIS
中圖分類號:P429 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2012)05(b)-0019-02
旅游地理信息系統(tǒng),是旅游學(xué)、地理學(xué)和計算機(jī)網(wǎng)絡(luò)科學(xué)等科學(xué)集中一體的產(chǎn)物,是獲取、存儲、管理、傳輸和應(yīng)用旅游地理信息的系統(tǒng)。Google Maps API 是Google為開發(fā)者提供的編程API,允許用戶在不建立個人地圖服務(wù)的前提下,將Google的地圖數(shù)據(jù)嵌入到所建網(wǎng)站之中,并可以借助Google地圖數(shù)據(jù)為用戶提供位置服務(wù)?;贕oogle Maps API的Web GIS系統(tǒng),相對于現(xiàn)行的Web GIS系統(tǒng)相比,減少基礎(chǔ)數(shù)據(jù)處理量,并且有著更加穩(wěn)定的GIS服務(wù)。長春市旅游信息系統(tǒng)是將長春市的各種空間對象以數(shù)字化的形式在計算機(jī)中反映出來,從而有效地管理空間數(shù)據(jù),為用戶提供準(zhǔn)確的旅游信息服務(wù),也便于有關(guān)部門進(jìn)行旅游建設(shè)決策。
Google API系列屬于Web API的一種,是通過開放的Internet傳輸協(xié)議,以標(biāo)準(zhǔn)方式定義服務(wù)內(nèi)容并提供可被其他應(yīng)用調(diào)用的API。本文闡述了基于Google Maps API與Web GIS技術(shù)的旅游地理信息系統(tǒng)的設(shè)計方案,并以長春市為例實現(xiàn)系統(tǒng)開發(fā)。
1 系統(tǒng)結(jié)構(gòu)設(shè)計
總體框架分為客戶端、服務(wù)器和數(shù)據(jù)庫??蛻舳颂峁┯脩襞cWeb服務(wù)器之間良好的交互界面。用戶通過終端向服務(wù)器發(fā)出查詢請求后,服務(wù)器處理請求,并把結(jié)果通過聲音、文字等直觀形式反饋。良好設(shè)計的界面是提高用戶體驗的關(guān)鍵。主要運(yùn)用Html和CSS實現(xiàn)框架,同時輔以JavaScript,包括jQuery庫和jQuery UI庫實現(xiàn)客戶端功能,同時保證界面的美觀。服務(wù)器分為Web服務(wù)器和地圖應(yīng)用服務(wù)器,Web服務(wù)器接受并檢驗客戶端請求,處理后與數(shù)據(jù)庫服務(wù)器端交互。其中面向用戶的服務(wù)由ASP.Net腳本開發(fā),面向管理的服務(wù)由PHP腳本開發(fā)。應(yīng)用服務(wù)器分為地圖應(yīng)用服務(wù)器和天氣應(yīng)用服務(wù)器。應(yīng)用服務(wù)器都由Google部署和維護(hù),Web應(yīng)用服務(wù)器通過調(diào)用Google Maps API和Google Weather API等得到相應(yīng)的結(jié)果。數(shù)據(jù)分為空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫,Web服務(wù)器和應(yīng)用服務(wù)器通過SQL語言向數(shù)據(jù)庫發(fā)出操作指令??臻g數(shù)據(jù)庫由Google管理,屬性數(shù)據(jù)庫部署在本地。
根據(jù)面向?qū)ο蟮牟煌?系統(tǒng)又可分為面向用戶結(jié)構(gòu)和面向管理結(jié)構(gòu),如圖1所示。
1.1 面向普通用戶結(jié)構(gòu)設(shè)計
客戶端的瀏覽器向面向用戶的Web服務(wù)器提交的查詢請求后,經(jīng)過Web服務(wù)器接收,根據(jù)查詢請求內(nèi)容,將查詢請求處理后向不同服務(wù)器進(jìn)行分發(fā),根據(jù)后續(xù)服務(wù)器的不同,分為屬性查詢修改、地圖查詢和天氣查詢?nèi)N請求類型。
屬性查詢修改請求是對屬性信息的查詢或者修改請求,例如用戶信息查詢,傳遞給屬性數(shù)據(jù)庫服務(wù)器,得到查詢結(jié)果后直接返回客戶端;地圖查詢請求是客戶端將地理信息相關(guān)查詢請求向Google的地圖應(yīng)用服務(wù)器傳遞請求,再由地圖應(yīng)用服務(wù)器向空間數(shù)據(jù)庫服務(wù)器提交查詢請求,并暫時將查詢結(jié)果返回給地圖應(yīng)用服務(wù)器;天氣查詢請求是客戶端天氣應(yīng)用相關(guān)查詢向Google的天氣應(yīng)用服務(wù)器提出查詢請求,由天氣應(yīng)用服務(wù)器處理請求。其中,由于涉及跨域的安全性問題,使用Web服務(wù)器作為代理,天氣應(yīng)用服務(wù)器和地圖應(yīng)用服務(wù)器得到的查詢結(jié)果先返回給代理,再由代理返回給用戶端的瀏覽器。
1.2 面向管理用戶結(jié)構(gòu)設(shè)計
該結(jié)構(gòu)作為后臺對用戶信息進(jìn)行管理。管理人員同樣通過客戶端的瀏覽器,向面向管理的Web服務(wù)器發(fā)送查詢請求,然后由其向?qū)傩詳?shù)據(jù)庫提出查詢、插入、修改和刪除等請求,最終還是由面向管理的Web服務(wù)器接收并處理查詢結(jié)果,再返回給用戶端的瀏覽器。
2 數(shù)據(jù)庫設(shè)計
2.1 屬性數(shù)據(jù)庫設(shè)計
本系統(tǒng)選用MySQL作為數(shù)據(jù)庫來存放用戶和景點(diǎn)的相關(guān)信息,MySQL是一款小巧的關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng),使用靈活性高,適合于本系統(tǒng)類型的網(wǎng)站的使用。本系統(tǒng)的屬性數(shù)據(jù)庫包含九個表,其具體存儲內(nèi)容如表1所示。
2.2 空間數(shù)據(jù)庫設(shè)計
空間數(shù)據(jù)庫指的是地理信息系統(tǒng)在計算機(jī)物理介質(zhì)上存儲的與應(yīng)用相關(guān)的地理空間數(shù)據(jù)的總和。本系統(tǒng)的空間數(shù)據(jù)庫由兩部分組成,一部分是Google Maps 所提供的基礎(chǔ)地理數(shù)據(jù),使用時只需要調(diào)用Google Maps API即可,另一部分是SuperMap的sdb格式的空間數(shù)據(jù)庫。SuperMap SDX+全面支持目前主流的關(guān)系數(shù)據(jù)庫平臺,還可以直接訪問WFS、WMS、WCS等所提供的Web服務(wù),并且對于Oracle Spatial 和SDB也較好支持。SuperMap SDX+對于傳統(tǒng)的點(diǎn)、線、面類型的空間對象提供全面支持,而且對拓?fù)淠P汀⒕W(wǎng)絡(luò)模型、格網(wǎng)數(shù)據(jù)等復(fù)雜的數(shù)據(jù)模型也支持良好。
3 長春市旅游地理信息系統(tǒng)實現(xiàn)
3.1 面向用戶系統(tǒng)實現(xiàn)
前臺功能主要分為景點(diǎn)部分和用戶部分,景點(diǎn)部分旨在提供相應(yīng)的景點(diǎn)信息和評論等內(nèi)容,而用戶部分提供了良好的交流平臺,同時包含決策支持與定位功能。
用戶端面向用戶界面如圖2所示。
景點(diǎn)面板中景點(diǎn)描述功能用于顯示景點(diǎn)相關(guān)信息。其中包括的經(jīng)緯度坐標(biāo)通過Google Maps查詢得到。而相關(guān)圖片,通過jQuery庫,允許用戶放大觀看,也可以進(jìn)行幻燈片式瀏覽。交通查詢功能通過Google Maps API與Directions Service進(jìn)行通信,該服務(wù)將接收路線請求并傳回計算結(jié)果。再使用Directions Renderer對象渲染這些結(jié)果。評論功能使得用戶可以對景點(diǎn)進(jìn)行評分和評論,同時也可以查看其他用戶對該景點(diǎn)的評價。評論將經(jīng)過后臺管理員審核后顯示。天氣查詢使用Google Weather API,查詢長春的當(dāng)天和未來5天的天氣狀況。在頁面載入過程中向http://www.google.com/ig/api發(fā)送Http請求,并通過代理服務(wù)器解析返回的XML數(shù)據(jù)。
用戶面板中地理定位是通過各種數(shù)據(jù)收集機(jī)制識別用戶或計算設(shè)備的地理位置。主要通過W3C 的Geolocation標(biāo)準(zhǔn)確定用戶位置,同時通過Google的高程數(shù)據(jù)庫查詢海拔數(shù)據(jù)。聊天功能允許用戶可以管理好友或進(jìn)行在線即時交流,包括發(fā)送地理坐標(biāo)等功能??梢宰屜到y(tǒng)智能添加好友,則會根據(jù)用戶的相關(guān)記錄判斷對景點(diǎn)的偏好情況進(jìn)行配對。組團(tuán)與行程安排功能允許用戶可以加入和退出組團(tuán),同時也可以新建一個對于特定景點(diǎn)在特定時間內(nèi)瀏覽的組團(tuán),新建的組團(tuán)在后臺管理員審核后可以成功創(chuàng)建。組團(tuán)的成員可以邀請自己的好友加入組團(tuán)。組團(tuán)中同樣可以線即時交流,包括發(fā)送地理坐標(biāo)等功能。日程功能通過使用戶設(shè)定瀏覽景點(diǎn)與游覽時間,進(jìn)行提示和記錄。換膚功能是在客戶端每個html標(biāo)簽中加入相應(yīng)的class名稱,通過jQuery UI的ThemeRoller應(yīng)用整體配色方案,達(dá)到換膚效果。
3.2 面向管理用戶結(jié)構(gòu)實現(xiàn)
面向管理的服務(wù)由PHP腳本進(jìn)行編寫,客戶端由Html和CSS構(gòu)建框架,同時輔以少量的JavaScript腳本完成功能,一共分為組團(tuán)管理,景點(diǎn)管理和用戶管理三個模塊。組團(tuán)管理用于查看組團(tuán)信息、驗證組團(tuán)和修改人數(shù)上限等。景點(diǎn)管理則用于查看、添加或管理景點(diǎn)庫。用戶管理可以驗證新用戶,刪除用戶和修改用戶的權(quán)限等。圖3為面向管理系統(tǒng)界面。
4 結(jié)語
旅游地理信息系統(tǒng)以Web GIS的概念將旅游和用戶信息數(shù)據(jù)庫結(jié)合,通過地圖載體呈現(xiàn),從而改善以往的旅游信息系統(tǒng)幾乎全是文字和圖片信息的缺陷。利用Google Maps API加強(qiáng)了空間信息的豐富度,而Ajax技術(shù)的引入使得用戶享受到電子地圖般的瀏覽體驗。本研究采用開放性軟件與免費(fèi)的地圖API,資料的取得與技術(shù)支持也較為便捷,并配合服務(wù)器端的數(shù)據(jù)庫進(jìn)行數(shù)據(jù)的管理。此架構(gòu)利于資源共享,且因?qū)儆陂_放性的標(biāo)準(zhǔn)系統(tǒng),兼容性強(qiáng)。