徐靜
(西安外事學院工學院 物聯網工程系, 西安 710077)
當前我國經濟正在處于轉型的關鍵時期,為了全面貫徹黨的十九大精神,應該以綠色、共享、開放、創新的理念為指導,全面貫徹習近平新時代中國特色社會主義思想,根據陜西省委、省政府關于建設旅游強省、加快綠色崛起的戰略部署,綜合運用大數據、云計算、人工智能等現代技術手段,促進我國旅游業向信息化、智能化、便捷化轉變,著力構建數據支撐、科技引領、業態創新、跨界融合的智慧旅游服務體系,為把旅游業建成人民群眾更加滿意的優質現代服務業提供全新動能。已經建成全國區域內的旅游基礎設施和基礎旅游信息數據庫平臺,如九寨溝景區旅游服務資源的智能完善、黃山的“智慧+服務”模式等,具有重要的應用價值。隨著移動互聯技術的發展,基于Android的智慧旅游服務平臺逐漸成為學者的研究熱點,本研究對基于Android的陜西省智慧旅游服務平臺進行研究,實現地圖數據離線加載,實現旅游線路定制和導游服務,實現GPS實時定位等。
雖然隨著我國計算機技術的發展,我國景區的景點的建設投入不斷增多,軟硬件水平不斷提高,促進了我國旅游業的發展,但是從游客的角度來說,景點的服務水平仍然具有很大的上升空間,對于景點比較多、占地面積比較大的景區容易出現游客迷失方向、繞路等問題,而在景區中增設路線指南及常規的紙質地圖仍然存在使用的交互性差、內容單一等問題,而且不能智能規劃路徑,造成部分景點人滿為患、資源分布不均衡等問題,因此需要推進旅游信息化的發展。
智慧旅游服務平臺的可行性分析包括經濟可行性、技術可行性及社會可行性三個方面的內容,結合具體的需求情況,該Android項目的具體可行性分析如下:經濟可行性:Android系統中全部的開發工具和環境都屬于開源的,軟件包括Android SDK、ADT、Eclipse等,硬件包括中高配置手機、電腦等[1]。技術可行性:隨著近幾年Android系統的廣泛應用,已經出版了很多Android書籍,并開設了相關的Android論壇,這種主流的移動平臺技術已經比較成熟,可以輕松實現軟件功能。社會可行性:手機APP的出現給人們的生活帶來了極大的便利,通過不同功能的APP可以滿足日常的不同需求,而基于Android平臺的旅游平臺可以幫助大量的游客實現旅游景點的查詢和路徑的規劃,社會可行性較好。
基于Android的陜西省智慧旅游服務平臺的設計過程中基于Andriod 2.3.3操作系統版本SDK,采用ArcGIS Runtime SDK for Android中間件開發,平臺架構如圖1所示。

