随着社会发展水平的不断提高,人们追求的已不仅仅是物质层面的满足,也越来越希望得到精神上的满足,旅游已成 为一种流行的休闲娱乐方式。然而,很多旅游景区往往因为路线错综复杂,设施标志不明确或者指示信息不完整,使得游客 在自助游过程中容易迷失方向,这不仅加重了景区工作人员的工作负担,也给游客带来诸多不便。此外,近年来关于导游 的负面报道屡见不鲜,部分导游在旅游过程中擅自修改了旅游路线,随意地增加了一些其他的收费项目,“导游”变成“导 购”,游客在旅游过程中被迫消费,不能自主选择,这不仅游客带来不少的花销,在一定程度上还影响了游客心情和旅游体验。通过将 LBS 与旅游需求的结合开发基于位置信息服务相关的应用,使得游客可以自主选择旅游的路线和需要游览的景点,保证旅游的顺畅性。同时,景区管理人员也能对景区实现信息化的管理,提高旅游的服务质量和服务水平,进而提升游客对于景区的满意度。
本景区导览系统基于 C/S(客户端/服务器端)模式进行开 发,这里重点讲述安卓客户端的设计。客户端使用 TAB+ Fragement 底部导航栏的方式分为:“首页”、“附近”、“搜索”、“我的”,分别对应实时定位、附近信息推送、路径规划与导航、 VR 全景及用户反馈五个主要功能模块。 实时定位模块是根据游客位置的移动返回实时定位的 结果显示在首页,游客可以在地图界面看到自己在景区所处 的位置以及了解附近的景点建筑。附近信息推送模块将离游客最近的酒店、餐饮信息检索出来推送给游客进行选择,满足游客在旅游过程中的个人需求。路径规划与导航模块根据游客搜索的目的地,采用最短路径算法,给出驾车、骑车、步行三种不同的路径规划方式供 游客选择,点击导航按钮时会显示相应的导航信息,包括前进的路线和前进的方向,到达目的地的距离,所需时间,游客行 进的时速等。VR 全景模块主要是给用户提供景区的VR全景图,用户可以切换全景模式和 VR 模式对景区景点进行一个沉浸感十足的三维感知,或者游客在游览过程中还可以实景对比,起到一定的导览作用。用户反馈功能主要是收集用户的相关信息和意见建议,加以改进,以提升景区服务水平和游客满意度。
本系统采用百度地图定位 SDK 第三方的接口来实现的, 在清单文件添加自己申请的 key,以及相应的网络使用权限, 初始化 SDK 并进行参数配置,设置返回的坐标类型为 bd09ll,请求定位的时间为5000ms,实现 Abstract 类型的监听 接口 BDAbstractLocationListener 将定位结果信息返于地图界面上。百度地图 SDK 融合了 GPS、LBS、WIFI 三种定位方式,整体的定位精度为40米。游客在没有移动互联网的情况下也可以进行定位,适用性较广。
路径规划与导航功能 该模块给用户指示到达目的地的最短路径并进行导航。 路径规划模块基于百度地图 SDK,通过创建检索实例,根据用户输入的目的地后设置起始点并监听,进行最优路径的检 索,最后以自定义 Overlay 的方式在地图上显示出来供用户选择。骑行规划是在共享单车盛行的背景下提出的,它与步行规划不同的是,骑行规划能避开地下通道和高架桥,避免了逆行。导航模块通过创建好起始点参数后发起算路,在回调函数中设置跳转到导航的地图界面,返回导航的结果,包括前进的 路线和前进的方向,到达目的地的距离,所需时间,游客行进 的时速等。具体实现方式:在搜索栏输入目的地,点击“确定” 后为用户提供驾车、骑车、步行(根据实地情况,景区内没有公交,这里为用户提供骑行路径供选择)三种规划路径供用户选 择。对应的界面为:fragment_search.xml,搜索框和 Listview。搜 索到地点后实施路径规划,对应的界面布局文件为:activi- ty_planrode.xml。水平布局中放置驾车、骑车和步行 TextView。 帧布局 FrameLayout 放置 MapView 和导航向导 ImageView。具体方法分别在 DrivingRouteOverlay,BusLineOverlay,Bik- ingRouteOverlay 这几个类中实现。
VR 全景功能 VR 与文字、图片、视频一样也是信息载体,不过与前面三者相比,VR 全景增加了空间维度的信息,呈现形式是VR更具特色的地方,它真正打破了时空方面的限制,为用户带来 了极强的“临场感”和“沉浸感”。这一模块主要利用安卓提供的OpenGL ES 接口,结合 Glide 图片加载框架,利用现有的 网络资源,将景区的 VR 全景图加载到客户端,给游客呈现一个三维的感知模式。这时游客看到景区景点再也不是地图上 的一个点,而是具体的实景,游客在实地旅游时将 VR 全景图与实景进行对比,在手机端还可以进行全景模式和 VR 模式的切换,这也起到了一定的导览作用。此外,游客在准备旅行时不再只局限于图片的浏览,还可以提前感知景区的实景,比较景区的景色,这样子游客可以有选择性地选择要去的地方,提前地规划好游览路线和做好行程安排,避免时间的浪费的 同时也增加了游客的体验值。在硬件方面,需要用户的手机端 具有陀螺仪、重力传感器等等(以及一些其它传感器)支持VR全景视频的播放及当方向转动时场景能够随之改变。 现代虚拟现实的开发重点主要是带头部追踪功能的头戴式显示器。安卓VR 开发在软件实现方面相对简单,只需要在build.gradle 添加谷歌 VR 的 SDK 依赖,添加 VrPanora- maView(用于VR 全景的显示),进行加载 360 全景图片。这样的实现方式需要 360 全景图是属于自己制作,才可以进行本地加载。出于方便性考虑,本系统决定利用现有的网络资源文件,将景区的“VR 全景”加载到本地系统中。系统采用腾讯的 X5Webvie 控件能够进行边加载边显示,而且速度更快。
开发 中需要下载相应的支持 jar包及so文件并添加相应的网络权限。具体这一功能是在 WebViewActivity 类中实现的,通过继承 WebLoadingFinisLisenter 实现,对应的布局文件是:activi- ty_webview.xml,在这个布局中实现了ProgressBar 进度表条。全景模式下用户可以看到景区的全景图,点击图片内箭头可 到达相应的地点;VR 模式下,用户戴上 VR 眼镜进行观看,具 有很好的效果。
用户反馈功能 游客在景区游览或者使用本系统过程中,或多或少都会遇到一些问题,景区与游客之间容易因信息不对称情况而产生矛盾。为了同时方便景区管理人员和游客,设计了一个“用户反馈”模块,给用户写对于景区内出现的问题,或者是对于本系统提出修改意见,以便于后期的软件维护。 用户反馈功能是在 FankuiActivity 类中实现的,其对应的界面为 activvity_fankui.xml,同样使用线性布局 LinearLay- out,里面放两个Editext,供用户填入反馈意见和联系方式。用 户输入反馈内容详情和用户联系方式后点击确定提交到服务器端,景区管理人员看到后能够及时处理。
本文利用百度地图提供的 LBS(Location Based Service) 服务实现了具有实时定位、导航、路径规划、附近推送、周边搜 索、景区VR 全景、用户反馈等一系列功能的安卓APP,具有一定的实用性和创新性,软件界面简洁大方,对用户友好,随装随用,方便快捷,能够吸引更多年轻的自助游游客。它既方便游客旅游的同时也带动了我国的旅游行业不断向智能化发展。此外,通过将基于位置的服务应用到旅游行业中,还可以实现紧急呼救、天气预报、酒店预订、行程回顾、语言翻译、网络社交、WIFI 寻找、公共设施(卫生间)寻找、货币兑换、世界时间转换等更多的功能,能够满足人们不同的需求,具有很大的发展前景。基于位置服务的系统将随着科学技术的发展慢慢渗透到各个领域当中,为人们提供一个更加智能和优质的生活。