64 lines
3.7 KiB
Markdown
64 lines
3.7 KiB
Markdown
# Add OSM turn lane arrows
|
||
|
||
## Goal
|
||
|
||
让 OSM `turn:lanes:forward` / `turn:lanes:backward` 在现有 QGIS -> Blender -> Cesium
|
||
道路链中生成可辨识的 lane arrow,同时保持与 osm2streets 既有道路标线相同的视觉语言。
|
||
|
||
## Confirmed Facts
|
||
|
||
- 当前 `osm2streets-js-node@0.1.4` 生成 lane arrow,但纯内存移除 way `98607123`、
|
||
`98607128`、`98607147` 的 `turn:lanes:*` 后,593 个原始箭头的 JSON 内容逐字一致;
|
||
因此该依赖不消费这些 OSM 标签。
|
||
- 当前南台子完整链已经通过:中间层落盘 580 个归一化箭头,Blender 装配 397 个,
|
||
Cesium / preview / compress manifest 均 fresh,`check:area` PASS。
|
||
- 现有 `lane_arrows_webscale` 已是 QGIS、Blender、Cesium 共用图层,样式为浅色填充
|
||
`#fffff6`、深色描边 `#2b2b28`,正常外轮廓为七顶点箭头。
|
||
- `turn:lanes:forward=right`、`turn:lanes:backward=through;right` 等标准标签已存在于
|
||
南台子 OSM。
|
||
- `openstreetmap/lane-icons` 是 OSM 官方组织发布的 CC0 SVG 图标集;其 `DESIGN.md`
|
||
以 MUTCD Standard Arrow 为基准,并规定组合转向共享箭杆、箭头数量增加时缩小箭头。
|
||
仓库只提供左侧转向示例,右转及 `through;right` 需在几何层对其镜像,不能直接作为
|
||
当前 GeoJSON polygon 图层输入。
|
||
- 用户已决定将该库中首版需要的转向图标作为本仓库维护的源素材,而不是只作为视觉参考。
|
||
|
||
## Requirements
|
||
|
||
1. 在写入 `lane_arrows_webscale.geojson` 前,从 OSM 标准 `turn:lanes:*` 生成自定义箭头
|
||
polygon,并沿用既有图层、材质、QGIS/Blender/Cesium 路径。
|
||
2. 支持首版实际需要的 `through`、`left`、`right`、`through;left`、`through;right`;
|
||
同一 OSM 输入必须产生确定性结果。
|
||
3. 自定义箭头必须使用现有道路标线的视觉语言,不新建一套颜色、描边或图标风格。
|
||
4. 在 OSM way 进入路口的一端、按 forward/backward 和 lane index 放置;车道配置不完整或
|
||
端点不是可判定路口时给出可诊断的跳过原因。
|
||
5. 首先完成并获得用户对 `right` 和 `through;right` 轮廓样张的确认,之后才能将其接入
|
||
GeoJSON / Blender 导出。
|
||
6. 未经用户确认,不提交 Git。
|
||
7. 将 `openstreetmap/lane-icons` 的全部箭头 SVG 和 CC0 许可证说明纳入本仓库维护;
|
||
右转变体由左转源图镜像生成。生成的 polygon 仍由本仓库维护,并继续使用
|
||
`lane_arrows_webscale` 的既有填充与描边样式。
|
||
8. 素材清单必须逐项标记验证状态:仅 `through`、`left`、`right`、`through;left`、
|
||
`through;right` 在首版具备 OSM 映射与自动化测试;其他已收录箭头明确标为未测试,
|
||
且不得自动参与生产 GeoJSON 输出。
|
||
|
||
## Acceptance Criteria
|
||
|
||
- [ ] 用户确认箭头样张的轮廓与视觉语言。
|
||
- [ ] 目标 OSM 标签导致 lane-arrow GeoJSON 与移除这些标签的对照产生可观察差异。
|
||
- [ ] 自定义 arrow properties 标识来源和 OSM way / direction / lane,便于诊断。
|
||
- [ ] 纯 Node 测试覆盖标签解析、forward/backward、lane placement、组合转向和幂等排序。
|
||
- [ ] 本地素材清单包含所有上游箭头,逐项标记 CC0 来源、支持状态和测试状态;未测试条目
|
||
不会参与生产映射。
|
||
- [ ] 仅南台子完整链和质量门验证通过。
|
||
- [ ] 无 Git 提交,直到用户明确确认。
|
||
|
||
## Out Of Scope
|
||
|
||
- 修改 osm2streets 依赖、道路改为 Cesium 直渲染、增加新的道路渲染图层。
|
||
- 支持首版范围之外的 OSM maneuver 词汇、匝道标线、文字或自行车专用箭头。
|
||
|
||
## Delivery Gate
|
||
|
||
在自定义箭头接入生产 GeoJSON / Blender 导出前,用户必须确认 `right` 与
|
||
`through;right` 样张的轮廓和视觉语言。
|