基于Android平台的五大道语音导游APP
2018-10-21董昊崔怀天冯晓琳
董昊 崔怀天 冯晓琳
摘要;本文基于手机Android系统,研究通过对百度地图开发者指南中源代码的分析,使用JAVA语言在 Android Studio平台下搭建Android 平台开发环境,并利用手机内置的定位技术,在感应区域内自动语音播报,启动与位置相关的语音导游信息,实时讲解,实现对年均客流量高达三百万人次,天津的重要旅游景区——五大道内重点区域的语音导游。
关键词:旅游;语音导游APP;JAVA语言;五大道
1.引言
隨着科技的发展,移动互联网技术已经广泛地应用到社会生活的方方面面,特别是基于手机定位技术的服务,使得服务的指向性更强,更有效地切合人们外出旅游时对于景点信息的需求。
五大道作为天津的一处重要旅游景区,年均客流量高达三百万人次,其导游服务至关重要。而景区导游服务费用较高、交互性弱、讲解景点数量有限且路线较为固定。且现有的其他导游APP无法针对性的对五大道景点进行详细讲解。研究的目标是开发基于手机定位技术的导游应用,实现实时导游功能。研究的关键在于如何在景点内实现精确的导航和定位,并根据位置信息播放语音。
本文研究基于手机Android系统,旨在开发一款专门针对五大道的导游APP,利用手机内置的定位技术,在感应区域内自动语音播报,启动与位置相关的语音导游信息,实时讲解,实现对五大道内重点区域的语音导游。
2.五大道背景及需求分析
五大道位于天津中心城区的南部,东、西向并列着以中国西南名城重庆、大理、常德、睦南及马场为名的五条街道,是迄今中国保留最为完整的洋楼建筑群。天津人把它称作“五大道”。五大道地区拥有上世纪二、三十年代建成的具有不同国家建筑风格的花园式房屋2000多所,总建筑面积1.28平方公里。其中最具典型的300余幢风貌建筑中,英式建筑89所、意式建筑41所、法式建筑6所、德式建筑4所、西班牙建筑3所、还有众多的文艺复兴式建筑、古典主义建筑、折衷主义建筑、巴洛克式建筑、庭院式建筑以及中西合璧式建筑等,被称为“万国建筑博览会”,因小洋楼最多、保存最为完整、建筑风格多样以及体现出中西文化的冲突、交融而著名。
其作为天津的一处重要旅游景区,年均客流量高达三百万人次,其导游服务至关重要。关于五大道在景区服务及设施等方面的设置:在旅游服务方面,设有五大道游客服务中心,五大道历史博物馆、观光马车巡游、自行车租赁,并且对一些故居如先农大院,庆王府进行开发,将餐饮与地区小洋楼文化特色相融合,形成了特色的餐饮文化。除此之外,天津传统美食——狗不理包子,民园体育场文化中心地下一层的进口商品免税商场,如家等快捷酒店的引入,为游客的旅行提供便捷。其中五大道在为游客提供向导方面,仅有两种付费方式:一是选择乘坐观光马车,在观光同时由讲解员进行简略讲解;二是选择由五大道服务中心开发的导游APP。这两种方式均存在其弊端:第一种方式,时间短,讲解不细致,只能满足少数游客的需求;第二种方式主要针对五大道游客服务中心中各博物馆及复原展览厅。
3.APP设计及技术实现
经过对项目目的、用户群体、应有功能进行分析后,对APP进行了功能模块设计,本文主要介绍该APP的四大功能模块,分别是“热门景点”、“便利生活”、“个人中心”、“景点导游”,主要功能是语音导游,先对景点进行导航,再进行语音导游功能,这个功能设置在主界面上,其他三个功能在主界面的底部工具条上进行选择。
此款APP主要借助于百度地图API实现定位。百度的定位SDK(Software Development Kit,软件开发工具包)具有如下基本工作原理,当应用程序向百度定位SDK发起定位请求时,百度定位SDK会把移动端接收到的GPS、基站、Wifi信息转换成所需的定位信息。通过定位SDK根据产生的这些定位信息进行解算处理,实现定位。根据需求的不同,有时它也会向服务器发送网络请求,服务器会根据请求的定位信息来推算出对应的坐标位置,并生成定位结果返回给系统,最后通过返回的定位结果中的地理位置信息,就可以调出提前放置好的导游语音信息,进行导游语音词的播放。
在使用百度地图的功能前,需要将百度地图的API(Application Program Interface,应用程序接口)添加到已经建立的Android项目中来。添加百度地图API的步骤大致为:首先申请百度地图API Key,之后下载百度地图SDK开发包,并将其添加到对应工程中,最后编辑Android应用工程的AndroidManifest.xml与Build.gradle 文件,之后便可以将百度地图API的对应功能在应用中进行引用。
定位中一般首选的定位方式是GPS定位,但如果我们的APP一直在定位的话,用户的手机将会消耗大量电量。我们可以在上面已经写好的地图管理周期中添加对定位声明,在on start中开启定位,在on stop中关闭定位,这样应用最小化时,就不会一直GPS请求定位。进而,当用户不想使用定位这个功能时,就选择让应用最小化即可。
接下来需要在Java程序中实现定位到当前位置,采用If语句来进行判断,是否是第一次启用定位,如果是第一次就定位到当前位置,这样在后续的使用过程中,用户的手机就不会一直定位到当前位置,给用户使用带来不便。
在实际使用中,为了解决导航的过程中因为方向问题而走了相反的道路,设计了让用户看到自己所处的方向的功能。这一功能可以通过方向传感器来实现。百度地图SDK的库中封装好的Jar包中有MyOrientationListener这个类,而方向传感器是和定位结合在一起的,在实现时只需要在定位的程序中调用即可。
根据位置信息触发导游音频的功能我们同样借助百度地图中提供的接口来实现。百度地图中存在这样一个接口,它可以直接来判断点与圆的位置关系,帮助我们计算用户的当前位置与景点之间的距离:
//判断点pt是否在,以pCenter为中心点,radius为半径的圆内。
SpatialRelationUtil.isCircleContainsPoint(pCenter,radius,pt);
把景点的经纬度作为中心点,以5米为半径,就可以判断用户的当前位置是否处于该圆内,如果处于该圆内则打开语音导游界面,反之则继续定位、判断。
4.结论
本文主要研究了基于手机定位方式的导游APP开发,为了实现APP的导游功能,通过Android手机的几种不同定位方式,结合项目的实际情况找出最适合的定位方式,根据APP的目标用户所需要的功能完成APP的功能架构,搭建Android平台,给出导入百度API后实现定位和导航的方法,并对景区内导航进行优化。研究Android Activity的实现方法,完成APP的设计。同时还对五大道景区相关信息进行调研学习,并撰写导游词、录制导游音频。与同类APP相比,此APP的导游词更具趣味性,涉及到不同人物的生平经历,帮助游客在游览的同时了解景点背后的故事;实现了语音数据包在本地保存,达到离线讲解的目的。
参考文献:
[1]李维立,贾建东,马利安.《手绘津门洋楼》.天津:天津大学出版社,2010.96
[2]天津市档案馆 天津市和平区档案馆.《天津五大道名人轶事》.天津:天津人民出版社,2008.4-268
[3]郑锐洪 杨蕾 张妞.《城市历史街区复杂顾客体验价值认知的实证研究》.河北经贸大学学报(综合版),2018(1):71-76
[4]郑锐洪 张妞 成陽超.《天津市五大道历史街区旅游价值的整合开发》.城市问题,2018(271):41-48
[5]王新玲.《悠悠百年五大道》.中国报道,2009(7):97-99
[6]谭汝为.《天津五大道与租界文化》.天津社会主义学院学报,2015(47)
[7]田瞳.《马车走过五大道》.丝绸之路,2015(21)
[8]王轩.《天津五大道_万国建筑博览会》.民主,2011(8):39-40
[9]夏青 毛羽 王小莉.《天津五大道多元建筑文化的魅力》.中国文化遗产,2008(03)
[10] 杨新庆.《基于Android平台的无限旅游导航系统的设计与实现》(硕士).2011
[11] 郭奇青 李伟. 《基于Android手机的智能导游系统设计》. 计算机与现代化,2017(09):111-119