APP下载

基于Android的露营信息系统设计与实现

2015-10-20陆奕帆郭晓金简超峰

电视技术 2015年14期
关键词:露营地调用应用程序

陆奕帆,郭晓金,陈 沉,简超峰

(重庆邮电大学 信号与信息处理重庆市重点实验室,重庆 400065)

随着近年来旅游业的飞速发展,越来越多的户外活动得到了人们的关注。我国拥有庞大的旅游市场,私家车出游也将达到小高峰,一大批私家车服务设施如汽车旅馆、汽车营地、加油维修站点等的建立将会带动国内自驾游出行人数的增长。随着旅游业的蒸蒸日上,大量企业和资金的介入共同加速了旅游文化的发展,而露营地的建设也将成为旅游地的新亮点[1]。

智慧旅游作为智慧城市的外延,利用通信与信息技术提升客户体验,保障了行业信息一体化的管理,刺激旅游产业的快速发展。使用云计算、物联网、下一代网络等新技术,借助终端通过互联网或移动网络主动获取旅游资源,实现服务于大众的全新旅游模式。本文设计了基于Android系统的露营地信息软件系统。传统的信息系统数据库在设计之初采用Android内嵌Sqlite数据库,由于属于应用程序的一部分,占用Android客户手机内存空间。而本露营信息系统基于传统系统的基础上,将所需的露营信息数据库放置在网络数据库服务端,采用Web Service技术[2]实现网络传输数据,利用网络流媒体数据传输视频,结合智慧旅游概念,提升使用者的服务体验。

1 系统总体架构

1.1 系统简介

露营信息系统的主题设计思路是Android操纵端能够通过实际需要进行露营地推荐、露营地的筛选、获得指定露营地的图片、露营地介绍、预定电话以及地理地图的显示。

该系统采用C/S体系结构如图1所示,将应用程序分为数据库服务器和客户端应用程序两个部分。数据库服务器一旦被启动就随时等待相应客户端应用程序发出的请求,客户端应用程序能够自动寻找服务器程序,请求发送并接收数据库服务器返回来的露营地相应信息。

图1 C/S体系结构图

1.2 系统设计

系统使用MyEclipse、JDK、Tomcat、MySql开发服务器端,使用Eclipse、JDK、Android SDK、ADT开发Android客户端。

在Web Service服务器端采用CXF架构与Spring和Hibernate架构结合使用,使服务器端具有高类聚低耦合的特性。Android端作为手持移动终端,利用Tomcat作为自定义Web Service的服务器调用露营地相关信息。根据露营地的地理信息请求给百度地图,通过对百度地图的调用实现地图功能。通过百度媒体云平台实现视频公开流媒体地址。系统时序图如图2所示。

图2 系统时序图

2 软件设计与实现

露营信息查询系统主要模块有露营地查询筛选模块、露营地推荐模块、百度地图的应用。软件功能图如图3所示。

露营地查询筛选模块主要运用自定义Web Service接口调用数据库查询露营地名称或根据具体露营地调用详细信息。

露营地推荐模块中图片推荐主要通过自定义接口实现调用,视频推荐模块通过自定义接口获得指定视频的公开流媒体地址,实现视频播放。

地图规划模块通过Android客户端请求地理位置编码给百度地图API定位选择的露营地并且根据需要规划路径。

图3 软件功能图

2.1 露营地查询筛选模块

此模块采用C/S体系结构,实现了Android客户端与自定义Web Service服务器的连接、方法调用和数据的传输。Android端需要在AndroidManifest.xm l上声明WiFi和GPRS的权限及操作权限,使客户端能够连接网络搜索到自定义服务器。使用ksoap2-android.jar文件调用Web Service所暴露的操作。

2.1.1 Web Service请求和响应

在客户端定义WebServiceUtil类利用现有ksoap2_android.jar包实现服务器与客户端的连接。连接Web Service方法如下:HttpTransportSE transport=new HttpTransportSE(url)创建此实例对象实现调用操作,envelope.bodyOut=soapObject将传出SOAP消息给Web Service。调用transport.call(soupaction,envelope)作为远程调用Web Service。使用SoapObject result1=(SoapObject)envelope1.bodyIn获取服务器响应返回的SOAP消息。Android端调用Web Service的流程图如图4所示。

2.1.2 露营地查询及筛选模块实现

用户可根据直接录入露营地名称实现模糊查询,或者经由主题、省份、星级和类别选择的方式筛选查询露营地名称。

点击查询或筛选按钮,Android手机客户端开始建立与Web Service服务器的联系,将所要调用的Web Service接口名称以及参数值传输到Web Service。再由自定义服务器内部查询,将数据库中的信息响应返回Android手机客户端应用程序,实现数据在UI界面上的显示。

为了更好地反馈及响应信息,本系统采用List<Map<String,Object>>的数据类型,将相应的详细信息封装到Map<String,Object>中,使用键值对方便信息的调用,并且使用List对象封装数据,方便数据的存取,保证了数据的高效性和准确性。

图4 Android端调用Web Service的流程图

2.2 露营地视频推荐模块

视频推荐模块采用网络视频作为源视频,百度媒体云通过HTTP Restful API以及跨终端平台SDK实现基于BCS视频存储、编码、分布式转码等相关视频服务。

Android当前支持Http协议和RTSP协议传输视频流媒体[3]。

1)获取url地址

利用百度媒体云,将所需视频传输到媒体云中,根据Android所需格式大小进行转码处理后公开流媒体地址,存储在数据库中。在Android程序中利用Web Service接口获取数据库中的url地址。

