62 lines
2.9 KiB
Markdown
62 lines
2.9 KiB
Markdown
# Native road control markings
|
|
|
|
## Goal
|
|
|
|
Give Nantaizi's native-road provider inspectable, source-traceable crosswalk
|
|
and vehicle stop-line geometry, so intersection control markings do not depend
|
|
on the osm2streets render output.
|
|
|
|
## Confirmed Facts
|
|
|
|
- Native road output already owns road surfaces, sidewalks, lane separators,
|
|
repeated direction arrows, and explicit junction-turn arrows.
|
|
- Nantaizi's OSM input contains explicit marked crossings, including zebra and
|
|
traffic-signal crossings. The existing osm2streets output currently has 48
|
|
crosswalk-stripe polygons and 8 stop-line polygons.
|
|
- `build-osm2streets-qgis.js:1067` derives these markings from crossing nodes
|
|
plus osm2streets driving lanes. Native must not read that rendered geometry;
|
|
it can reuse only the tested geometry rules after adapting them to native
|
|
directed lanes and junction plans.
|
|
- Existing Blender materials already provide `crosswalks` and
|
|
`vehicle_stop_lines`; native may map into them without changing the legacy
|
|
osm2streets layer registry.
|
|
|
|
## Requirements
|
|
|
|
- R1: Native compilation uses explicit marked OSM crossing nodes only, and
|
|
emits crosswalk-stripe polygons plus approach stop lines only where safe
|
|
native directed-road placement exists.
|
|
- R2: Each generated feature preserves crossing node, OSM road, native road or
|
|
lane, direction, placement method, and relevant junction provenance.
|
|
- R3: The Road Workbench independently toggles, selects, and describes native
|
|
crosswalks and stop lines in Chinese.
|
|
- R4: Native Blender and Cesium builds consume both layers with the existing
|
|
control-marking materials; no `package/` publication is part of validation.
|
|
- R5: Missing compatible road context, ambiguous geometry, and unsupported
|
|
crossing inputs are diagnostics; the compiler must not invent a crossing.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] Nantaizi native output contains valid `crosswalks.geojson` and
|
|
`vehicle_stop_lines.geojson` features with source-traceable properties,
|
|
without reading osm2streets rendered layers.
|
|
- [ ] A Workbench user can toggle and select either marking type and see the
|
|
crossing node, associated road/direction, and placement evidence.
|
|
- [ ] Native Blender/Cesium output contains both marking types using existing
|
|
materials, after `blender,cesium,preview --road-provider native` and without
|
|
publishing `package/`.
|
|
- [ ] Tests cover a marked crossing, an unmarked crossing skip, a missing or
|
|
ambiguous native-road placement skip, and output-layer contract checks.
|
|
|
|
## Out Of Scope
|
|
|
|
- Hand-placed control-marking overrides, traffic-signal state-machine changes,
|
|
freehand polygon editing, processing another region, and importing
|
|
osm2streets-rendered crosswalk geometry.
|
|
|
|
## Key Decision
|
|
|
|
The first version is explicit-OSM-only. This is feasible for Nantaizi and
|
|
keeps control markings evidence-backed; missing data remains a diagnostic for
|
|
OSM improvement rather than a silent geometric guess.
|