Skip to content

飞行历史回溯

页面布局如下

img.png

要求:

  1. 地图上展示无人机实时位置
  2. 无人机高亮效果联动table以及详情弹窗,通过点击无人机或table中的row均可使无人机高亮,并且支持toggle
  3. 底部时间轴可以倍数播放,最高10倍,最低1倍。10倍播放意味着接口请求的速度为:10次/s
  4. 底部时间轴的实时时间需要与接口请求中的时间字段保持一致
json
{
  "queryTime": "2024-07-01 11:03:54",
  "flyNumList": [
    "24CQ04001-070101-0002",
    "24CQ09001-070101-0002",
    "H20240701110533",
    "H20240701110617",
    "24CQ03001-070101-0001",
    "24CQ01001-070101-0001",
    "H20240701114429",
    "24CQ03001-070101-0002",
    "24CQ01001-070101-0002",
    "24CQ04001-070101-0003",
    "24CQ09001-070101-0003"
  ]
}

在需求实现中,为了提高页面性能,通过2个raf分别实现时间轴中的实时时间和web worker中的请求时间,那么如此设计也就意味着随着逻辑的执行时间拉长,2个raf的时间差距会越来越大

考虑到这个问题,经过思考后引入watch dog机制,每隔10分钟检查一次2个raf之间的差距,如果差距超过30s,那么以接口请求中时间字段-queryTime为准去校准timeline中的时间。