郑州轻工业学院计算机与通信工程学院 邹东尧 刘 宽 李娜娜
随着智能手机的进一步普及和移动互联网的飞速发展,基于手机上的应用越来越深入人们的生产和生活[1]。本文研究主要基于安卓手机对GPS和WiFi的支持[2],设计和实现外勤人员实时定位与历史行动轨迹追查监管系统[3]。该系统可用于各个企业或者单位当前面临的外勤智能化高效管理,比如针对某高端小区物业保洁、保安等外勤人员,尽管在其工作场所都有视频监控设备,但是并不能做到无死角的追踪与监督。如果能做到远程实时监控和历史行动轨迹的追查[4],则可以对在工作时间内消极怠工或其他情况起到一个高效的监督作用。而采用该系统只需要外勤人员手机上安装一个APP,然后接入WiFi网络,管理人员就可以在远端对所有外勤人员进行实时准确定位和历史轨迹追查,大幅度降低用于管理平台运营维护的人力、时间和财务[5]等成本。
本系统框图如图1所示,整个系统框架包括4个部分,分别是管理客户端、外勤手机客户端、服务器端、通信网络。其中,管理客户端用于系统管理者对于外勤人员进行监控管理,它可以利用手机终端或者PC机,通过有线或者无线接入因特网,打开浏览器访问服务器。外勤手机客户端采用安卓系统,安装APP,接收GPS定位信息,通过WiFi网络将定位信息发送给服务器端处理。服务器端接收外勤手机客户端定位信息进行本地显示与存储,同时它还能接受并处理管理客户端的访问请求。通信网络不仅包括管理客户端与服务器端之间的有线局域网、WiFi、GPRS、Internet网络,而且包括服务器端与外勤客户端之间的WiFi网络,还包括外勤客户端与GPS卫星之间的通信网络。
系统运行时,外勤手机客户端会以一定频率周期性采集手机GPS位置信息,并将定位信息通过WiFi上传给服务器端。服务器端接收信息后,将信息处理显示并储存在数据库中。管理手机客户端或者管理PC机客户端通过浏览器查看信息可以采用以下两种方式,第一种可以查看实时定位信息,此时系统将最近一次外勤手机客户端上传的位置点显示在百度地图上,以确定当前外勤手机持有者的准确位置。第二种方式则是可以查看历史轨迹回放,此时系统将之前外勤手机客户端上传的历史位置信息从服务器的数据库中提取并处理,在百度地图上将这些位置点按照时间先后顺序连接起来形成历史行动轨迹图。
外勤手机客户端应用程序基于安卓手机,程序代码使用Java语言,APP的编译全部在Eclipse平台上完成。在功能上负责采集定位信息并将信息上传给服务器,位置信息采集交互如图2所示。
图2 位置信息采集交互Fig.2 position information collection interaction
外勤手机客户端APP包括定位信息采集模块和定位信息上传模块,其中,定位信息的采集模块利用百度地图的BaiDuMap API(应用接口)[6]实现,定位信息的上传模块使用Socket与服务器进行信息交互,将信息发送给服务器,信息的采集和上传是有着固定频率的。在利用BaiDuMap API获取GPS位置信息时不仅需要把手机的GPS开关设置为打开,还需要在APP工程中导入相对应的Jar包,这样才可以使用已经封装好的get方法,对数据包进行解析。
如外勤手机客户端获取不到GPS信号时,APP会认为手机没有打开GPS开关,会直接跳出提示开关。手机会以一定的频率来周期性来对位置信息的采集和上传,当APP通过手机获取到GPS位置信息后,会将GPS位置信息解析为json格式的数据包,以作发送准备。再之后APP会通过WiFi建立与服务器的Socket连接[7],手机会将json格式的位置信息发送给服务器,并等待服务器的ACK回应,如未收到ACK回应,显示发送失败,收到则显示发送成功。之后会判断定时器是否超时,超时将会继续进行下一次的位置信息采集与上传。APP程序设计流程图如图3所示。
图1 系统框图Fig.1 System Block Diagram
系统程序的代码使用Java语言,设计MVC三层结构[8],该框架结构可以将网页与数据库之间的程序分为三层:分别是视图层,控制器层和模型层。提高代码的可重用性。并且模块之间相互独立,提高了应用程序的可配置性,有利于软件工程化化管理[9]。服务器分为两大模块,第一个模块是接收存储位置信息,服务器会接收外勤手机发送的json格式数据包,并会将数据包解析成详细的经纬度信息,存储在数据库中,位置信息的处理存储过程如图4所示。第二个模块是提取处理模块,在管理端浏览器需要访问信息时,服务器会从数据库中将信息提取出来,并在对信息进行处理之后,确定位置点,将位置点定位在页面上,使用MyLocationOverly方法[7]把百度地图覆盖在位置点上,对页面空白进行填充。这时在浏览器页面上可以看到位置的显示,位置信息的提取处理过程如图5所示。
图3 APP程序设计流程图Fig.3 APP program design flow chart
在提取处理模块中,实现的是系统的两个功能,第一个是实时定位功能。管理端浏览器页面上向服务器发送请求,服务器会返回最新一次上传的位置点。第二个功能是历史运动轨迹的监管功能。管理端浏览器向服务器发出请求,则服务器提取一段时间内的位置点,使这些信息点在地图上按照先后顺序连接之后,发回给管理端浏览器。根据管理端浏览器页面显示的轨迹可以判断历史运动记录。
图4 位置信息的处理存储Fig.4 Location Information Processing and Storage
图5 位置信息的提取处理Fig.5 Location Information Extraction and Processing
手机在安装好APP之后,可以通过WiFi建立与服务器的连接,上传位置信息,如图6所示。
图6 外勤手机客户端APP上传位置信息Fig.6 Field mobile client APP upload the location information
可以通过管理端设备浏览器通过因特网与服务器连接,显示定位功能和历史行动轨迹的追查,如图7所示。
图7 管理端浏览器查询历史轨迹Fig.7 Management browser query history track
本文设计了一个基于安卓手机的人员实时定位与监管系统。经过简单APP的安装,并与服务器连接,可以实时上传手机所在的位置信息。可从网页查看上传的位置,实现实时定位和对历史行动轨迹的监管。极大地节约管理上各项成本开支,可为智能化云管理,高效化监督提供参考。