蔣秋萍 張海濤 楊嘉欣 王振鐸
摘 要:由于旅游與互聯網的不斷融合,外出旅游已經成為當今休閑娛樂一種熱潮。然而,旅游景區往往因為路線錯綜復雜,設施標志不明確或者不完整,加重了景區工作人員的工作負擔,也給游客帶來諸多不便。利用百度地圖的LBS(Location Based Service)服務,基于安卓平臺開發了既能滿足游客自助游需求也能方便景區管理的景區導覽系統。文章重點闡述了客戶端模塊的功能設計和相應的具體實現方法,并且總結了系統的不足和需要改進之處。
關鍵詞:LBS;景區導覽;百度地圖;VR全景
中圖分類號:P208 文獻標志碼:A 文章編號:2095-2945(2019)03-0043-02
Abstract: Due to the continuous integration of tourism and the Internet, traveling has become an upsurge of leisure and entertainment. However, the tourist attractions, often because of complex routes, facilities logo being not clear or incomplete, increase the workload of scenic area staff, and bring a lot of inconvenience to tourists. Using the LBS (Location Based Service) service of Baidu Maps, based on the Android platform, this paper develops a scenic spot guide system, which can not only meet the needs of tourists but also facilitate the management of scenic spots. The paper focuses on the functional design of the client module and the corresponding specific implementation methods, and summarizes the shortcomings of the system and the need for improvement.
Keywords: LBS; scenic spot guide; Baidu map; VR panorama
1 概述
隨著社會發展水平的不斷提高,人們追求的已不僅僅是物質層面的滿足,也越來越希望得到精神上的滿足,旅游已成為一種流行的休閑娛樂方式。然而,很多旅游景區往往因為路線錯綜復雜,設施標志不明確或者指示信息不完整,使得游客在自助游過程中容易迷失方向,這不僅加重了景區工作人員的工作負擔,也給游客帶來諸多不便。此外,近年來關于導游的負面報道屢見不鮮,部分導游在旅游過程中擅自修改了旅游路線,隨意地增加了一些其他的收費項目,“導游”變成“導購”,游客在旅游過程中被迫消費,不能自主選擇,這不僅游客帶來不少的花銷,在一定程度上還影響了游客心情和旅游體驗。
通過將LBS與旅游需求的結合開發基于位置信息服務相關的應用,使得游客可以自主選擇旅游的路線和需要游覽的景點,保證旅游的順暢性。同時,景區管理人員也能對景區實現信息化的管理,提高旅游的服務質量和服務水平,進而提升游客對于景區的滿意度。
2 安卓客戶端設計
本景區導覽系統基于C/S(客戶端/服務器端)模式進行開發,這里重點講述安卓客戶端的設計。客戶端使用TAB+Fragement底部導航欄的方式分為:“首頁”、“附近”、“搜索”、“我的”,分別對應實時定位、附近信息推送、路徑規劃與導航、VR全景及用戶反饋五個主要功能模塊。
實時定位模塊是根據游客位置的移動返回實時定位的結果顯示在首頁,游客可以在地圖界面看到自己在景區所處的位置以及了解附近的景點建筑。
附近信息推送模塊將離游客最近的酒店、餐飲信息檢索出來推送給游客進行選擇,滿足游客在旅游過程中的個人需求。
路徑規劃與導航模塊根據游客搜索的目的地,采用最短路徑算法,給出駕車、騎車、步行三種不同的路徑規劃方式供游客選擇,點擊導航按鈕時會顯示相應的導航信息,包括前進的路線和前進的方向,到達目的地的距離,所需時間,游客行進的時速等。
VR全景模塊主要是給用戶提供景區的VR全景圖,用戶可以切換全景模式和VR模式對景區景點進行一個沉浸感十足的三維感知,或者游客在游覽過程中還可以實景對比,起到一定的導覽作用。
用戶反饋功能主要是收集用戶的相關信息和意見建議,加以改進,以提升景區服務水平和游客滿意度。
3 實現方案
3.1 實時定位功能
本系統采用百度地圖定位SDK第三方的接口來實現的,在清單文件添加自己申請的key,以及相應的網絡使用權限,初始化SDK并進行參數配置,設置返回的坐標類型為bd09ll,請求定位的時間為5000ms,實現Abstract類型的監聽接口BDAbstractLocationListener將定位結果信息返于地圖界面上。百度地圖SDK融合了GPS、LBS、WIFI三種定位方式,整體的定位精度為40米。游客在沒有移動互聯網的情況下也可以進行定位,適用性較廣。
3.2 附近信息推送功能
該模塊主要為用戶提供距離較近的酒店餐飲等附近興趣點的信息。以用戶位置為中心點,檢索半徑為2km的周邊興趣點信息。創建POI檢索回調接口中添加自定義的PoiOverlay將檢索的結果以自定義Marker標注的形式顯示在地圖界面上。用戶選擇相應的地點可以點擊去這里跳轉導航界面?!案浇苯缑媸欠抡瞻俣鹊貓D的界面進行設計,具體的界面布局在fragment_near.xml。使用Listview控件用于數據的顯示,定義了一個near實體類,包含圖片和名字兩個字段,作為ListView 適配器的適配類型。在NearFragment中添加了附近信息的數據,并設置了onItemClick來對ListView點擊事件的處理:實例化Intent,用戶點擊時跳轉到SearchMapActivity中。
3.3 路徑規劃與導航功能
該模塊給用戶指示到達目的地的最短路徑并進行導航。路徑規劃模塊基于百度地圖SDK,通過創建檢索實例,根據用戶輸入的目的地后設置起始點并監聽,進行最優路徑的檢索,最后以自定義Overlay的方式在地圖上顯示出來供用戶選擇。騎行規劃是在共享單車盛行的背景下提出的,它與步行規劃不同的是,騎行規劃能避開地下通道和高架橋,避免了逆行。導航模塊通過創建好起始點參數后發起算路,在回調函數中設置跳轉到導航的地圖界面,返回導航的結果,包括前進的路線和前進的方向,到達目的地的距離,所需時間,游客行進的時速等。具體實現方式:在搜索欄輸入目的地,點擊“確定”后為用戶提供駕車、騎車、步行(根據實地情況,景區內沒有公交,這里為用戶提供騎行路徑供選擇)三種規劃路徑供用戶選擇。對應的界面為:fragment_search.xml,搜索框和Listview。搜索到地點后實施路徑規劃,對應的界面布局文件為:activity_planrode.xml。水平布局中放置駕車、騎車和步行TextView。幀布局FrameLayout放置MapView和導航向導ImageView。具體方法分別在DrivingRouteOverlay,BusLineOverlay,BikingRouteOverlay這幾個類中實現。
3.4 VR全景功能
VR與文字、圖片、視頻一樣也是信息載體,不過與前面三者相比,VR全景增加了空間維度的信息,呈現形式是VR更具特色的地方,它真正打破了時空方面的限制,為用戶帶來了極強的“臨場感”和“沉浸感”。這一模塊主要利用安卓提供的OpenGL ES接口,結合Glide圖片加載框架,利用現有的網絡資源,將景區的VR全景圖加載到客戶端,給游客呈現一個三維的感知模式。這時游客看到景區景點再也不是地圖上的一個點,而是具體的實景,游客在實地旅游時將VR全景圖與實景進行對比,在手機端還可以進行全景模式和VR模式的切換,這也起到了一定的導覽作用。此外,游客在準備旅行時不再只局限于圖片的瀏覽,還可以提前感知景區的實景,比較景區的景色,這樣子游客可以有選擇性地選擇要去的地方,提前地規劃好游覽路線和做好行程安排,避免時間的浪費的同時也增加了游客的體驗值。在硬件方面,需要用戶的手機端具有陀螺儀、重力傳感器等等(以及一些其它傳感器)支持VR全景視頻的播放及當方向轉動時場景能夠隨之改變。
現代虛擬現實的開發重點主要是帶頭部追蹤功能的頭戴式顯示器。安卓VR開發在軟件實現方面相對簡單,只需要在build.gradle添加谷歌VR的SDK依賴,添加VrPanoramaView(用于VR全景的顯示),進行加載360全景圖片。這樣的實現方式需要360全景圖是屬于自己制作,才可以進行本地加載。出于方便性考慮,本系統決定利用現有的網絡資源文件,將景區的“VR全景”加載到本地系統中。系統采用騰訊的X5Webvie控件能夠進行邊加載邊顯示,而且速度更快。開發中需要下載相應的支持jar包及so文件并添加相應的網絡權限。具體這一功能是在WebViewActivity類中實現的,通過繼承WebLoadingFinisLisenter實現,對應的布局文件是:activity_webview.xml,在這個布局中實現了ProgressBar進度表條。全景模式下用戶可以看到景區的全景圖,點擊圖片內箭頭可到達相應的地點;VR模式下,用戶戴上VR眼鏡進行觀看,具有很好的效果。
3.5 用戶反饋功能
游客在景區游覽或者使用本系統過程中,或多或少都會遇到一些問題,景區與游客之間容易因信息不對稱情況而產生矛盾。為了同時方便景區管理人員和游客,設計了一個“用戶反饋”模塊,給用戶寫對于景區內出現的問題,或者是對于本系統提出修改意見,以便于后期的軟件維護。
用戶反饋功能是在FankuiActivity類中實現的,其對應的界面為activvity_fankui.xml,同樣使用線性布局LinearLayout,里面放兩個Editext,供用戶填入反饋意見和聯系方式。用戶輸入反饋內容詳情和用戶聯系方式后點擊確定提交到服務器端,景區管理人員看到后能夠及時處理。
4 結束語
本文利用百度地圖提供的LBS(Location Based Service)服務實現了具有實時定位、導航、路徑規劃、附近推送、周邊搜索、景區VR全景、用戶反饋等一系列功能的安卓APP,具有一定的實用性和創新性,軟件界面簡潔大方,對用戶友好,隨裝隨用,方便快捷,能夠吸引更多年輕的自助游游客。它既方便游客旅游的同時也帶動了我國的旅游行業不斷向智能化發展。此外,通過將基于位置的服務應用到旅游行業中,還可以實現緊急呼救、天氣預報、酒店預訂、行程回顧、語言翻譯、網絡社交、WIFI尋找、公共設施(衛生間)尋找、貨幣兌換、世界時間轉換等更多的功能,能夠滿足人們不同的需求,具有很大的發展前景?;谖恢梅盏南到y將隨著科學技術的發展慢慢滲透到各個領域當中,為人們提供一個更加智能和優質的生活。
參考文獻:
[1]畢小朋.精通Android Studio[M].北京:清華大學出版社,2014.
[2]張曉旭.基于位置服務的景區智能管理系統設計與實現[D].河北科技大學,2015.
[3]扶松柏,于秀青.Android開發從入門到精通[M].北京希望電子出版社,2016.