Repository navigation
fix(navigation): preserve junction lanes and show connected branches - #441
Closed
Medformatik wants to merge 3 commits into
Closed
Medformatik wants to merge 3 commits into
Medformatik wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed and why
Closed without merging. The description records the proposal; it does not establish a release from this PR.
At Kreuz Holz on the A44 → A46 route toward Düsseldorf/Neuss, junction view showed one lane and one destination board. OSM actually has four approach lanes and two connected outgoing roads, each with two lanes: Düsseldorf/Neuss and Heinsberg/Venlo/Mönchengladbach. The client discarded approaches without per-lane destinations, forced a one-lane fallback, and omitted the non-link motorway continuation.
This preserves lane counts and turn arrows independently of per-lane destinations and includes outgoing roads connected by their shared OSM node. Both branches get separate destination boards and known lane counts. The outgoing data is bound to its approach way; reverse one-way travel and incomplete node arrays are handled conservatively. The lookup cache is invalidated without adding provider calls.
OSRM reports left at Holz while OSM approach arrows say right. Four incoming lane bands therefore remain unhighlighted. The routed outgoing road is highlighted only when destination/reference evidence distinguishes it, and missing OSM destinations retain the engine sign and exit number. Outgoing roads use separate forward-facing road and lane bands, with a broad neutral junction area between incoming and outgoing markings. Geometry is symbolic: it does not claim incoming-to-outgoing lane assignments. Unknown approach counts show the sign without invented geometry; confirmed edge lane groups elsewhere draw multi-lane ramps. Real per-lane boards and accessibility summaries are preserved. Photo rendering is excluded.
Before and after
actual card rendered from captured Kreuz Holz data at the same viewport, without imagery.
Verification
Checks recorded during the original PR:
Reported validation:
captured live OSRM/OSM topology fixture; regressions watched fail then pass; 501 navigation tests across 38 files passed; workspace types, lint and changeset validation passed; independent review findings were reproduced and addressed with regressions. OpenAPI regenerated with no diff (380 operations). Personally inspected browser renders of actual React components at 420 px and 320 px mobile widths with the captured response and real intl messages: both signs visible, four incoming lanes, two outgoing two-lane roads with forward-facing road bands, no collapsed shared-point throat, no incoming recommendation and no horizontal overflow. Sign-only and confirmed multi-lane fallbacks were also inspected. Full suite: 1,538 files / 17,422 tests passed (28 files / 135 tests skipped by their existing gates). Signed commit and all commit/push hooks passed, including policy and full-suite gates. Database-backed, native-device and live GPS navigation checks were not run; production was not deployed.
Release and upgrade impact
Closed without merging; #442 consolidates this proposal. Photo rendering was excluded.