2)播放视频

使用Android中的VideoView作为容器盛放视频流媒体,使用MediaController控制流媒体播放及进程。主要代码如下:

main_video=(videoview)findViewById(R.id.main_video);

MediaController mc=new MediaController(this);

main_video.setVideoURI(Uri.parse(url));

main_video.setMediaController(mc);

main_video.requestFocus();

main_video.start();

2.3 百度地图模块

JavaScript语言写的百度地图API能够将百度地图嵌入到用户指定客户端。利用百度地图API,露营信息系统的地图模块调用百度地图步骤如下:

1)连接调用百度地图

首先,在AndroidManifest.xml中添加在百度公司官网注册软件获得的密钥,导入百度地图API。在xml文件中声明和获得WiFi、网络、精确定位GPS等相关权限。在调用地图定义的类SDKInitializer.initialize(getApplicationContext())实现地图SDK各组件调用的初始化,创建MapView实例对象,使用户获得地图资源的控制。其次,初始化搜索模块并注册事件监听,其中监听器功能包括标记查找位置、设置地图的中心点等。最后发起地理编码的请求,实现地理信息在地图上的定位等功能。

2)定位当前所在位置

使用百度地图定位SDK,采用GPS、基站、WiFi信号定位[4]。当应用程序向定位、SDK发起定位请求时,定位SDK会根据应用的3种定位信息的优先顺序(默认顺序为GPS、WiFi、基站定位)以及实际的开启及连接情况来生成相应定位依据进行高精度混合定位。百度地图定位原理图如图5所示。百度地图API采用经纬度坐标系和莫卡托投影坐标系,其中经纬度坐标系利用地球上的球面坐标系统,摩卡托投影坐标系是一种等角正切圆柱投影[5]。

图5 百度地图定位原理图

首先在工程文件中加入开发包locSDK.jar,在百度地图定位模块中,首先在主线程中声明LocationClient类设定相应参数。其次,实现BDLocationListener接口实现数据为BDLocation类型的接收异步返回的定位结果。其定位关键代码如下:

3)规划路径

地图的路径规划是特殊的空间检索,首先要对检索的相关方法进行初始化即明确要搜索路径的起点和终点。Android SDK支持路径搜索,百度地图API提供的服务接口为:TransitRoute公交路线搜索服务,DrivingRoute驾车路线搜索服务,WalkingRoute步行路径搜索服务,TrafficControl实时路况控件提供实时和历史路况信息服务[6]。

驾车路线搜索分为3种策略:时间最优(MKSearch.ECAR_TIME_FIRST)、费用最少(MKSearch.ECAR_FEE_FIRST)和距离最短(MKSearch.ECAR_DIS_FIRST)。步行和公交路线搜索主要使用百度地图API所提供的接口[7]。其路线搜索返回搜索结果关键代码如下:

3 系统测试运行

根据上述的环境和设计开放情况,首先在MyEclipse软件中开启Tomcat,使自定义Web Service作为数据库服务器提供数据支持,其次将Android露营信息系统的apk安装到Android手机终端,开始进行测试。

1)UI主界面显示

UI主界面实现对系统功能的导航,方便使用者能够快速找到想要的功能。在主界面上主要提供了查询露营地、筛选露营地、地图定位导航以及热门露营地推荐功能,如图6所示。露营地具体查询方式以及详细露营信息如图7所示。

图6 露营信息系统主界面(截图)

图7 露营地查询功能界面(截图)

2)地图定位和规划

Android客户端开启GPS或WiFi功能,应用程序将通过定位请求发起定位模式,并且根据用户的选择帮助用户规划露营地路线,如图8所示。

图8 地图定位和规划界面(截图)

4 结束语

露营信息系统在一定程度上了满足了露营爱好者对于露营地的信息需求,不仅为用户提供露营地的信息查询,解决了Android手机用户仅仅使用少量的内存就可以完成方便快捷的露营信息查询,减少了以往的数据库信息都存储在应用程序内部的问题,而且还扩展了地图的功能,在系统中添加了地图定位和规划,方便用户使用。此外,为了获得更好的用户体验,露营信息系统还能进一步完善,做到各个客户端的交互,实现资源共享,完成各个客户端之间的互联互通功能。

[1] 向富华.中国房车旅游发展存在的问题及对策探讨[J].三峡大学学报:人文社会科学版,2014(1):46-51.

[2] ARMSTRONG E.The Java Web Service tutorial[M].USA:Pearsopn,2003.

[3] 魏涛,彭涛,郑建宏,等.基于Android的流媒体播放器的研究与设计[J].电视技术,2014,38(9):102-104.

[4] 王培海.基于Android的移动云存储系统设计与实现[J].电视技术,2011,35(15):94-97.

[5] 孙咸磊,许捍卫.基于移动设备的定位跟踪系统及其实现[J].地理空间信息,2014(2):111-113.

[6] 李钊,吴琼霖,杜美玲.基于iphone的地图搜索应用的设计与实现[J].电脑知识与技术,2014(5):1035-1037.

[7] 董绍轩.GIS中常用坐标系的比较与转换[J].硅谷,2013(11):163-140.

猜你喜欢

露营地调用应用程序
核电项目物项调用管理的应用研究
第四届中国最美露营地评选获奖露营地名单出炉
删除Win10中自带的应用程序
LabWindows/CVI下基于ActiveX技术的Excel调用
谷歌禁止加密货币应用程序
神秘的“渔翁”
森林露营地的类型
基于系统调用的恶意软件检测技术研究
前往露营地
利用RFC技术实现SAP系统接口通信