fix(preview): derive signals from OSM controls
This commit is contained in:
@@ -144,6 +144,21 @@ OSM way 的端点不一定在原始 XML 中有三个以上相连 way;osm2stree
|
||||
|
||||
**教训**:**跨阶段契约必须随产物保存;兼容旧产物的字符串回退也要被审查**。
|
||||
|
||||
### 坑 6:部分构建复用了过期的交通信号锚点
|
||||
|
||||
`scripts/lib/traffic-signals.js` 根据当前 OSM 的 `highway=traffic_signals` 控制节点、
|
||||
`vehicle_stop_lines.geojson` 和 `intersection_surface.geojson` 派生
|
||||
`osm2streets_web_out/traffic_signals.json`。Blender 将这份文件中的每个 signal id 导出为
|
||||
三个动态灯节点和一组倒计时节点,`scripts/lib/cesium-preview.js` 再按相同 id 控制它们。
|
||||
|
||||
因此执行 `blender,cesium,preview` 这类部分构建时,必须在 Blender stage 入口重新写入
|
||||
交通信号文件。若沿用旧文件,GLB 可能已经包含新增 T/十字路口,但预览仍只控制旧的
|
||||
signal id,表现为灯不切换、数字叠加或路口整体异常。该刷新由
|
||||
`scripts/build-area.js:buildBlenderScene()` 负责。
|
||||
|
||||
**教训**:**任何由输入 OSM 或归一化图层派生、又被多个后续 stage 共享的中间 JSON,
|
||||
都必须在最早消费它的 stage 重新生成,不能只在完整 `intermediates` 构建时生成。**
|
||||
|
||||
---
|
||||
|
||||
## 加东西时的检查清单
|
||||
|
||||
Reference in New Issue
Block a user