基于LBS的任务式旅游App的设计与实现

2020-05-03 19:00:30 来源:电脑百事网 作者:电脑百事网

本文《基于LBS的任务式旅游App的设计与实现》由手机部落整理,仅供参考。如果觉得很不错,欢迎点评和分享~感谢你的阅读与支持!

刘春梅 郭腾彬 黄琼宇 梁裕明 蔡柳萍

摘要:基于LBS的任务式旅游App以网络为平台,以任务为手段,在建立社交关系结交新朋友的同时,还可以利用碎片时间完成任务赚取一定报酬,可记录走过的路线,保存景点地图,可根据天气提醒旅游必带物品,还可根據当前位置用语音或图文对景点进行介绍。该文结合实际,对比其他旅游App,对要实现的旅游App进行了深入的需求分析,使用LNMP架构,利用Geolocation(地图定位),采用LBS(定位服务)技术搭建平台,并采用TCP长连接让用户进行交互,实现即时通讯功能;基于Yii2搭建任务系统,利用微信支付实现任务悬赏金的支付。经测试表明,该平台设计的各项功能达到了预期设计目标,满足了任务交友平台的需求,系统运行稳定,页面设计友好,与同类社交平台相比更具优越性。

关键词:任务式;社交;悬赏;旅游;语音导游

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)23-0103-02

1 背景

越来越多的企业开始进军旅游业。淘宝有“飞猪旅行”,京东有“京东旅行”,百度有“去哪儿网”。中国经济在猛速增长,中国人的旅游消费观念也在不断变化,旅游行业已经进入了高速爆发期。在线旅游市场的发展潜力巨大,因此,各个商界巨头都开始了在线旅游方面的投资。

就旅游本身而言,是符合SoLoMo概念的。旅行出差,位置变换快,这是移动需求;出门在外,需要解决在当地的食住行问题,这是本地化。综上所述,旅行途中的需求,不外乎食、住、行、票、攻略、游记等问题,而出门在外,我们往往会用手机来解决上述需求,因为针对这些问题,现行的旅游类App都已经很好地进行了解决,但这些App都忽略了旅游者在旅途中两个非常重要的需要:社交需求及基于LBS的导游服务。食住行票攻略全部都可以在旅行出发之前完成,而如果出差或是有当地朋友安排行程的话,这些需求也全都迎刃而解,但在游玩的过程中若到了陌生的地方,是会有社交需求的:陌生环境,经常要求助陌生人且与新玩伴建立社交关系。而基于LBS的导游服务,是当游客到达某个景点后,App可根据当前位置用语音或图文对景点进行介绍,这样游客不再需要导游,即有助于提升、挖掘旅游城市、景点的人文文化,帮助人们了解景点的背景,让游客了解到景点背后的故事,能更好地享受旅行,又有利于提高游客出行选择的多样性。

2 系统设计

LBS的任务式旅游App在布署上用到两台百度云服务器,一台部署Websocket服务,负责任务管理,一台部署平台主要程序,分开部署是为防止服务器宕机。

平台在开发上选择目前PHP框架中企业级别的Yii2框架高级模板来进行设计,使用免费开源的MySQL数据库管理系统进行数据存储。

系统有三个最主要的模块:客户端模块、服务端模块和数据库模块。

2.1 服务端模块

系统运行过程中产生的数据以及对数据所进行的添加、删除、修改等操作,都将存储在服务器端,专门配置专业的管理人员对服务器端进行管理。如果其他的人员若要对服务器进行一些常规的维护,则可以给相关的人员设置一定的操作权限。最后,通过数据库的同步操作,为任务式旅游App的使用者提供所需的相关数据。

另外,数据模型也将存放在服务端。在这里,任务式旅游App的使用者将通过一个统一的开放接口向服务端发出自己的请求。接收到请求后,服务器端利用存储在其上的数据模型实现对数据的分析、统计和处理。服务器端主要实现以下两个功能:接收任务式旅游App的使用者的请求且执行请求,连接及访问数据库。

2.2 数据库模块

我们将使用Database类来实现数据库的访问功能。这是一个非常重要的类,它能实现数据库与JDBC的连接,让我们可以获得数据库的当前状态及相关数据。我们主要使用二类语句来实现数据库的相关操作,第一个语句是查询语句Query,使用它主要实现SQL查询,第二个语句是Update语句,使用它主要实现现有数据库的更新。

“语音导游”功能实现过程中,要完成的数据通信功能都是基于HTTP机制的一项技术来实现的,在客户手机端上首先必须发送信息打包的请求,将相应的包请求发送至服务器端,服务器端接收到相应的包后,进行相关的一系列分析及处理过程。最后,将处理好数据申请的包发送给手机的客户端口,让任务式旅游App的使用者可以通过手机查看相关的显示。

2.3 客户端模块

客户手机端的运行和设计主要针对游客和管理的相关人员,坚持友好界面及人性化的体验。客户手机端主要实现与服务器端的连接和管理。在系统被启动的时候,客户端能够以最短的时间登录系统,且发送连接请求,快速的与服务器建立连接。客户手机端通过注册来创建相关的用户对象,通过键盘输入个人信息、密码等个人账户信息来匹配相关的信息、校对信息,接着,客户端发送相关的请求信息,服务器接收到请求后,对客户进行信息的验证,最后,将客户的请求结果(成功或失败的结果)显示在手机端。

3 功能设计

