Hi everyone! ![]()
I wanted to start a topic regarding how highway interchange ramps (highway=*_link) are currently mapped across Romania, and explore whether we can align our regional mapping habits with standard OpenStreetMap geometry guidelines.
Currently, many motorway and trunk exit links in Romania are split right where the painted deceleration lane/solid white line begins, rather than where the physical barrier, grass, or gore point physically separates the roads.
While mapping early splits was historically common across OSM prior to modern lane-tagging schemas, doing so today creates noticeable issues for data consumers, voice navigation, and lane assistance.
Why Physical Gore Point Divergence Matters
1. Accurate Lane Guidance (turn:lanes)
When a link splits at the painted line, mappers often tag the segment as a separate highway=*_link before physical separation occurs. This prevents proper use of turn:lanes=* on the main carriageway. Modern navigation apps rely on turn:lanes on the main trunk/motorway segment to tell drivers “Use the right two lanes to stay on A1” before the exit, rather than treating the painted lane as an immediate, isolated physical exit road.
2. Timing of Voice Prompts
Routing engines (like OSRM, Valhalla, GraphHopper, and OsmAnd) calculate the distance to a maneuver based on where the highway=*_link branches off.
- If the link starts 300 meters early at the painted line, voice navigation announces “Exit right now” while the driver is still cruising on the main motorway alongside a dashed paint line.
- Splitting at the physical gore point ensures turn instructions fire exactly where the driver actually steers off the main road.
3. Data Consistency & Global Standards
The OSM Wiki recommends starting link ways where the paved surfaces physically divide (at the physical nose/gore point). Aligning Romania’s highway network with this standard makes our data seamless for global QA tools, routing profiles, and third-party renderers.
Proposed Approach
We don’t need to lose any detail about the deceleration lane length! By placing the link node at the physical gore point:
- The main carriageway accurately reflects the deceleration lane using
lanes=*andchange:lanes=*. - The
highway=*_linkstarts exactly where the road physically splits.
I completely respect the massive effort that local mappers have put into building out Romania’s highway network since the early days of OSM. My goal is simply to help update our interchange geometry so Romanian data takes full advantage of modern lane-level routing tools.
What are everyone’s thoughts on moving toward this standard for new and updated interchanges?
Looking forward to hearing your feedback!
