謝中凱,李飛雪,柳 林,任沂斌
(1. 南京大學 江蘇省地理信息技術重點實驗室,江蘇 南京 210023;2. 山東科技大學 測繪學院,山東 青島 266590)
本文設計的旅游公眾服務系統由三層框架[1-5]組成,包括客戶端表現層、服務器中間層、數據層,如圖1所示。

圖1 系統框架結構
1)客戶端表現層。客戶端使用Silverlight構建,以地圖作為用戶獲取旅游信息的入口。客戶端展現系統界面,還可完成一定的數據計算,減少客戶端與服務器端的交互,提高系統響應速度[6,7]。客戶端有兩種獲取信息的方式:第一種為通過ArcGIS API for Silverlight提供的相關Task從ArcGIS Server發布的地圖服務中提取空間信息,這個過程即GIS空間分析的過程;第二種為通過Web Service完成與后臺數據庫的交互。客戶端獲取的信息可通過Silverlight的可視化手段展現出來。
2)服務器中間層。服務器由GIS服務器和Web服務器組成。ArcGIS Server作為GIS服務器,發布地圖服務和進行投影、緩沖等幾何操作的Geometry服務;IIS(internet information services,互聯網信息服務)作為Web服務器,發布自定義的Web Service服務。
3)數據層。數據庫由SQL Server數據庫和多媒體數據庫組成。通過空間數據引擎ArcSDE將空間數據和景點屬性數據統一存儲于SQL Server數據庫中;多媒體數據庫以文件夾形式存在,存儲景點的圖片、視頻等多媒體信息。
在分析公眾對旅游信息需求的基礎上,確定旅游公眾服務系統應當具有的功能如下:
1)地圖服務。提供旅游城市地圖的瀏覽、放大、縮小等視圖操作功能,并提供與Bing地圖、衛星地圖的切換功能。
2)景點展示。通過旅游景點的圖片、360°全景圖片、視頻等信息展示城市旅游景點的特色。
3)景點動態。主要介紹各旅游景點最新發生的事件、新增加的活動內容,例如招商、折扣等內容。
4)旅游攻略。查看當日及未來兩天的天氣狀況;通過圖表對比不同月份不同景點的旅游熱度、同一月份不同景點的旅游熱度,幫助游客進行旅游時間和路線的規劃,為旅游出行提供優化方案。
5)搜索查詢。進行旅游景點、賓館、飯店、車站等旅游興趣點的搜索,并將結果在地圖上進行氣泡顯示,提供景點圖片、景點視頻等詳細資料。同時,根據用戶選擇的地點和范圍,查詢其周邊一定范圍內的旅游興趣點信息。
6)旅游導航。根據用戶輸入或在圖形上選擇的起止地點,提供公交路線查詢,查詢兩景點之間的公交旅游路線。同時,提供自駕車旅游導航,用戶可根據自己的喜好,選擇自駕游路線,系統將對旅游路線提供模擬旅游。
7)三維模擬。利用Silverlight 5提供的三維場景構建技術,對景點重點建筑進行仿真建模,并將三維模型進行網絡發布,實現Web端的景點三維展示[8]。
系統數據庫包括空間數據庫、屬性數據庫、多媒體數據庫3個部分。空間數據庫存儲的空間圖形數據是本系統的特色。系統遵循空間數據建庫原則和方法,采用分層方式來對各種空間數據進行管理。部分屬性信息,諸如景點名稱、景點地址等可通過圖層的屬性表記錄。空間數據主要包括兩大部分:一是基礎空間數據,包括河流、綠地、道路、城市地塊等圖層;二是專題數據,它是旅游公眾服務系統的主題,也是公眾應用該系統所關注的核心部分[9],主要包括旅游景點、酒店賓館、飯店、醫療、車站等圖層。景點屬性數據庫記錄與景點相關的文字介紹、旅游統計信息等,可用于旅游信息挖掘。多媒體數據庫存儲反映景點特色的圖片和視頻,便于景點進行旅游推廣。
ArcGIS API for Silverlight是用于在客戶端開發WebGIS應用的一組類庫,可以通過Rest接口訪問ArcGIS Server發布的各種服務。旅游公眾服務系統的開發屬于客戶端開發,其與服務器端的交互通過兩種方式進行。
1)Silverlight API提供 的Tasks。Tasks是提供公共結果的一組通用GIS操作。Task的用法遵循幾個步驟:實例化Task對象,注冊Task完成、失敗的監聽事件,提交Task所需參數,等待服務器完成任務后處理返回的結果。Silverlight API目前提供了QueryTask、FindTask、IdentityTask、Locator、Geometry Service、Geoprocessor等Task功能。
2)Web Service或WCF。大量旅游景點的屬性信息都存放在服務器端的數據庫中,Silverlight搭建的客戶端平臺無法直接操作后臺數據庫,但是可以使用Web Service或者WCF(windows communication foundation)[10,11]進行數據庫的訪問。
Silverlight 5通過引入一個輕量級的XNA Graphics Framework 4.0實現了網頁三維場景的構建。它依靠DrawingSurface控件渲染3D圖形,并且增加了一些新類來支持3D,比如Microsoft.Xna.Framework包含能被3D圖形類使用的Color和Rectangle類。虛擬三維場景中逼真的三維模型,如建筑物、樹木等,不能使用普通3D圖形(如矩形、球形)進行組合制作,需要通過專業建模軟件生成。本系統使用Google SketchUp進行三維建模。
為了能夠在網頁上生成三維虛擬旅游場景,需要在地圖上將各種地物要素模型放到合適的地理位置上。三維場景的構建包括以下步驟:
1)從ArcMap中導出CAD格式的地圖作為SketchUp中模型放置的底圖。
2)對重點建筑物進行三維建模,并使用貼圖作為紋理。
3)在SketchUp中設置與ArcMap相同的地圖單位,并調整CAD底圖到正確的地理尺度,將建筑物模型擺放到正確的地理位置,如圖2。

