论文部分内容阅读
摘 要: 校内循环车的在校园应用越来越广泛,但校内循环车存在同学抢座、无座、等待时间太长等现象。为解决这些弊端,本文设计了基于百度地图的掌上校车APP。利用百度地图开放平台地图、定位、鹰眼SDK等服务接口,实现界面地图的显示、实时精确定位、运动轨迹显示等,并合理运用到掌上校车APP上。该APP设计了三种不同的乘车模式,针对不同乘车环境,在校园循环车上的应用得到了较好效果。
关键词: 掌上校车;百度地图;位置共享;百度鹰眼;移动应用
中图分类号: TP31 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.05.004
本文著录格式:宋红凯,杜洪波,程宇航,等. 基于“百度地图”的掌上校车APP设计[J]. 软件,2019,40(5):2125
【Abstract】: The applying of campus cycle car is becoming more extensive, but campus car born some phenomena that students take a seat in disorder ,no seat and waiting too long,etc. In order to solve these problems, this paper developed this APP called “Palm School Bus” based on Baidu map. Adopting the map, location, eagle-eye SDK and other service interfaces provided by Baidu map open platform, we can realize the display of map at interface and motion trajectory, real-time locating accurately, and apply them to "Palm School Bus" APP reasonably. The APP has designed three different modes of riding. The application of the APP in the campus cycle car has achieved good results for different riding environments.
【Key words】: Palm School Bus; Baidu Map; Location sharing; Baidu eagle-eye; Mobile application
0 引言
隨着高校建设发展,适应大学生校园内出行的校内循环车遍及校园。但有些想坐车的同学无法判断车在哪、有没有座,而放弃坐车,导致校内循环车的利用率不高,以及上下课高峰时期出现同学抢座而造成冲突。为解决这些弊端,这款基于百度地图的掌上校车APP便应运而生。此APP的管理员模式为校内循环车的司机登录,通过司机的手机定位[1],将其经纬度发送到数据库中,同学手机中的APP再从数据库中提取经纬度而获取司机的位置,结合同学自身的位置预定校车座位,极大地减少了同学们的等待时间,让时间更加的高效充分利用。在互联网时代飞速发展、国家大力支持科创的时代背景下,“掌上校车”又把校园智能化推上了新的台阶。
1 作品实现技术
1.1 地图与定位
依托百度位置大数据和高精尖定位技术的百度地图开放平台,百度地图Android SDK[2]提供了地图、定位等服务接口,通过调用该SDK服务接口访问百度地图服务和数据,实现界面显示地图和快速、精准地获取司机位置信息,从而让师生知道此时此刻校园车的精确位置。
同时使用了连续定位。在实际定位场景中,可能会存在很多的位置抖动,连续定位展示了一种对定位结果进行的平滑优化处理实际测试,该平滑策略在市区步行场景下,有明显平滑效果,有效减少了部分抖动。
1.2 用户模式下显示校车位置
不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。主要的通信协议是在编程语言内的直接API[3]调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都存储在宿主主机上的一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
Android操作系统中集成了SQLite数据库[4]。因此,软件开发登录的时候,通过从SQLite数据库中查询数据实现判断用户名密码是否正确,并调出数据库中该账号对应的个人信息,如班级、姓名、学号等,并保存至个人中心界面。另外,利用Sharepre?ferences可以对轻量级数据[5]进行存储的特点,将本次输入的用户名密码存入手机File,实现记住用户名密码的功能。图1为SQLite数据库的实现流程。
SQLite数据库中写入了两种用户名,一种是供正常使用该APP的师生登录,另一种是管理员账号,仅供校车司机使用。
管理员模式下登录后进入的是简易界面,司机发车后,在该界面下点击相应按钮,将实时定位后获取的经纬度上传至云服务器[6]。
用户模式下,则实时从云服务器中获取司机也就是校园车的经纬度,再用自定义Maker,将校车位置显示在用户端的地图界面中。本系统直接使用司机的智能手机作为校车的位置采集终端[7],从而省却了购买专门的获取校车位置数据的智能硬件设备的费用。 1.3 乘车模式的巧妙化
该界面的特点是按钮多。本次开发,巧妙利用
Boolean类型变量,对每个按钮的点击事件添加if语句,实现按钮点击事件顺序解锁,每一个按钮的点击,又会对相应的按钮进行锁定,避免出现多次选择起点终点的BUG,每人只能预定一次座位。图2为乘坐校车的流程。
1.4 轨迹的实现——百度鹰眼
百度鹰眼SDK是一套轨迹管理服务[8],基于百度地图开放平台提供的百度鹰眼接口和云端服务,百度鹰眼经过如图所示的流程,对轨迹进行处理后,将用户的乘车轨迹保存到“个人中心”界面的乘坐历史下,供用户翻看。图3为百度鹰眼的实现流程。
1.5 下车的提醒——地理围栏[9]
地理围栏是LBS中的一个概念,指的是一个虚拟的围栏空间,通过对位置网格的虚拟化,模拟一个围栏空间[10]。本系统下的管理员模式,可以在用户的下车点设置地理围栏警报。规定一个圆心和半径,一旦校车进入这个围栏内,即乘客接近其预设下车点,触发地理围栏警报,可以达到智能提醒司机到站停车的目的。
2 APP总体设计
2.1 乘车中心
本模块包含百度地图和乘车模式。百度地图上实时显示校内循环车与个人的位置,同学可以直观的获取校内循环车的位置信息,以便能根据自身的位置判断是否预定校车,预定哪辆校车。
乘车模式包括3种:正常模式,观光模式,行李模式。
正常模式:即一般模式,可以直接预定座位,设置上车地点与下车地点,预定成功后便能在指定位置上车。
观光模式:用于空闲时观光校园。选择此模式后,需要先选择乘坐的圈数和下车点,最后只需坐在校内循环车上,便可尽情感受校园的美景。
行李模式:主要的服务人群是返校或者离校的同学。相比于正常模式,行李模式可以预定两个位置,一个位置用于自己乘坐,另一位置可用于放置行李或大型快递。
2.2 资讯中心
作为辅助和美化界面,资讯中心主要发送校内资讯,其中包括美图欣赏、每日一读与推荐比赛活动三项服务。
美图欣赏中会放送一些校园美图,也会尽力去引用比赛获奖的校园照片,用心发现身边的美丽,增加同学们对校园的热爱以及美好向往。
每日一读栏目,会每天发布一些包含人生哲理的文章,用于乘车期间身心的愉悦,让同学们养成一种热爱阅读的好习惯,鼓励同学们在学习方面追求上进。
推荐比赛活动为一些近期将要举行的校赛、省赛以及国赛,比如说数学建模、大创,以及挑战杯等等。推荐活动旨在让同学们实时了解近期赛事,鼓励同学积极参加各类活动,丰富大学生活。
2.3 个人中心
个人中心页面是具有个性化的一个页面,除了单独的个人信息显示,还包括预约信息、乘坐历史、信用记录、校园公告、联系客服等五项服务内容。
预约信息栏包含了此次乘车的乘车模式、起点、终点及圈数;主要是乘坐的時候观看,非乘坐期间将显示为空;乘坐以后的记录将以轨迹的形式呈现在乘坐历史当中。
乘坐历史栏为以往乘车的记录,目前仅支持搜索起止时间来查询乘车记录。此项功能放便同学们查看以前的记录。
信用记录栏则是在同学预定校内循环车成功后,若不按规定上车或不去乘车,则留下不良记录,不良记录多次累计后,一段时间内该账号将无法预约校内循环车。
校园公告栏顾名思义就是要发布一些校园临时公告,主要为学校宣传做辅助,发送一些教务处、后勤处等公告通知。
联系客服栏旨在实时接收同学对此款APP的评价与改进建议,解决APP使用中的用户体验问题,使该APP更加完善,以便于更好的为同学们服务。
3 UI设计
基于百度地图的掌上校车APP设计出了便于操控、结构清晰、用户体验完美的界面,下面就部分界面进行介绍:
主页面:通过 TextView和 ImageView控件将内容显示出来,通过百度地图为开发者提供的二次开发API,利用百度地图SDK,设计主页面的地图,见图4。
校园资讯:用继承于ImageLoader使用图片轮播控件进行图片轮播,增加美感;基于大众普遍爱看图不爱看字,此页面加入了较多图片元素来进行相应的服务,见图5。
个人中心:用ListView控件显示个人可操作的列表功能,每一项均可以点击查看。个人中心首页作为用户信息的汇总,集结了所有与个人信息相关的管理模块。在此页面上,可以清楚知晓登录用户的所有信息概况,并能够进行相关管理与操作,见图6。
4 总结
本文通过分析APP各类功能的实现,实现了互联网+校车,使乘车信息化。通过百度地图开放平台提供的服务接口和云服务器,来实时显示校车位置。通过按钮点击事件的顺序解锁,来实现三种乘车模式的预定。在APP上,百度地图显示了校内循环车的位置,实现了校内循环车的座位预定,从而达到了校内循环车的预定智能化,让更多工大学子的乘车得到了便利,为实现“家文化”有迈向了更重要的一步。
参考文献
[1] 王万丽. 基于Android平台和百度地图API的定位系统[J]. 电脑编程技巧与维护, 2017(18): 47-48.
[2] 杜传明. 百度地图API在小型地理信息系统中的应用[J]. 测绘与空间地理信息, 2011, 34(02): 152-153+156.
[3] 黄伟敏. Android平台的即时通信系统客户端设计方案[J]. 现代电子技术, 2011, 34(16): 140-142.
[4] 马获蕾, 汤海凤. Android系统中SQLite数据库的研究[J]. 电脑知识与技术, 2013, 9(28): 6243-6245+6256.
[5] 吴珊. Android的系统及应用的架构[J]. 电子技术与软件工程, 2019(03): 148.
[6] 林子雨, 赖永炫, 林琛, 谢怡, 邹权. 云数据库研究[J]. 软件学报, 2012, 23(05): 1148-1166.
[7] 杨博雄, 黄静, 陈希同, 周佳鑫. 基于智能手机的校园巴士运行位置实时共享系统[J]. 计算机系统应用, 2018, 27(03): 71-76.
[8] 朱孔强, 丁林花, 朱立顺, 聂国豪, 席永科. 基于百度鹰眼的校园巴士APP[J]. 数字技术与应用, 2018, 36(04): 42-43+45.
[9] 向华. 一种实时地理位置数据分析技术的探索与实现[J]. 城市勘测, 2016(02): 11-14.
[10] Dean J, Ghemawat S. MapReuce: Simplified data Processing on large cluster [J]. Communication of the ACM, 2008. 51(1): 107-113.
关键词: 掌上校车;百度地图;位置共享;百度鹰眼;移动应用
中图分类号: TP31 文献标识码: A DOI:10.3969/j.issn.1003-6970.2019.05.004
本文著录格式:宋红凯,杜洪波,程宇航,等. 基于“百度地图”的掌上校车APP设计[J]. 软件,2019,40(5):2125
【Abstract】: The applying of campus cycle car is becoming more extensive, but campus car born some phenomena that students take a seat in disorder ,no seat and waiting too long,etc. In order to solve these problems, this paper developed this APP called “Palm School Bus” based on Baidu map. Adopting the map, location, eagle-eye SDK and other service interfaces provided by Baidu map open platform, we can realize the display of map at interface and motion trajectory, real-time locating accurately, and apply them to "Palm School Bus" APP reasonably. The APP has designed three different modes of riding. The application of the APP in the campus cycle car has achieved good results for different riding environments.
【Key words】: Palm School Bus; Baidu Map; Location sharing; Baidu eagle-eye; Mobile application
0 引言
隨着高校建设发展,适应大学生校园内出行的校内循环车遍及校园。但有些想坐车的同学无法判断车在哪、有没有座,而放弃坐车,导致校内循环车的利用率不高,以及上下课高峰时期出现同学抢座而造成冲突。为解决这些弊端,这款基于百度地图的掌上校车APP便应运而生。此APP的管理员模式为校内循环车的司机登录,通过司机的手机定位[1],将其经纬度发送到数据库中,同学手机中的APP再从数据库中提取经纬度而获取司机的位置,结合同学自身的位置预定校车座位,极大地减少了同学们的等待时间,让时间更加的高效充分利用。在互联网时代飞速发展、国家大力支持科创的时代背景下,“掌上校车”又把校园智能化推上了新的台阶。
1 作品实现技术
1.1 地图与定位
依托百度位置大数据和高精尖定位技术的百度地图开放平台,百度地图Android SDK[2]提供了地图、定位等服务接口,通过调用该SDK服务接口访问百度地图服务和数据,实现界面显示地图和快速、精准地获取司机位置信息,从而让师生知道此时此刻校园车的精确位置。
同时使用了连续定位。在实际定位场景中,可能会存在很多的位置抖动,连续定位展示了一种对定位结果进行的平滑优化处理实际测试,该平滑策略在市区步行场景下,有明显平滑效果,有效减少了部分抖动。
1.2 用户模式下显示校车位置
不像常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。主要的通信协议是在编程语言内的直接API[3]调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都存储在宿主主机上的一个单一的文件中。它的简单的设计是通过在开始一个事务的时候锁定整个数据文件而完成的。
Android操作系统中集成了SQLite数据库[4]。因此,软件开发登录的时候,通过从SQLite数据库中查询数据实现判断用户名密码是否正确,并调出数据库中该账号对应的个人信息,如班级、姓名、学号等,并保存至个人中心界面。另外,利用Sharepre?ferences可以对轻量级数据[5]进行存储的特点,将本次输入的用户名密码存入手机File,实现记住用户名密码的功能。图1为SQLite数据库的实现流程。
SQLite数据库中写入了两种用户名,一种是供正常使用该APP的师生登录,另一种是管理员账号,仅供校车司机使用。
管理员模式下登录后进入的是简易界面,司机发车后,在该界面下点击相应按钮,将实时定位后获取的经纬度上传至云服务器[6]。
用户模式下,则实时从云服务器中获取司机也就是校园车的经纬度,再用自定义Maker,将校车位置显示在用户端的地图界面中。本系统直接使用司机的智能手机作为校车的位置采集终端[7],从而省却了购买专门的获取校车位置数据的智能硬件设备的费用。 1.3 乘车模式的巧妙化
该界面的特点是按钮多。本次开发,巧妙利用
Boolean类型变量,对每个按钮的点击事件添加if语句,实现按钮点击事件顺序解锁,每一个按钮的点击,又会对相应的按钮进行锁定,避免出现多次选择起点终点的BUG,每人只能预定一次座位。图2为乘坐校车的流程。
1.4 轨迹的实现——百度鹰眼
百度鹰眼SDK是一套轨迹管理服务[8],基于百度地图开放平台提供的百度鹰眼接口和云端服务,百度鹰眼经过如图所示的流程,对轨迹进行处理后,将用户的乘车轨迹保存到“个人中心”界面的乘坐历史下,供用户翻看。图3为百度鹰眼的实现流程。
1.5 下车的提醒——地理围栏[9]
地理围栏是LBS中的一个概念,指的是一个虚拟的围栏空间,通过对位置网格的虚拟化,模拟一个围栏空间[10]。本系统下的管理员模式,可以在用户的下车点设置地理围栏警报。规定一个圆心和半径,一旦校车进入这个围栏内,即乘客接近其预设下车点,触发地理围栏警报,可以达到智能提醒司机到站停车的目的。
2 APP总体设计
2.1 乘车中心
本模块包含百度地图和乘车模式。百度地图上实时显示校内循环车与个人的位置,同学可以直观的获取校内循环车的位置信息,以便能根据自身的位置判断是否预定校车,预定哪辆校车。
乘车模式包括3种:正常模式,观光模式,行李模式。
正常模式:即一般模式,可以直接预定座位,设置上车地点与下车地点,预定成功后便能在指定位置上车。
观光模式:用于空闲时观光校园。选择此模式后,需要先选择乘坐的圈数和下车点,最后只需坐在校内循环车上,便可尽情感受校园的美景。
行李模式:主要的服务人群是返校或者离校的同学。相比于正常模式,行李模式可以预定两个位置,一个位置用于自己乘坐,另一位置可用于放置行李或大型快递。
2.2 资讯中心
作为辅助和美化界面,资讯中心主要发送校内资讯,其中包括美图欣赏、每日一读与推荐比赛活动三项服务。
美图欣赏中会放送一些校园美图,也会尽力去引用比赛获奖的校园照片,用心发现身边的美丽,增加同学们对校园的热爱以及美好向往。
每日一读栏目,会每天发布一些包含人生哲理的文章,用于乘车期间身心的愉悦,让同学们养成一种热爱阅读的好习惯,鼓励同学们在学习方面追求上进。
推荐比赛活动为一些近期将要举行的校赛、省赛以及国赛,比如说数学建模、大创,以及挑战杯等等。推荐活动旨在让同学们实时了解近期赛事,鼓励同学积极参加各类活动,丰富大学生活。
2.3 个人中心
个人中心页面是具有个性化的一个页面,除了单独的个人信息显示,还包括预约信息、乘坐历史、信用记录、校园公告、联系客服等五项服务内容。
预约信息栏包含了此次乘车的乘车模式、起点、终点及圈数;主要是乘坐的時候观看,非乘坐期间将显示为空;乘坐以后的记录将以轨迹的形式呈现在乘坐历史当中。
乘坐历史栏为以往乘车的记录,目前仅支持搜索起止时间来查询乘车记录。此项功能放便同学们查看以前的记录。
信用记录栏则是在同学预定校内循环车成功后,若不按规定上车或不去乘车,则留下不良记录,不良记录多次累计后,一段时间内该账号将无法预约校内循环车。
校园公告栏顾名思义就是要发布一些校园临时公告,主要为学校宣传做辅助,发送一些教务处、后勤处等公告通知。
联系客服栏旨在实时接收同学对此款APP的评价与改进建议,解决APP使用中的用户体验问题,使该APP更加完善,以便于更好的为同学们服务。
3 UI设计
基于百度地图的掌上校车APP设计出了便于操控、结构清晰、用户体验完美的界面,下面就部分界面进行介绍:
主页面:通过 TextView和 ImageView控件将内容显示出来,通过百度地图为开发者提供的二次开发API,利用百度地图SDK,设计主页面的地图,见图4。
校园资讯:用继承于ImageLoader使用图片轮播控件进行图片轮播,增加美感;基于大众普遍爱看图不爱看字,此页面加入了较多图片元素来进行相应的服务,见图5。
个人中心:用ListView控件显示个人可操作的列表功能,每一项均可以点击查看。个人中心首页作为用户信息的汇总,集结了所有与个人信息相关的管理模块。在此页面上,可以清楚知晓登录用户的所有信息概况,并能够进行相关管理与操作,见图6。
4 总结
本文通过分析APP各类功能的实现,实现了互联网+校车,使乘车信息化。通过百度地图开放平台提供的服务接口和云服务器,来实时显示校车位置。通过按钮点击事件的顺序解锁,来实现三种乘车模式的预定。在APP上,百度地图显示了校内循环车的位置,实现了校内循环车的座位预定,从而达到了校内循环车的预定智能化,让更多工大学子的乘车得到了便利,为实现“家文化”有迈向了更重要的一步。
参考文献
[1] 王万丽. 基于Android平台和百度地图API的定位系统[J]. 电脑编程技巧与维护, 2017(18): 47-48.
[2] 杜传明. 百度地图API在小型地理信息系统中的应用[J]. 测绘与空间地理信息, 2011, 34(02): 152-153+156.
[3] 黄伟敏. Android平台的即时通信系统客户端设计方案[J]. 现代电子技术, 2011, 34(16): 140-142.
[4] 马获蕾, 汤海凤. Android系统中SQLite数据库的研究[J]. 电脑知识与技术, 2013, 9(28): 6243-6245+6256.
[5] 吴珊. Android的系统及应用的架构[J]. 电子技术与软件工程, 2019(03): 148.
[6] 林子雨, 赖永炫, 林琛, 谢怡, 邹权. 云数据库研究[J]. 软件学报, 2012, 23(05): 1148-1166.
[7] 杨博雄, 黄静, 陈希同, 周佳鑫. 基于智能手机的校园巴士运行位置实时共享系统[J]. 计算机系统应用, 2018, 27(03): 71-76.
[8] 朱孔强, 丁林花, 朱立顺, 聂国豪, 席永科. 基于百度鹰眼的校园巴士APP[J]. 数字技术与应用, 2018, 36(04): 42-43+45.
[9] 向华. 一种实时地理位置数据分析技术的探索与实现[J]. 城市勘测, 2016(02): 11-14.
[10] Dean J, Ghemawat S. MapReuce: Simplified data Processing on large cluster [J]. Communication of the ACM, 2008. 51(1): 107-113.