Files

2.8 KiB
Raw Permalink Blame History

车辆连续巡航与转弯

Goal

让 Cesium 预览中的车辆沿连续道路路线穿越路口,并以可见的平滑曲线完成左转、右转和直行; 同屏展示多条确定性路线以核对效果。

Confirmed Facts

  • 当前 scripts/lib/vehicle-route.js 将每条可行驶 OSM way 独立导为折返巡航段;车辆不会跨 way 行驶。
  • Cesium 预览最多加载 5 辆车辆,已有位置插值、朝向计算、路线可见性和 Follow 控制。
  • 南台子湖 OSM 使用单引号 XML 属性,含 15 处 turn:lanes:forward、15 处 turn:lanes:backward 和 4 条 oneway=yes
  • 没有 restriction relation首版不能承诺处理禁止左转等限制关系。
  • 路口 11407997251140799919 各连接四条道路,另有多个三岔连接,足以形成多条 左转、右转、直行的连续候选路线。

Requirements

  1. 从 OSM 可行驶 way 构建有向道路图:单行道只能按 tag 方向通行,双向道路提供两个方向。
  2. 在共享端点连接道路,依据入射和出射方向将候选动作分类为 left、through、right去程 只有动作出现在该方向 turn:lanes:* 的任一车道时才可通行。返程原路返回,不用反向 turn:lanes 二次否决路线。
  3. 确定性地产生至多 5 条连续往返路线,覆盖至少一条左转、一条右转和一条直行路线。
  4. 路口与路线端点均用平滑连接补充路线点;车辆位置、朝向和可见路线必须连续,不能在 way 端点跳回起点。
  5. 保持现有路线 JSON 是预览的可选输入,旧 route JSON 仍可由预览加载。

Out of Scope

  • 不做实时交通仿真、避碰、红绿灯、变道或速度控制。
  • 不使用 QGIS 图层或改动 Blender/GLB。
  • 不支持 OSM restriction relation后续数据具备时再接入。
  • 不承诺为每条车道生成独立精确轨迹;turn:lanes 首版用于许可转向过滤。

Acceptance Criteria

  • 输出最多 5 条连续往返路线,且每条均有多个跨 way 的路口连接和端点平滑调头。
  • 南台子湖预览同屏可见左转、右转、直行三类路口动作,车辆不在路口或 way 端点瞬移。
  • oneway=yes 的路段不会逆向进入;去程没有匹配 turn:lanes 动作的出口不会被选入路线。
  • 路线生成对同一 OSM 输入稳定,自动化测试覆盖单行、动作过滤、转向分类、曲线连接和闭环。
  • 旧 route JSON 的预览兼容性不回归,现有 Pause、Follow、路线开关和车辆选择仍可用。

Open Questions

已决南台子湖可行驶道路主连通分量是树状网络23 个端点节点、19 条道路连接),没有 真实闭环;首版以端点平滑调头的往返路线替代闭环。为展示多条路线,返程不以反向 turn:lanes 过滤,但仍不允许逆行单行道。