符晨曦 ,程 钢,2 ,董文帅 ,岳俊升 ,张清兰
(1.河南理工大学 测绘与国土信息工程学院,河南 焦作 454000;2.矿山空间信息技术国家测绘地理信息局重点实验室,河南 焦作 454000)
随着中国社会的快速转型和变迁,家庭呈现小型化趋势,家庭结构由家族式缩小为父母子女式,家庭内非劳动力人口与劳动力人口之比快速攀升[1]。随之带来的是家庭成员的监护问题,尤其是老人、儿童等弱势群体的安全监护问题。弱势群体走失、被拐背后隐藏的一个关键信息是位置信息,如何借助专业学科知识解决这个社会实际问题现实而迫切。
近些年来,基于位置的服务(Location Based Service, LBS)受到越来越多的关注。该技术将定位技术、移动通讯技术、地理信息系统技术和互联网技术相结合[2],借助全球卫星导航定位系统(Global Navigation Satellite System, GNSS)或无线电通讯网络进行定位,获取用户位置信息,并在地理信息系统平台支持下为用户提供相应服务[3]。地理围栏(Geo-fencing)是LBS的一个新应用,通过被监护者的实时位置与虚拟围栏的关系,判断被监护者的安全状态,进行轨迹跟踪,并根据情况进行必要预警[4]。智能手机具有定位模块,便于随身携带,是实现地理围栏技术的合适载体。
针对当前已有的监护系统功能单一、多对象监控查看不便、消息反馈不及时等不足之处[5],本文基于智能终端系统,设计开发一种可对多个监护对象同时进行监护,对基于GNSS和GIS技术的定位、跟踪显示、围栏分析以及超速、超时、摔倒等实时检测技术和方法进行探索。
本文设计的系统采用C/S模式,由两个客户端和一个服务器组成。两个客户端分别是被监护端和监护端。被监护端主要负责收集被监护者的移动状态数据并实时将数据上传到服务器,进行超速、摔倒分析并在紧急情况时向监护端发送预警通知。监护端根据从服务器下载的被监控端数据利用空间分析技术实时显示被监控端的位置,判断其与虚拟地理围栏的关系,进行危险性分析。服务器负责在后台存储数据、审核信息、查询系统日志以及被监护端和监护端之间的信息传输。
服务器与客户端之间的通信采用HTTP协议的JSP技术[6],数据同步通过HTTP的POST方式实现,其中客户端的请求方式是HTTP的Request方式,服务端的应答方式是HTTP的Response方式[7],数据格式是JSON。
系统主要有注册登录、个人中心、路径导航、移动状态采集、移动状态显示和安全状态预警等6个功能模块,其中,注册登录、个人中心、路径导航布置在监护端和被监护端;移动状态采集、超速预警和摔倒预警布置在被监护端,移动状态显示、安全围栏预警功能布置在监护端;用户信息和状态数据存储、中转和管理由服务器端完成。系统功能结构如图1所示。
图1 系统功能结构概图
系统工作主要的业务流程如下:
1)注册及建立监护关系。监护者和被监护者分别在监护端和被监护端进行注册,被监护者注册后会从服务器获得一个用于身份识别的唯一标识符,监护者登录系统后通过添加唯一标识符的方式与多个被监护端形成监护关系。
2)被监护端将移动状态数据获取、上传,超速、摔倒预警。被监护端获取本机的位置、速度、加速度等数据,并将位置、速度数据实时上传至服务器。根据速度、加速度数据结合相应的算法判断被监护者是否处于正常移动速度和是否摔倒,在其处于危险状态时通过自动发短信的方式向监护者发出求助信息。
3)监护端获取被监护者路径数据,进行围栏判断及预警。监护端预先设置好安全区域和安全路线等安全围栏,再结合从服务器下载得到的被监护端的位置数据,利用GIS分析方法判断被监护者是否在安全区域内或移动时是否偏离了安全路线,当被监护者离开安全区域或安全路线时,监护端会收到安全预警通知。监护者接收到求助信息或安全预警通知后可通过路径导航功能查询到达被监护者的最优路径。
在个人自愿的基础上,未成年子女和行动不便的老人可以允许其父母或子女实时查看自己的位置,并进行安全监护。系统数据包含必要的监护与被监护人信息、监护关系、被监护人的位置和路径信息,需要借助数据进行存储和管理。这些数据是进行安全分析、信息推送等工作的基础。根据系统功能设计,本文对服务器数据库进行了设计,主要包括4个数据表,分别是监护端用户信息表、被监护端用户信息表、监护关系对应表、被监护端数据表。监护端用户信息表(见表1)作用是记录监护者信息。被监护端用户信息表(见表2)作用是记录被监护者信息。监护关系对应表(见表3)存储的是监护端和被监护端之间的对应关系。被监护端数据表(见表4)是一类表,每一个被监护端有一个表,表名为被监护端的唯一标示符,表内的信息主要是记录被监护端在某个时间点上的位置、速度信息。
表1 监护端用户信息表
表2 被监护端用户信息表
表3 监护关系对应表
表4 被监护端数据表
移动轨迹显示、安全区域和安全路线绘制、路径导航等功能都需要地图的支持。因此,需要设置地图图层。监护端和被监护端都需要的地图服务图层有:
1)底图图层。底图采用调用SuperMap在线地图API的方式获取得到,作为基础地图放置在MapActivity类中。
2)路径导航图层。该图层为路径导航模块提供支持。当触发路径导航按钮时,图层上会显示出从起点到终点的到达路径。
仅存在于监护端的地图服务图层有:
1)位置图层。该图层中有位置标记,当触发被监控端位置按钮时,地图中被监控端的当前位置处会出现位置标记;当触发本机位置按钮时,地图中本机的当前位置处会出现位置标记。
2)轨迹图层。该图层为显示被监控端移动轨迹提供支持。
3)安全围栏图层。监护者可在该图层上创建、编辑、保存安全围栏。
监护与被监护关系的建立与维护,需要通过监护端和被监护端的双层设置来共同完成。
监护者通过添加家庭成员功能与被监护者建立监护关系。添加时需要输入被监护端的唯一识别符、用户名和密码,输入的信息会上传至服务器,服务器会进行审核,只有三者都一致,才会启动监护功能。这些信息只有被监护端知道,监护端只有在被监护端许可时才可获知,在一定程度上保障被监护端的信息安全。
当被监护者不会使用手机时,经被监护者同意后,可由监护者完成被监护端的注册和监护与被监护关系的建立,在此之后,只需打开程序放置在后台运行即可,被监护者无需进行过多操作。
需要获取的被监护端的移动状态数据有位置、速度和加速度。实时位置及速度采用无线定位技术中的GPS定位和基站定位结合的方式获取[8]。GPS定位效果较好,但当卫星信号不能达到较好的定位效果时,需要由基站定位来弥补。通过二者获取的位置数据是经纬度,将其进行坐标转换后,上传至服务器。加速度由智能移动终端上内嵌的加速度传感器实时获取,得到的是X,Y,Z三轴方向上的加速度分量[9]。其中,X轴表示手机左右方向,Y轴表示手机前后方向,Z轴表示垂直于手机的方向。加速度数据为摔倒预警提供数据支持,需保存在被监护端本机,无需上传至服务器。
安全围栏预警技术路线是首先绘制安全围栏,其次从服务器下载设定时间间隔内的被监护端位置数据集,然后判断被监护端位置是否在安全围栏内,若不在安全围栏内则发出预警。
根据被监护端日常活动范围,绘制安全围栏,安全围栏有安全区域和安全路线两种形式,绘制时,前者以多边形要素显示,后者以线型缓冲区显示。可对已经绘制的图形进行编辑、保存到本机内存等操作。从服务器端获取被监控端在设定的最近一段时间间隔内的位置数据集,将其与安全围栏同时显示在当前地图图层上,并根据点与多边形的几何关系判断被监控端是否在安全围栏内,当点在多边形内部和多边形边缘上均认为是在安全围栏内。当被监护端不在安全围栏内,监护端会及时收到弹窗通知。
本文采用的开发环境如下:服务器软件是SuperMap iServer 8C;客户端是Android操作系统,版本为4.0.3,集成开发工具是Android studio,开发语言为Java[12],开发平台为SuperMap iMobile 8C for Android,开发中使用到的该平台的模块见表5。
在对系统进行运行和测试时,需要具有良好的网络环境,以保证客户端和服务器的正常连接,另外对智能移动终端的要求是:Android系统,版本为4.0.3及以上,运行内存为1 G及以上,含有GNSS定位功能和加速度传感器,可以发送短信。
3.2.1 用户注册
注册登录功能是为了验证用户是否为合法用户,保障用户信息安全。注册登录功能流程见图2。注册时,先与服务器中的数据库建立连接,再通过执行SQL语句向用户信息表中插入新用户的信息,同时通过SQL循环语句比对数据库中已有的数据来判断用户是否已存在,若已存在则返回错误提示信息。登录时,同样要先连接数据库,再执行SQL语句验证输入的用户名和密码是否与数据库中保存的信息一致,若一致则进入功能界面,否则返回错误提示信息。
表5 系统开发中主要使用的Supermap模块
图2 注册登录功能流程
3.2.2 安全围栏的绘制与管理
对安全围栏的操作包括创建、命名、保存、选择显示、编辑、删除等,通过调用SuperMap iMobile 8C(2017) for Android中数据模块的Geometry类实现这些操作。测试结果见图3。
3.2.3 围栏安全性判断
调用SuperMap iMobile 8C(2017) for Android中数据模块的Geometry类实现点与多边形位置关系内的判断,以及调用PopupWindow类实现弹窗预警。当点不在多边形内时,认为被监护端不在安全区域内,此时系统会收到弹窗预警,测试结果见图4。
3.2.4 移动状态显示模块
从服务器端获取被监控端在设定的最近一段时间间隔内的位置数据集,并保存在本地内存中,利用正则表达式提取出速度、坐标信息。将点状位置数据集存入类DatasetVector中,调用该类的convertToLine()方法,将点状数据转换为线状数据,并存放入线状数据集中,从而得到移动轨迹。最后调用Ondraw()方法在地图图层上进行显示,测试结果见图5。
3.2.5 路径导航模块
路径导航功能的作用有两点:1)监护人员收到预警通知后,通过该功能选择最优路径达到被监护者所在的地点;2)该功能引导被监护者找到回家或到达学校的路。监控端的路径导航起点是本机当前位置,终点是被监控端当前位置。被监控端起点是本机当前位置,终点是预设的常用地址位置。该功能通过调用SuperMap iMobile 8C(2017) for Android中导航模块和网络分析实现。以监护端为例进行模拟测试,所用的网络数据集为北京市路网数据集,测试结果见图6。
图3 安全围栏绘制与管理界面
图4 安全围栏预警界面
3.2.6 摔倒及超速预警模块
当被监护端的速度超出预设速度,或加速度不在正常范围时,被监护者有超速或摔倒危险,此时,被监护端通过Intern组件调用发送短信的Activity程序向监护者自动发送预警短信。测试时,携带被监护端模拟超速和摔倒情况,监护端收到短信预警通知。
图5 移动状态显示界面
图6 路径导航界面
本文在充分考虑弱势人群外出时可能遇到的安全状况基础上,设计一种基于智能移动终端的家庭成员安全监护系统,在不需要额外购买智能设备的条件下,能够同时对多个家庭成员的移动状态进行远程实时监控,并可以根据移动状态数据对被监护者的安全状态进行判断,在遇到安全问题时自动向监护者发出预警通知。这使得被监护者的外出安全状况不受时间和空间的限制,能够被实时关注、监护,也解放监护人员的时间,在不降低安全性的前提下给予监护双方自由与空间。