Files
osmWorkflow/.trellis/tasks/archive/2026-08/08-04-add-osm-turn-lane-arrows/prd.md

3.7 KiB
Raw Blame History

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 986071239860712898607147turn:lanes:*593 个原始箭头的 JSON 内容逐字一致; 因此该依赖不消费这些 OSM 标签。
  • 当前南台子完整链已经通过:中间层落盘 580 个归一化箭头Blender 装配 397 个, Cesium / preview / compress manifest 均 freshcheck:area PASS。
  • 现有 lane_arrows_webscale 已是 QGIS、Blender、Cesium 共用图层,样式为浅色填充 #fffff6、深色描边 #2b2b28,正常外轮廓为七顶点箭头。
  • turn:lanes:forward=rightturn: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. 支持首版实际需要的 throughleftrightthrough;leftthrough;right 同一 OSM 输入必须产生确定性结果。
  3. 自定义箭头必须使用现有道路标线的视觉语言,不新建一套颜色、描边或图标风格。
  4. 在 OSM way 进入路口的一端、按 forward/backward 和 lane index 放置;车道配置不完整或 端点不是可判定路口时给出可诊断的跳过原因。
  5. 首先完成并获得用户对 rightthrough;right 轮廓样张的确认,之后才能将其接入 GeoJSON / Blender 导出。
  6. 未经用户确认,不提交 Git。
  7. openstreetmap/lane-icons 的全部箭头 SVG 和 CC0 许可证说明纳入本仓库维护; 右转变体由左转源图镜像生成。生成的 polygon 仍由本仓库维护,并继续使用 lane_arrows_webscale 的既有填充与描边样式。
  8. 素材清单必须逐项标记验证状态:仅 throughleftrightthrough;leftthrough;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 导出前,用户必须确认 rightthrough;right 样张的轮廓和视觉语言。