33 lines
1.9 KiB
Markdown
33 lines
1.9 KiB
Markdown
# 设计:Cesium 路口信号灯可视化
|
||
|
||
## 边界
|
||
|
||
信号灯属于 Cesium 验证预览层,不进入 QGIS、GeoPackage、场景九图层、Blender 或主 GLB。
|
||
区域构建只额外写入一个轻量的信号锚点 JSON;预览运行时读该 JSON 后以 Cesium 原生
|
||
Entity/Primitive 构成灯杆、灯头和发光灯珠。
|
||
|
||
## 锚点与几何
|
||
|
||
中间阶段已有 `vehicle_stop_lines` 和 `intersection_surface`。信号锚点生成器将停止线的
|
||
中点作为进口横向基准,依据相交路口面和停止线两端的方向判定来车朝向;灯杆置于停止线的
|
||
侧后方、道路外缘一侧,且朝向来车。没有可唯一关联的路口面、停止线过短或无法确定外侧时,
|
||
不输出锚点。
|
||
|
||
输出保存灯杆坐标、对应停止线坐标、朝向和稳定 ID,避免浏览器重新解析 GeoJSON 或 OSM。
|
||
每个路口按相对进口方向分为两组对向相位;统一循环绿、黄、全红切换。
|
||
|
||
预览将每条路线按累计米数投影到信号停止线。只有距离阈值内且行驶方向与信号进口一致的
|
||
匹配才形成停车点。车辆的累计里程由 `clock.onTick` 推进;下一停车点为红或黄时将里程夹在
|
||
停止线前,绿灯后从同一位置继续。没有停车点的路线保留原速度循环。
|
||
|
||
## 预览交互
|
||
|
||
预览加载锚点 JSON 失败时记录 warning,场景、路线与车辆仍可用。加载成功时信号灯默认显示,
|
||
并在现有 View 控件中提供独立 Signals 复选框。灯珠以 emissive 材质区分点亮和熄灭状态,
|
||
不依赖环境光;灯杆用低多边形几何,避免增加外部模型资产。
|
||
|
||
## 风险与回退
|
||
|
||
信号灯是示意设施,不能视为 OSM 语义。复杂交叉口或人工修补后的不完整标线宁可跳过,也不
|
||
摆放到行车道中央。删除新锚点输出及预览加载逻辑即可完整回退,不影响既有主 GLB 或路线 JSON。
|