The tag highway=* is used to indicate a road’s importance in the road network. However, sometimes, the road’s carriageways will have different classifications. For divided highways, differentiating between them is easy; for undivided highways, not so much. Currently, the consensus is to use the higher of the two classifications, but this creates some issues. So, I’ve been using tags like highway:forward=* / highway:backward=* and highway:left=* / highway:right=*, none of which (AFAIK) are supported by any software whatsoever. What should be done about this?
Best thing would be to provide some examples where this occurs.
However, I think the classification shouldn’t be split like this in any circumstance.
I would need to see some reaaaaally compelling cases to support splitting the tagging on a divided roadway.
& even more so on an undivided highway!
I’ve seen a few messy interchanges that justify split tagging, such as this one in Lewiston, or this one a bit to the west. Basically, highway engineers overlaid a highway=trunk onto an existing street grid.
Here’s a location in Newport, RI where a motorway_link is adjacent to a bit of primary in different carriageways:
https://www.openstreetmap.org/#map=16/41.50323/-71.31649&layers=V
Anyways, I don’t feel the need for a tag for directional classification. Just use the higher one if it is a single carriageway.
Maybe some specific examples would help to focus the discussion.
Why is this access=no?
https://www.openstreetmap.org/way/1499475319
I see nothing on the Mapillary to suggest that the importance classification of the two directions of this road should be different.
@Flap_Slimy_Outward adding nonexistent roads tagged as tunnels with access=no just so that you can get two different colours to render on Carto is completely inappropriate - you should revert these edits immediately and any others you have made.
*ahem*
Yeah, I guess you’re right. I’ll go delete those tunnels.
If someone is trying to collect more examples, here’s one in Auburn, Massachusetts. If taking I-395/I-290 North/East and wanting to get on the I-90 Massachusetts Turnpike, the exit brings you onto Route 12 South for a bit until you can get onto the actual on-ramp for I-90. So, somebody has tagged that segment of Route 12 as trunk instead of primary (as the rest of Route 12 before and after it is classified primary). But really there’s not anything special about Route 12 North there, as it isn’t used as a junction between the highways, only Route 12 South is.
I won’t make any claim as to whether the current tagging is right (highway classification in general is something I’m loathe to touch), but I understand why whomever classified it that way did so. If someone wanted to change it to highway=trunk highway:forward=primary I would understand what they meant and it might better represent the reality in some way, though I doubt any data consumers would notice.
If we’re splitting hairs about highway classification to this degree, I wonder if there’s some confusion about what highway classification is used for. Street maps use it to filter streets by zoom level and give them different prominence (for example, line weight or color). Car routing profiles use it only very marginally to avoid using a minor street as a cut-through.
A street map generally isn’t displaying a single highway=* way as two parallel lines, so it doesn’t need to bifurcate the line treatment by direction. A car routing profile typically won’t penalize taking a shortcut on a more major road.
So that leaves us with a fuzzy notion of “importance”. Splitting hairs about the direction is pointless. In the case of a discrepancy, pick the more major classification, like we already do with link way classifications, service road classifications, and path classifications. If a user needs to discover an itinerary-dependent exception to the classification, they can calculate an itinerary and see that the classifications along it go up and back down.