圖1 智慧旅游服務平臺軟件架構
基于Android的陜西省智慧旅游服務平臺的架構包括應用層、服務層、數據層三個層次,應用層是面向用戶的層,提高用戶的旅游體驗,可以提供地圖、旅游信息查詢、線路攻略、旅游咨詢、信息分享、移動定位等功能。服務層采用統一的數據模型,基于ArcGIS for Desktop實現數據的處理、服務及管理,在移動終端中ArcGIS for Server以REST服務的方式為用戶的地圖服務、網絡分析服務、影像服務、要素服務、幾何服務、地理處理服務等提供支持。數據層選用Oracle數據庫,存儲電子地圖、360全景數據、多媒體數據等,非空間數據存儲之前需要經過標準化處理,空間數據則基于ArcSDE空間數據庫引擎進行搜索。
該APP應用與傳統的B/S或C/S系統存在一定的差別,就是該APP不僅可以在線提供服務,離線狀態下也能提供相關的服務,離線狀態下通過APP的使用界面,輸入相關的文字可以實現旅游信息服務,查詢相關的文字、圖片介紹,規劃游客的線路、住宿和餐飲等。本APP的應用界面功能完整、干凈整潔、布局合理,具體的功能如下。
(1) 旅游地圖服務功能模塊
游客通過智慧旅游平臺APP不用網絡流量就可以通過離線電子地圖查看陜西省的相關旅游景點,節省流量,游客可以在地圖上對熱門的景點進行標記規劃路徑,如果想要深入了解哪個旅游景點只需要點擊相關的圖標即可,通過點擊圖標還可以實現地圖的縮放和平移等操作。此外,服務平臺借助人工智能、360度全景拍攝等技術,收錄了陜西旅游相關的360度全景攝像、視頻、張圖片,打造了豐富的陜西旅游的影像庫,游客可以通過網絡體驗虛擬旅游。
(2) 旅游信息查詢功能模塊
游客可隨時隨地隨團了解景區及周邊吃、住、行、游、購、娛等信息,通過服務平臺可以直接跳轉至OTA或景區,購買意向景點、線路門票,同時提供旅行社、導游、交通、空氣質量和天氣預報等信息查詢,方便游客規劃出行和游覽計劃。游客通過該功能實現對陜西省景區、美食、住宿、購物、玩樂、交通的相關查詢,其中景區的查詢包括自然生態、歷史人文、民俗風情、紅色旅游;美食的查詢包括特色小吃、火鍋自助餐、燒烤海鮮、甜點飲品;住宿的查詢包括星級酒店、經濟型酒店、客棧民宿、主題酒店;購物的查詢包括商超百貨、當地特產、旅游紀念品;玩樂的查詢包括文藝演出、休閑娛樂、電影院、酒吧/KTV;交通的查詢包括飛機場、火車站、長途汽車站、地鐵。
(3) 旅游線路攻略功能模塊
線路攻略包括精品線路、攻略游記等,精品線路包括黃河旅游帶環線之旅、人文旅游休閑之旅、紅色文化之旅、思路風采之旅、四季體驗之旅、精品跟團游、趣味自駕游、秦嶺生態之旅、陜西深度游精華線路;攻略游記文史千載、山水奇觀、多彩民俗、紅色旅游、都市休閑。
(4) 旅游資訊功能模塊
旅游資訊主要包括一些新聞資訊,如通知公告、旅游動態、政策法規及城市活動等。
(5) 旅游信息分享功能模塊
通過該功能游客能夠對其旅途中的自我體驗及相關意見進行發布,也可以對相關景點進行評價打分,形成景區動態評價、導游服務評價及旅行社評價機制,實現游客旅游體驗、服務質量的真實測評,在測評過程中可以推進景區、酒店及旅行社等建設誠信體系,以不斷提高旅游服務的質量,提高游客的滿意度,促進我國旅游業的發展。
(6) 移動定位功能模塊
該平臺基于Android主要開發了兩套移動的定位方案,一種是基于室外的GPS信號進行定位,另一種是基于某些無GPS信號的區域進行定位,如果在室內則可以使用Wifi。兩種方案都是通過Wifi或GPS獲取游客的位置信息,并將這些信息存儲在后臺服務器中,實時將定位信息顯示在地圖中。
用戶利用該平臺查詢旅游景點信息時,可以播放該景點的視頻文件、圖片文件、文本文件等。調用不同的播放器。
(1) 視頻文件的播放
用戶的客戶端在播放視頻文件時,需要創建一個單獨的Activity,通過VideoView控件實現視頻文件的播放,播放時,VideoView與MediaController先要實現關聯之后即可播放[2]。
(2) 音頻文件的播放
APP用戶的客戶端對音頻文件進行播放時需要通過MediaPlayer控件實現,播放時先創建MediaPlayer對象設置數據來源,其關鍵的代碼如下:
MediaPlayer mp = new MediaPlayer(); //創建 MediaPlayer 對象mp.reset();
mp.setDataSource(localSoundPath); //設置 MediaPlayer 的音頻文件來源mp.prepare();
mp.start(); //開始播放
(3) 圖片文件的播放
用戶客戶端的圖片文件的播放通過AdapterViewFlipper實現,可以同時顯示多張圖片,通過一個數據適配器ViewFilipperAdapter對象,ViewFilipperAdapter對象中包含一個ArrayList對象,ArrayList各種需要顯示的圖片路徑,通過重載getView()方法為控件提供需要顯示的視圖(View)。在重載getView()方法時,為了防止照片產生沖突,在生成視圖(View)時,對圖片進行壓縮,成為原圖的1/4,圖片壓縮通過BitmapFactory的decodeStream方法實現。
APP需要制定360度全景數據,并對這些數據進行集成,具體流程如下:首先對界面設計、圖像形式、交互方式等進行腳本編寫,采集視頻、音頻、圖片等資料,實現多媒體的合成設計,然后通過專業的全景設備采集全景數據,經過數據拼接、美工、代碼編程集成全景系統,調試全景系統,最后將全景系統發布到服務器上,用戶瀏覽是實現二次開發、加載顯示[3]。
電子地圖的開發以百度地圖API為基礎,開發過程中通過SDK提供的接口實現和百度題圖數據庫的連接,電子地圖包括熱力圖、基本地圖(衛星圖、交通圖)、本地搜索,可以方便的顯示出旅游景點的山川、道路、河流、建筑物等相關信息。Android系統的地圖接口包括不同的與地圖開發功能相關的類,通過這些地圖的接口類可以實現旅游景點的地圖控制、OpenGL繪制、標注覆蓋物等,如果用戶需要自己繪制地圖只需要在地圖中加入MapView類即可,加入之后通過Map Activity實現后臺管理,這樣便可以實時在終端屏幕上進行顯示。
使用百度地圖API時首先需要申請API key,下載并導入BaiduMap AndroidSDK v4.2.1,在基本地圖中可以利用BaiduMap中的mapType()方法設置地圖類型。電子地圖的實時交通圖功能和熱力圖功能可以準確的對某個旅游景點的道路規劃及游客流量等進行顯示,這樣游客在旅游過程中可以規避人流量的高峰,通過與移動網絡運營商實時連網獲取GPS數據,關鍵代碼如下:
mMapView=(MapView)findViewById(R.id.bmapView);
mBaiduMap=mMapView.getMap();
//普通地圖
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NOR-
MAL);
//開啟交通圖
mBaiduMap.setTrafficEnabled(true);
//開啟交通圖
mBaiduMap.setBaiduHeatMapEnabled(true);
本平臺中的定位使用GPS定位,它是當前全球范圍中應用最廣泛的定位系統[4-6],具有終端面積小、使用成本低、定位精度高等特點,是當前景區中定位技術的應用首選,應用GPS定位時,首先需要利用定位模塊獲取GPS接收器的定位信息,并將其中的經緯度信息轉換成地圖坐標之后傳輸給電子地圖模塊,啟動定時器,間隔一段時間向游客發送當前所在位置,服務器端對游客的最新位置進行記錄。
GPS定位的關鍵代碼如下:
lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE);
//判斷GPS是否正常啟動
if(!lm.isProviderEnabled(LocationManager.GPS_PROVIDER)){
//返回開啟GPS導航設置界面
Intent intent=new Intent(Settings.ACTION_LOCATION_
SOURCE_SETTINGS);
startActivityForResult(intent,0);
return;
}
以平臺的旅游信息查詢功能為例進行分析,當用戶進行旅游信息查詢功能模塊時,平臺會根據GPS的位置信息與智慧旅游服務平臺中的相關的旅游景區的信息進行匹配,顯示景區的名稱及相關的介紹、圖片及導游等,如圖2所示。

圖2 旅游景區簡介界面
用戶可以選擇推薦線路或隨便游覽,在多個備選線路中選擇合適的線路進行瀏覽或通過“+”按鈕自己輸入要瀏覽的景區名稱。用戶選中合適線路后,就進入景點瀏覽狀態,播放相關視頻等,平臺的應用效果良好。