WebGIS 路口交通仿真技术:从数据解析到车辆转弯动画(年代久远,归档)
路口GIS仿真前端技术文档
- 雷达数据特征分析
前端通过websocket接收后端实时推送的雷达数据,铜陵市路口是三个雷达,推送的数据包括三个雷达的数据,根据每个数据节点中的DeviceNo属性值区分不同雷达数据。
数据结构如下:

后端MQ每次推送一个数据节点,如上图红色框内的Object对象。每个数据节点包含一个Timestamp时间戳属性,这个应该表明雷达在某个时刻的监测数据,如红框中的数据节点表示设备编号为21的雷达在Timestamp时刻监测的车辆状态数据,Obj_List数组中存放的一些车辆在车道坐标系中的位置参数和速度参数,一般一个数据节点是一个雷达设备对一群车辆在某个时刻(Timestamp)的观察数据,这些车辆编号都是不同的,即Object中的Obj_List数组中不应存在相同编号车辆的数据项。

- 计算车辆位置经纬度和实现车辆位移动画效果

计算车辆A从一个位置移动到另一个位置至少需要2个数据节点且这个2个数据节点中要包含待计算的车辆A编号。
先根据车道坐标系在地图上计算车辆A的起始位置p经纬度LngLat1和结束位置q经纬度LngLat2,然后用2个数据节点的时间戳Timestamp相减得到从p到q的位移时间duration。
前端用TweenJS动画库借助起始位置经纬度和位移时间duration即可实现车辆在地图上从p点移动到q点的平滑动画效果。
空间计算部分:
- 如何根据车道坐标系计算车辆的经纬度位置?
根据车辆数据项包含ObjPos(车辆Y轴坐标),LaneNo(车道编号),车道宽带(3.5米),路段与正东或正北的夹角这些参数和三角函数,结合工具turf.js空间库容易计算。如下图所示:

- 育才路车辆转弯效果模拟

代码:

转弯代码还是比较通用的,以后其它路口把这个代码拿过来稍微调整下就行了,计算原理都是一样的。
- 程序设计UML图
类图

浙公网安备 33010602011771号