圖2 CAD格式底圖的三維場景
4)在SketchUp中將坐標軸平移到某一位置作為場景的坐標原點,將三維模型導出為.fbx格式的模型和貼圖文件,模型自身將帶有相對坐標。
5)將模型和貼圖添加到系統中。首先以文本形式打開模型,將模型貼圖的絕對路徑修改為相對路徑,然后以代碼形式實現模型加載。
本系統主頁界面(圖3)設計遵循實用性和可操作性雙重原則,以創建友好、大眾的用戶界面為目標,將地圖作為系統入口。在使用Silverlight搭建客戶端時,模仿C/S結構的桌面程序,將功能模塊按鈕分門別類地集中放置,在菜單切換、窗體彈出時加入動畫效果,提高用戶交互性體驗。地圖制作使用了ArcGIS 10新增的制圖表達功能,使得地圖要素顏色清新、均衡,符號形象直觀,為公眾提供了良好的地圖服務。

圖3 系統主界面
系統采用ArcSDE 10和SQL Server 2005創建和管理空間、屬性數據庫,由ArcGIS Server 10發布地圖服務和幾何服務,由Silverlight 5.1搭建客戶端,由Google SketchUp 8.0制作地物三維模型。部分功能實現如下。
1)模擬游覽。可以根據用戶喜好,選擇要瀏覽的景點,生成這幾個景點間的最短路徑。系統根據生成的最短路徑,自動查詢路徑周圍一定距離內的旅游景點,以棕色氣泡的形式顯示在地圖上。在生成的最短路徑上會出現一個模擬游客,沿路徑行走,當走到代表旅游景點的氣泡附近時,模擬游客做短暫停留,同時彈出此處旅游景點的介紹面板(圖4)。

圖4 模擬游覽
2)三維場景構建。選擇五四廣場作為景點試點,實現了景點的三維場景瀏覽(圖5)。通過三維工具條進行控制,可進行場景的四周觀察、旋轉、移動、添加天空盒等操作。

圖5 三維場景
三維場景選定“青島市市委市政府”模型為坐標原點,在二維地圖上劃定的游覽路線通過相對坐標可映射到三維場景中,實現三維虛擬飛行漫游。
本系統由ArcGIS Server與富客戶端技術Silverlight搭建,利用GIS技術挖掘空間旅游信息,利用富客戶端技術提升景點信息展示效果,實現了青島市空間地理信息與旅游信息的有機結合。同時,進行網頁三維開發嘗試,在SketchUp中進行三維建模,在客戶端加載模型,實現了三維場景基本操作,初步實現了一套基于ArcGIS Server的WebGIS旅游自助原型系統。旅游公眾服務系統可以作為旅游信息資源共享平臺的一部分,與其他子系統,如旅游服務熱線、移動旅游網等進行集成,更好地服務于城市旅游。
[1]程國雄,胡世清.基于Silverlight互動學習RIA平臺的研究與實現[J]. 計算機工程與科學, 2010(7):27-30
[2]青島市旅游公共服務系統建設方案:旅游公共服務系統建設可研報告[R]. 青島市旅游局,2010
[3]王偉志.基于ArcGIS Server的桂林旅游信息服務系統的設計與實現[D].昆明:昆明理工大學,2009
[4]白玉,楊前進,龔遠紅,等.基于ArcGIS Server平臺的旅游公眾服務系統[J]. 寧夏師范學院學報, 2009(6): 70-76
[5]陸亞剛,邱知,游先祥,等.基于Silverlight和REST的富網絡地理信息系統框架設計[J]. 地球信息科學學報,2012(2):54-60
[6]朱振華,朱云,周勤,等.基于Silverlight的危廢車輛實時監控系統[J]. 計算機工程與設計, 2011(4):359-362
[7]付華,鐘勇.富因特網應用程序在Web數據展現中的應用[J].計算機應用, 2009(增刊): 292-295
[8]韓增軍.基于GIS的數字濟南旅游信息服務系統的設計與實現[D].濟南:山東大學,2008
[9]周磊.平樂旅游信息管理系統的設計與實現[D].西安:電子科技大學,2009
[10]趙成福.基于ArcGIS的富客戶端WebGIS的開發研究[J]. 測繪技術裝備, 2010(2): 6-9
[11]譚淇.基于WCF服務框架與Silverlight的Web應用研究[J].計算機與現代化, 2011(1):83-85