chore(task): archive 08-05-cesium-traffic-signals
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Cesium 路口信号灯可视化
|
||||
|
||||
## Goal
|
||||
|
||||
在 Cesium 预览中加入可直接观察的路口交通信号灯,使已完成的道路、停止线、斑马线、
|
||||
转向箭头和车辆巡航有清晰的交通控制参照。车辆应在对应停止线前遵守同一套相位,并在
|
||||
绿灯放行后继续巡航。
|
||||
|
||||
## Confirmed Facts
|
||||
|
||||
- `scripts/lib/cesium-preview.js` 目前只加载场景资产、巡航路线与车辆;没有信号灯图层、
|
||||
模型或相位状态。
|
||||
- 路线 JSON 包含连续的左、右、直转向曲线,但没有路口 ID 或信号相位字段。
|
||||
- 现有停止线、斑马线和转向箭头已由区域构建确认,且用户要求暂不触及 QGIS 的人工修补
|
||||
边界、道路生成与既有连续路线逻辑。
|
||||
- Cesium 当前同时绘制灯杆、横杆、灯头、熄灭灯珠、倒计时外壳,以及随相位变化的灯珠和
|
||||
七段数字。这使静态设施只存在于验证层,难以随主场景维护。
|
||||
- `05_Props` 集合已经进入主 `.blend` 和 Cesium GLB;`traffic-signals.js` 已是停止线和
|
||||
路口面推导信号锚点的唯一事实源。
|
||||
|
||||
## Requirements
|
||||
|
||||
- 在道路进口侧、停止线附近呈现简洁而可辨识的交通信号灯,并在不遮挡车道标线的前提下
|
||||
面向来车方向。
|
||||
- 红、黄、绿灯应有明确的点亮状态和周期性相位切换,使静态截图与实时预览都能看出其作用。
|
||||
- 信号灯应能独立显示/隐藏,遵循现有 Cesium 控件的克制设计语言。
|
||||
- 车辆接近已匹配的停止线时,红灯和黄灯必须停车,绿灯继续通行;相位切换后应自然恢复
|
||||
移动,不得瞬移到路口另一侧。
|
||||
- 等待逻辑只模拟单车对信号的响应,不做车辆间跟车距离、排队或碰撞避让。
|
||||
- 首版以主要路口的程序化示意灯覆盖为准:从已生成的停止线和路口面推导进口,缺少可靠
|
||||
几何锚点时跳过。它不宣称复刻 OSM 中逐节点标注的真实信号设施。
|
||||
- 灯杆、横杆、灯壳、熄灭灯珠和倒计时牌外壳必须成为 `05_Props` 中的静态场景几何,随
|
||||
主 GLB 导出;Cesium 只保留与这些几何严格对齐的发光灯珠、七段倒计时数字、显示开关和
|
||||
车辆相位等待。
|
||||
- 信号锚点必须在 `intermediates` 阶段写入 `osm2streets_web_out/traffic_signals.json`,由
|
||||
Blender 与 preview 共用;不得纳入 `SCENE_LAYERS`、GeoPackage 或 QGIS 工程。
|
||||
|
||||
## Acceptance Criteria
|
||||
|
||||
- [ ] 仅运行 `intermediates,blender,cesium` 后,主 GLB 已包含位于路口进口侧的灯杆、横杆、
|
||||
灯头、熄灭灯珠和倒计时牌外壳;静态几何位置与停止线/
|
||||
斑马线关系清楚,且不会漂浮在道路中央或遮挡车道箭头。
|
||||
- [ ] 灯组以可见状态呈现红、黄、绿的相位切换;未点亮灯珠明显较暗。
|
||||
- [ ] 页面提供独立的 Signals 显示开关,关闭后不影响场景、路线与车辆。
|
||||
- [ ] 匹配到信号停止线的巡航车辆会在红/黄灯时停在线前,绿灯后连续通过;没有可靠匹配的
|
||||
路线保持原有循环巡航,不因信号锚点缺失而卡住。
|
||||
- [ ] 不修改 QGIS 工程、道路/标线生成或既有路线 JSON 的基本契约。
|
||||
- [ ] preview 重建后,动态灯珠和数字与 GLB 中相应灯头、倒计时外壳对齐,且无 Cesium
|
||||
重复的杆、横杆、灯壳或外壳实体。
|
||||
|
||||
## Notes
|
||||
|
||||
- Keep `prd.md` focused on requirements, constraints, and acceptance criteria.
|
||||
- Lightweight tasks can remain PRD-only.
|
||||
- For complex tasks, add `design.md` for technical design and `implement.md` for execution planning before `task.py start`.
|
||||
Reference in New Issue
Block a user