基于位置服务的景区自助导览系统
2019-02-28蒋秋萍张海涛杨嘉欣王振铎
蒋秋萍 张海涛 杨嘉欣 王振铎
摘 要:由于旅游与互联网的不断融合,外出旅游已经成为当今休闲娱乐一种热潮。然而,旅游景区往往因为路线错综复杂,设施标志不明确或者不完整,加重了景区工作人员的工作负担,也给游客带来诸多不便。利用百度地图的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标注的形式显示在地图界面上。用户选择相应的地点可以点击去这里跳转导航界面。“附近”界面是仿照百度地图的界面进行设计,具体的界面布局在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寻找、公共设施(卫生间)寻找、货币兑换、世界时间转换等更多的功能,能够满足人们不同的需求,具有很大的发展前景。基于位置服务的系统将随着科学技术的发展慢慢渗透到各个领域当中,为人们提供一个更加智能和优质的生活。
参考文献:
[1]毕小朋.精通Android Studio[M].北京:清华大学出版社,2014.
[2]张晓旭.基于位置服务的景区智能管理系统设计与实现[D].河北科技大学,2015.
[3]扶松柏,于秀青.Android开发从入门到精通[M].北京希望电子出版社,2016.