3.1 角色设计

LBS的任务式旅游App主要分为三类用户:

游客:指没有登录权限(主要是指网络用户),以匿名身份访问网站的人。此类用户主要权限有浏览热门任务信息、查看任务详情、注册成为会员。

App会员:指所有注册的普通用户。游客注册成为会员后,可以发布悬赏任务,竞标悬赏任务,查看附近的人,在线聊天建立社交关系,支付任务悬赏金,取消任务,记录已走过的路线,保存景点地图,根据天气情况提醒旅游所需要的物品,根据当前位置用语音或图文对景点进行介绍等。

后台管理员:后台管理员负责管理后台,主要权限有任务分类管理、管理员管理以及数据统计。

3.2 功能模块设计

前台模块:

1)用户注册:将用户填写的个人信息附带定位信息保存在用户表中。

2)用户登录:用户登录成功后进入平台首页,同时可修改用户定位信息、发布或竞标任务。

3)个人中心:可查看用户基本信息、账单、发布或竞标过的任务以及修改个人信息。

4)发布任务和支付:将任务信息发布出去,并用微信扫码支付悬赏金。

5)竞标任务:用户可对感兴趣的任务进行竞标,填写竞标描述。

6)任务进度:用户可根据自己的需要,对自己发布的任务进行编辑,如确定猎人(指竞标任务的用户),设置任务完成或取消任务。)

7)聊天模块:用户可以查看附近的人并发起实时聊天,从而建立社交关系,也可以根据需要改变自己的在线状态。

8)语音导游模块:模块包括两部分,一部分是地图功能,另外一部分是语音播放功能。通过地图选择景区,在进入景区地图后,点击景点旁边的语音介绍按钮,此时客户手机端将播报景点语音进行相关介绍。

后台模块:

1)任务分类管理:可查询、增加、修改、删除任务分类信息。

2)管理员管理:可查询、增加、删除管理员信息,可修改管理员角色及权限,可冻结管理员状态。

3)数据统计:可查看任务数、新增用户数以及交易流水的统计。

4)语音导游管理:通过该模块添加景点文字介绍,再将文字转换为语音。

4 系统实现

LBS的任务式旅游App实现注册、登录、后台管理等基本功能外,核心功能是任务模块、语音导游模块、个人中心模块等功能模块。

4.1 任务模块

任务模块主要包含发布任务和支付、竞标任务、竞标详情三个功能的实现。

1)发布任务和支付功能的实现

主要使用TaskController和TaskBigController来实现。比如发布任务,需调用TaskController中的create方法来实现,必填信息如任务标题未填则返回错误信息,反之则调用WxPayUnifiedOrder微信统一下单,再利用WxPayNativePay微信扫码支付实例生成支付二维码,支付成功则发布成功。

2)競标任务的实现

竞标前利用Cookie中是否有_identity属性判断是否为游客,利用Bootstrap的Modal控件弹出模态框,如果没有登录则提示登录,有则填写竞标描述,调用TaskBigController实例的create方法实现竞标。

3)竞标详情的实现

在访问该任务之前,先通过任务id调用TaskBig模型搜索关联task_id查询是否有竞标记录,有的话将列表通过Bootstrap Modal模态框展示出来。另外通过ajax请求调用TaskController实例的SelectHunter方法确定猎人,取消任务和完成任务分别通过ajax请求调用TaskController实例的ConfirmTask和CancelTask方法完成。

4.2 语音导游模块的实现

图1 语音导游服务

语音导游功能:基于HTTP机制来实现数据之间的通信,手机客户端先对HTTP请求进行打包,然后将请求包发送到服务器端。而服务器端收到请求包后,对请求包执行一系列的处理工作,最后将处理结果发送到手机客户端。

定位功能:主要提供位置服务,实现实时定位与定向API的位置管理服务。要实现定位功能,主要用到以下的一些类。位置管理服务(Location Manager)并没有直接用来获取位置,而是通过Get System Service服务来获得一个指向它的Handle。Handle可以根据位置信息的具体内容来进行查询;另外,当获取了所处位置的实时数据时,还可以实时更新数据。系统启动后,先将所有景点相关数据保存起来。用户来到了某一景点时,手机客户端检测到用户所处的实际位置,这时用户点击景点所在的语间按钮,就可听到该景点的详细语音解说,如图1所示。

4.3 个人中心的实现

个人中心可查看或修改用户信息、账单、发布或竞标过的任务。用户的基本信息、账单通过调用UserController的center方法获取,根据用户的id来关联查询该用户发布或竞标过的任务数据,调用账单查询模型PurseDetailSearch获取用户的账单信息。

5 结束语

该次设计基于LBS的任务式旅游App,用到的技术是比较前沿的,最终App实现了需求里面拟定的所有功能,且各项功能都高效运行,具有较高的稳定性和实用性。

参考文献:

[1] 阮胜利. 基于LBS的O2O商业模式研究[J]. 教育, 2015(12).

[2] 常大俊. 基于MySQL数据库结构设计[J]. 信息安全与技术, 2015(9): 55-57.

[3] 肖胜仁.浅析PHP安全漏洞防范技术分析[J]. 网络安全技术与应用, 2015(4).

[4] 郭守超,周睿,邓常梅,等. 基于App Inventor和计算思维的信息技术课堂教学研究[J]. 中国电化教育, 2014(3).

【通联编辑:谢媛媛】

相关阅读