基于GPS旅游景点导览APP的设计
随着人民生活水平和对高层次生活方式认知水平的不断提升,旅游度假已经成为人们放松休闲的主要形式。因此,当下的旅游行业日益成熟,旅游景点的设施也日渐完备;但是,对于用户体验和服务等软环境的发展和建设还有待加强,软
环境却恰恰是提升景区服务质量的重中之重。在经过大量的调研后发现,游客在景区面临的较普遍问题如下:
1)环境陌生,易迷路。即使景区内存在指示牌,是并非随处可见,从而导致游客无法随时辨别位置,甚至导致与亲友走失;
2)对于国外旅游者,普遍存在语言不通的问题。导致游客无法了解景区概况和路线规划;
3)现有服务系统无法解决多场景、多语言所引发的诸多特定场景问题。
为了解决以上问题,手机导览系统主要解决对国内外景点的综合路径规划、多语种介绍文宁的拍照识别翻译及音频解说功能,开发一款综合类的智能导览系统,将多种问题进行统一管理,为旅客出行带来便利 。
一、系统总体架构
系统采用Android5.0.1平台,使用Java编程语言、Eclipse作为开发工具,下载谷歌提供的软件开发工具包(SoftwareDevelopmentKit,SDK)以及安装(AndroidDeveloperTools,ADT)插件来搭建环境。本系统主要是客户端,建立包括城市简介、景点查询、附近搜索与路线查询、景点导览语音讲解、景点介绍拍照识别翻译和足迹记录等菜单选项;建立动态数据库SQlite将用户的行走路线坐标和景点介绍文字及音频文件存储在客户端;通过调用百度地图服务器的接口完成定位及路线规划。
二、系统各模块实现
旅游导览系统主要是建立在Android平台下,其功能主要分为城市简介、附近搜索、公交线路查询、景点导览语音讲解、拍照识别翻译、足迹记录。
1)城市简介:为用户介绍旅游城市的基本情况,为游客提供城市基本概况及讲解。
2)附近搜索:根据用户定位所在位置,查询所处位置附近服务信息,例如查询附近的景点、餐厅、酒店等位置及概况,为用户提供便捷的规划指引。
3)公交线路查询:自动定位“我的位置”,用户自主选择目的地,系统自动筛选最佳路线并进行导航,步行、公交、自驾三种规划随心切换。其精准程度,可至步行米数。
4)景点导览语音讲解:细致规划景区内地图,用户到达任意地点,点击指定航标即可查看景点介绍,同时支持语音输出,提供双重交互方式。
5)拍照识别翻译:对于需翻译的非中文语言,只需对其文字进行图片拍摄,系统将自动识别语言并将其进行翻译;
6)足迹记录:当用户使用景点导览语音讲解功能时,系统会记录下用户所去过的景点并在足迹界面显示。
2.1欢迎界面模块
欢迎界面为MainActivity类,首先是在res/lay—out中创建一个相对布局,然后在布局中设置图片背景,背景资源放在res/drawable中,在布局中放置butt0n和editText,在editText中加入android:text=“旅游导览”。此类通过集成Activity并且重写on—Create方法,在其中使用setContentView(R.1ayout.activity—main)用来在屏幕中加载XML界面。通过
findViewById找到button控件,然后通过setonclick—listene对button设置点击监听,在监听方法中实例化一个intent,intent绑定跳转,通过StartActivity(intent)执行界面跳转。
2.2选择界面模块
从欢迎界面就可以进入菜单选择界面。该界面的类为StartActivity类,其界面使用的是线性布局。使用自定义的SwitcherView>控件实现布局中滚动图片显示:slidingswitcherview实现类中,在继承RelativeLay.out类的基础上实现OnTouchListener接口,使得可以对视图的触摸滑动进行监听,控件中所使用的图片存放在res/drawable中,通过在布局文件but—ton中的background设置;同时在布局中的菜单选项代码是通过button中的RadioButton设置来实现。在StartActivity类中,通过findViewById方法找到对应的按钮选项,并且绑定intent,监听按钮是否被点击,从而进行界面的跳转。
2.3附近搜索与路线查询模块实现
2.3.1百度地图APIKey的获取为了能更加直观的在手机屏幕上显示地理信息,在该旅游导览软件中使用的是百度地图应用程序编程接口(applicationprogramminginterface,API),用以实现对地理信息的可视化开发。百度公司为了防止百
度地图API中的接口被过度使用,从而要求开发者去其官网申请一个应用程序的Key,否则的话将不能在程序中看到百度地图。
2.3.2百度地图的显示若使Android手机中显示百度地图不仅仅需要Key,也需一定相应的操作流程:包括配置工程一添加密钥一添加百度地图显示所需要的各种权限一添加地图控件一初始化全局变量,配置完以上步骤即可加载百度地图。
2.3.3附近搜索和路线规划旅游过程中离不开住宿、餐饮,想要查看景点周边感兴趣的场所、大型设施,就需要用到城市的兴趣点(pointofinterest,POI)数据库,这里使用的是百度地图的搜索方法。路径规划实现类为RouteAcitvity类,系统首先例化一个路线规划检索b,使用OnGetRoutePlan.ResultListener设置路径检索监听,当输入目标起始点时,使用DrivingRoutePlan0pti0n、Transi.tR0utePlan0ption、walkingRoutePlanOption完成自驾、公交、步行三种路径规划检索,百度地图会自动返回结果,监听会获取到结果并通过onGet.DrivingR0uteResultonGetTransitRouteResult、
onGetWalkingRouteResuh在地图上显示线路;同时使用DrivingRouteLine.DrivingStep获取绘制路线节点,当用户点击节点时pop弹窗自动显示具体路线走向。
2.4语音讲解
系统设置一个类用来实现语音讲解以及文字说明。实现类为VoiceActivity类!=;,在ExpainActivity类中通过SDK接口完成定位初始化,通过在百度地图获取景点的经纬度设置坐标点”。当用户走到景点所在位置时,使用mBaiduMap.setOnMarkerClickListener方法对标记点监听,通过判断标记的名字使用intent.putExtra(“location”,“ligong”)将地点名称放入intent中进行跳转到VoiceActivity类中;在VoiceActivity类中通过intent.getStringExtra(“location”)读取地点位置信息,对信息进行解析判断出所点击的标记是,然后使用mediaPlayer=MediaPlayer.create()以及mediaPlayer.start()实现语音讲解的播放,同时根据信息对TextView显示景点简介。
2.5拍照识别景点图片文字说明
实现光学字符识别(opticalcharacterrecogni.tion,OCR)识别系统,首先,需要将用手机拍摄的图片进行转换成黑白图像,接着将图像进行切割识别,然后对识别的文字进行分析和使用,节省了后期人力修改的时间。实现OCR识别从图像到文本输出,需要经历图像二值化、文字切割、特征提取、对比识别,最后人工校正输出识别结果‘。该功能的实现类为OCRActivity类,通过Cam.eraButtonListener方法对拍照动作进行监听,通过使用intent.putExtra(“path”,“name”)设定拍照图片的路径和名称,跳转到Android自带函数startAc.tivityForResuh()实现拍照功能,拍摄结束后,在on.ActivityResuh方法重新开辟新的线程进行使用ImgPretreatment类来进行图片的处理,ImgPretreatment类使用BitmapconveryT0GrayImg方法用来转化图像为灰度图,BitmapdoPretreatment方法进行预处理BitmapselectBinarization方法进行二值化处理。处理完图片后,调用doOcr方法从而使用谷歌公司的一个开源OCR引擎Tesseraet对处理完的图像进行识别,该开源的OCR引擎需要将识别数据库放置在手机SD卡中‘”。
2.6翻译实现
OCR引擎识别后,可得到文本,然后对文本进行翻译。调用fanyi.setOnClickListener监听,同时将识别后文本通过intent.putExtra(“fanyiwenben”,textResult)传递到intent,跳转到TransActivity类里,通过intentgetStringExtra(“fanyiwenben”)取得识别后文本。点击翻译按钮,进入百度翻译提供的接口,通过URL向百度翻译提交JSON数据报,经由百度翻译后台处理,发送数据报给该系统,系统通过解析数据报得到其中翻译的结果,提取出所需要的结果将其显示在手机界面上。
三、结语
综上所述,系统针对旅游景点导览开发的基于Android5.0.1平台,使用eclipse开发工具、Java开发语言,调用百度地图SDK,实现了城市介绍、附近搜索及路线规划、语音讲解、拍照翻译等功能。实验表明在手机客户端安装apk安装包,完全可以实现上述功能,特别适用于游客在多语种国外景点观光情况下的一站式旅游服务,可以对景点介绍文字及菜单进行实时翻译,且文字识别准确率达到95%以上。但同时本系统还有一些不足之处有待后续开发,如旅游导览不能根据位置自动播放语音,需要手工点击标记,后续可以调用位置管理器的靠近提醒技术自动触发景点的文字语音播报。