彭小男 李文金 苏凯雄
摘要:利用当下流行的渐进式JavaScript框架Vue和Leaflet地图组件,构建一套稳定、易用、用户体验好的多功能北斗定位可视化监控平台。从前端软件架构以及前后端交互机制出发,通过将北斗设备获取的原始WGS84坐标转换为国测局GCJ02坐标,实现了北斗终端的实时监控、历史轨迹回放等功能;针对历史轨迹回放中存在的位置点偏移与路径折线的问题,引人路径匹配和轨迹插值算法,提高了历史轨迹回放的准确性与运动轨迹的平滑性。
关键词:Vue;leaflet地图;北斗定位;路径匹配;轨迹插值
中图分类号:TP399 文献标识码:A
文章编号:1009-3044(2020)13-0028-03
1背景
传统的位置服务平台功能单一,且依赖于服务器性能,通常未能给用户带来很好的可视化体验。随着技术的发展,前端工程化以及前后端分离的开发方式已渐成潮流。通过选择一套合适的前端框架来进行前端工程的开发,可以有效提高系统性能和用户体验。Vue是目前平台前端页面开发的主流框架,采用自底向上增量开发的设计,可使得前端开发更便捷。为了使北斗设备更好地与具体行业应用结合,使北斗数据得到更为充分地利用,拓展出较为丰富的内容,本文设计和实现了基于Vue框架的北斗定位可视化监控平台。
从工程应用对交互展现体验的需求出发,采用Vue框架对前端系统进行设计与实现。为提高用户交互体验,将车辆的位置信息及行驶轨迹实时、动态、直观地显示在Leaflet地图上。在轨迹回放设计中,通过引入路径匹配算法和轨迹插值算法,提高了在地图上还原车辆原始行驶路径的准确性,以及轨迹显示和动态回放的平滑性。
2系统总体设计
2.1系统软件架构
图1中,持久层用于存储相关的前端资源以及后端返回有关位置信息的数据;传输层实现内部数据的传递分发;服务层提供平台的核心业务功能,封装有主要的业务逻辑;应用层包含应用到的视图组件、验证工具和插件等,封装交互逻辑。分层式结构将数据管理和应用逻辑分层独立管理,在该架构下开发北斗定位监控可视化平台,使层次结构更加明确,后期维护更为便利,提高模块复用性,降低代码耦合性。
2.2前后端交互机制
前后端交互过程如图2所示,以进入监控中心页面为例。
系统前端页面采用动态获取路由的方式,在平台中每个用户绑定相应角色,角色授权相应的可执行操作。用户根据用户名与密码登入系统,后端数据库根据不同登人用户的角色验证后返回Token以及相应的路由,从而生成菜单。在监控中心中选择需要获取位置的终端,前端将终端号作为参数用iQueryAjax向后端发送异步请求,后台服务根据请求的范围在mysql数据库中进行空间查询,并把结果以JSON格式字符串的形式返回给前端进行解析,包括经度、维度、速度和方向等,然后将其位置数据在Leaflet地图上展示。
3算法设计
在对监控对象的历史位置点进行轨迹回放中,由于在中国国内使用谷歌地图所获取的经纬度经过了加偏处理,为了提高定位精度,需要将北斗获取的WGS84坐标转换为国测局GCJ02坐标。
3.1坐标转换
3.2路径匹配
当定位轨迹点出现偏差,会造成轨迹回放不能准确地还原车辆行进的路线,通过路径匹配算法解决位置点偏移的问题。以偏离点为圆心,以R为半径建立缓冲区。路径匹配是指从缓冲区筛选出来的道路集中筛选出匹配的目标道路,并将偏离点投影到匹配的目标道路对应点上,原理如图3所示。
具体的实现步骤为:
1)将缓冲区筛选出来的道路分别离散成一系列点集合,如点集合A和B。
3.3轨迹插值
轨迹插值算法在确保插值有效的前提下,尽可能地减少了定位次数,从而降低实际应用系统的成本㈣。
4监控可视化功能实现
4.1实时监控
图5为终端监控界面,Leaflet增加了AJAX技术,实现在不需要刷新整个页面的情况下更新页面内容,在地图上用户可通过选择地图刷新时间来自动获取设备的实时位置。在搜索区,用户可以选择组织和设备名称来获取终端设备,将返回的数据以树状图的形式展现出来。当用户勾选树状图中的终端设备,在右侧的Leaflet地图中显示出该设备对应经纬度的最新实时位置点。并且用户点击地图上的marker时,触发popup弹框功能,信息框显示设备的终端编号、定位时间、数据来源、经纬度等基本信息。
4.2轨迹回放
本平台將设计好的路径匹配和插值算法封装成代码插件,用户前端操作回放功能时,通过选择时间段和终端设备,利用设计好算法的插件对轨迹点数进行增密处理,还原车辆的历史行驶轨迹,并将从服务端获取到的位置数据处理后在Leaflet地图上进行动画回放。实现效果图如6所示。
5结束语
平台以北斗卫星导航定位服务需求为背景,从平台总体架构、前端框架以及平台前后端交互机制出发,通过使用Vue框架和Leaflet地图实现一个提供实时监控、轨迹回放等多功能的车辆位置服务平台,能够准确地对装有北斗的车辆进行位置监控,具有较高的可靠性和稳定性,并且通过对平台前端进行优化处理,给用户带来更好的可视化体验。作为基于北斗系统的工程应用,在一定程度上促进了北斗在民用领域的进一步拓展与推广。