曾浩铭 刘康 王禧增
摘要:随着Android手机操作系统的飞速发展,Android系统及应用程序被越来越多的人认识并使用。在校园场景下,上学放学时段时,人流瞬时激增,造成道路不通畅,严重影响正常的日常生活。教学楼自习区域人员分散,寻找合适的课室需要花费不少的时间。为了解决上述问题,改善空间上的人流分布,方便生活;开发了这个系统。系统调用百度地图SDK实现校园内的道路显示。通过应用与数据库的互联互通实现了人流量记录以及查询和反馈,方便用户提早做好时间安排。
关键词:人流量;安卓;应用程序;数据库;设计与实现
中图分类号:TP311.5;X799.3 文献标识码:A
文章编号:1009-3044(2021)30-0101-03
开放科学(资源服务)标识码(OSID):
Campus Scene Oriented Pedestrian Volume Monitor System Design and Implementation
ZENG Hao-ming, LIU Kang, WANG Xi-zeng
(School of Mechanical Electronic and Information Engineering, China University of Mining and Technology-Beijing, Beijing 100083, China)
Abstract: With the rapid development of the Android mobile operation system, more people are familiar with Android Systems and software. On the campus,during students go to a classroom and after class period, pedestrian volume increase immediately cause traffic jam, influence a lot in daily life. In the self-study area of teaching building, people stay in many different classrooms. It will take some time to find a proper classroom. In order to solve the problems upon, improve the pedestrian lay on space, comfort peoples life; the system if developed. System use SDK provided by BaiduMap to show paths on the campus. By connecting with the Database,the application manages to record pedestrian volume, data collected can be select and feedback, it will help users to make time arrangements in advance.
Key words: pedestrian volume; android; application; database; design and implementation
1 背景
由于我国高校办学的历史较长,因受制于当时社会经济和交通的整体发展水平[1],道路较为狭窄。在上学放学的高峰期,主干道难以承受瞬间激增的人流,道路极易产生拥堵现象,不仅对同学的生活产生不便,也存在非常大的安全隐患,一旦有学生不慎摔倒,便可能引发踩踏等安全事故。饭堂和自习区域由于其自身特性,人流量集中激增于特定的一些時间段,如果不错峰,会导致时间过多的浪费在寻找空闲的位置上。
目前人流量监控系统已经在国内外的多个领域得到了非常广泛的应用,在一些发达国家,通过在各种商业场所收集数据信息,人流量分析结合客流和消费系统,可以提高销售率,增加经济效益。人流量是商业经营情况的重要指标,准确可靠的人流量统计能为商业决策提供强大的支持,有利于管理层适时调整经营战略,以最快速度响应市场的变化[2]。而在国内,针对商业综合体、品牌连锁店、图书馆、展馆、景区公园、住宅小区等应用场景,根据其不同的环境情况和需求;企业都分别做出了与之特点相对应的客流量解决方案。在大学生创新创业项目中,也有利用视频监控系统来设计实现的实验室入室管理系统等。然而在阅读论文的过程中,仍未发现有在整体的校园场景下的人流量数据收集与应用的实例。
2 技术手段
2.1 Android系统
系统是基于Android开发的。Android基于Linux技术开发,由操作系统、用户界面和应用程序组成,允许开发人员自由开发、修改源代码[3]。主要适用于移动设备,例如手机、平板,智能手表等。与苹果的应用程序开发相比,安卓的门槛要低得多,只需要把手机用数据线连接上电脑即可安装自己编写应用。
2.2 SQLITE数据库
系统中使用的数据库为SQLiTE,它是一个进程内的数据库,实现了自给自足的、无服务器的、零配置的、事务性的数据库引擎。其使用方法相当简单,只需要在程序代码中SQL语句写成字符串的形式,将其作为值传入函数即可将其执行。
2.3 Android Studio软件
系统所使用的开发工具是Android Studio。Android Studio是Google公司在2015年推出的基于Intelli J IDEA的Android开发环境[4]。它为用户提供了集成的安卓开发工具,内置了安卓模拟机可以非常方便地进行开发与调试。
2.4 百度地图API
系统中地图的展示使用了百度地图SDK,百度地图api是百度地图为开发者开发应用软件而推出的一套应用调用接口,可以方便地為开发者提供各种服务,包括本地地图的展现,路线导航、定位、地址编码、路线规划、搜索定位等[5]。通过调用地图接口,可以访问百度地图提供的数据和服务,构建地图类应用程序。
3 系统设计
该系统设计有四个模块,在进入系统后首先进入登录模块,完成注册或输入用户名登录后进入主界面,共有三个功能模块,分别实现了地图展示、饭堂的人流量实时查询与上报以及自习区域的人流量实时查询与上报。整体界面采用了tablelayout与viewpager结合的技术实现了包含标签的滑动视图。系统各部分如图1所示。
4 系统实现
4.1 欢迎与登录模块
用户在手机系统主界面点击应用图标后,进入本系统。首先进入splashActivity实现的“欢迎界面”。在设置的延迟后结束其生命周期,并利用intent可以在不同activity中传递消息的机制,启动新的Activity,跳转进入登录模块。用户在界面中向EditText输入账号密码等用户信息进行注册或登录操作。在登录操作中,利用游标得到数据库中是否存在用户输入的信息;若存在,则跳转至主界面,否则以toast提示登录失败。在注册操作中,将输入的信息以bean的方式传入SQL语句,并更新数据库作为新的一行,由于数据库的特性,将用户名作为主键,可以保证用户无法用同样的用户名重复注册。注册完成后,提示注册成功并跳转至主界面。登录模块流程图如图2所示。
4.2 界面实现
程序的各个界面是由XML文档编写的,类继承自Fragment。
为了在程序中实现通过水平手指手势或滑动在标签页之间进行切换,在系统中使用了安卓提供的ViewPager组件达到了“水平分页”的目的。将布局挂接到PagerAdapter,使用TabLayout做出标签页,最终将TabLayout与ViewPager使用setupWithViewPager()方法关联。
4.3 查询与上报
“饭堂”区间与“自习区域”区间的人流量上报与查询过程极其相似,在此一并阐述。用户点击界面中的按钮来使用所需要的功能,根据用户点击的按钮,系统进入不同的分支逻辑。如果用户此时需要查询某一地点的人流量情况,则根据用户使用Spinner所选择的地点以及其他属性,将其作为数据对象写入SQL语句中,执行后将查询结果以toast输出。如果是上报,则将用户在Spinner中选定的值传入SQL语句,更新数据库,以toast告知用户已写入数据库。查询和上报功能模块的流程图如图3所示。
4.4 地图显示
首先需要在项目中配置SDK,添加依赖项,添加混淆文件等。然后直接在JAVA代码中添加MapView来展示地图,通过并使用BaiduMapOptions对象设置经纬度坐标,来改变地图初始化后的显示的初始位置。
4.5 数据库
为了方便数据的存储与查询,选择了Android Studio内置的Sqlite数据库。
用户通过系统与数据库进行数据交换。在人流量的问题上,一个地点的属性包括:“门牌号”可以唯一标识一个房间,用户上报情况时的时间,当前时段累计的上传用户总数,当前时段由用户上报数据的人流量权数。由上传用户总数和用户上报数据,可以得到给查询用户的返回值。图4为系统的数据库E-R图。
数据库表中共有四个数据成员,分别是Char类型的Id、Datetime类型的Time_submit、int类型的Sum_people和sum。其中,Id是表的主键,用于唯一标识地点;Time_submit记录用户的上报时间;Sum_people记录上报的总用户人数,作为计算权值的数据来源;sum记录用户上报的人流量数据。表1为该系统的数据库结构的数据表。
5 结束语
本文主要介绍了“智行矿大”:面向校园生活的人流量监控系统设计与实现。该系统使用JAVA语言编写,页面之间的切换使用了google提供的viewpager组件,引入了百度的sdk实现地图显示功能。使用SQLite数据库实现了用户登录、实时查询和上报各个场景下人流量的功能。
在安卓模拟器中,应用程序可以非常稳定的运行,各个功能区间都能实现其设计要求。用户可以通过应用程序上传数据至数据库,也可以在点击查询后快速准确的获得返回的数据。
系统的不足在于:数据的来源全部依靠用户的上报,虽然在设计中有依据各个用户的上报计算权值的方法,但是其可靠性和及时性都得不到充分保障。问题可能还出现在如果当前地点没有用户上报,则无法获取该位置的准确状况。
未来可以考虑通过教室内的摄像头来获取各个教室的人流量信息,这样的数据来源是准确且具有时效性的。同时,系统所收集的数据也可以对合理安排校园内的人流空间分布有一定的指导作用。
参考文献:
[1] 况亚勇.高校校园交通安全的问题及对策[J].产业与科技论坛,2020,19(18):222-223.
[2] 覃汝宏.综合性商业建筑智能化特点分析及新技术应用[J].智能建筑与城市信息,2013(9):54-56.
[3] 张勇.基于Android 平台的短信发送器实现探秘[J].科学与财富,2013(11):325.
[4] 余亮,王红,王元航.基于Android Studio的智慧校园多媒体管理App设计[J].电子世界,2020(12):114-115.
[5] 张孝良,曾庆涛,唐明杰,等.基于图数据库和百度地图的快递物流系统的设计与实现[J].北京印刷学院学报,2021,29(2):141-149.
【通联编辑:谢媛媛】