孫仲益 黃卓維 佟志軍


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