For example, in British Columbia, Canada, U-Turns are essentially prohibited on any road with marked lines (source BC MVA Section 155.1). To account for this, roads with marked lines would need a tag specifying this prohibition. On the wiki, I saw mention of tags like u_turn=no and no_u_turn=yes, but both of those have very few uses currently (51, and 50 respectively), and they also don’t have much flexibility for additional tags for specificity like implicit=yes. Would it maybe make sense to use a restriction=no_u_turn relation with from and to pointing to the same way?
Router developers hear about this sort of regulation pretty frequently. Ironically, most routing engines generally don’t suggest U-turns, because their developers aren’t confident that U-turn restrictions have been mapped comprehensively. Instead, they’ll only coincidentally suggest two left turns along a divided street (dual carriageway), effectively a U-turn.
If even this scenario would be against local law, the classic standard response is that application developers can disable U-turns altogether in their routing profiles. However, this makes more sense for a whole market like Brazil than for British Columbia. Fortunately, some mainstream routing engines like OSRM allow profiles to conditionalize routing behavior by region. (This is also useful for flipping U-turns to the right in a country that drives on the left.)
While you could probably convince application developers to feed a GeoJSON of Brazil and British Columbia into the routing graph computation step, this approach may not scale very well to the situation in the U.S., where an individual city can decide to ban U-turns anywhere within city limits unless otherwise noted. So I guess for those situations we’ll still need to explicitly map a U-turn restriction relation at every single intersection.
These keys are specifically about restrictions against making a U-turn outside of an intersection, not as a shortcut to avoid having to map turn restriction relations at intersections. Some localities post these signs for example near schools. A router would never tell you to pull a uey mid-block, so mappers seeing these signs might have given them little thought.
If I remember correctly Singapore is the place where all turn restrictions are mapped explicitly.
Sometimes those got mapped as relations with same from and to ways. I wonder if that has any utility…
These are all examples of mapping a turn restriction at an intersection (though overzealously including “intersections” with crosswalks). As long as the street is undivided, the from way should also be the to way.
u_turn=no is for the kind of sign that says “No U-Turns Next 500 Feet” and there are no intersections in 500 feet, only at most a center two-way left turn lane for getting into driveways. This tends to happen near schools, similar to the following example but without any intersections nearby:
I’ve only ever encountered a few of these signs personally, like Cross Street in Newtonsville, Ohio. An inattentive trucker who misses the right turn to leave the tiny town will get stuck on this dead end street without anywhere to turn around. So the highway department put up a No Outlet sign, plus a No U Turn sign for good measure. In context, this sign is about the rest of the street in the background, not the intersection in the foreground.
By the way, I forgot that I had written more on this topic and the unfortunate absurdity of relying on either defaults or explicitly mapped restriction relations to represent local U-turning laws. We also don’t have an established solution for one-off exceptions to blanket prohibitions on U-turning:
Well, “at an intersection” is how they got mapped, but in reality it is just a prohibition on U-turns - legally it applies to a 100 metre stretch of road.[1] The only intersections in that stretch are with driveways. It got mapped because there’s no-U-turn signs posted, and they were detected on Mapillary imagery, and to satisfy the task they had to add something the Mapbox QA system would recognize.
“Dundas Street West between Bloor Street West and Edna Avenue”, “Northbound and Southbound”, U-Turns prohibited anytime - per Toronto Municipal Code Chapter 950, Schedule XXIII, in the PDF current to February 24, 2021 it is on page 77 ↩︎
Even in the land of U-turns, No U-Turn signs can appear redundantly anywhere the authorities think there’s a risk of illegal U-turns. As long as the sign applies to a maneuver at a point along the roadway, then we’d model it as a restriction relation. If there’s no cross street, it would be a little weird but not invalid. If it’s redundant because the surrounding region bans U-turns outright, then there’s no harm done and now we have some extra information about where the authorities are particularly concerned about that behavior.
u_turn=no is for a different case where the sign applies to U-turning anywhere arbitrarily along a given stretch of roadway. It would be akin to the difference between a conventional left turn lane (with its definite start and endpoint) and a center two-way left turn lane (that you can use however wherever).
The signs I posted do not apply to a maneuver “at a point along the roadway”, they apply to an entire stretch. There is no regulation prohibiting U-turning at the driveway - the regulation prohibits U-turning on the entire stretch. The physical signs were simply posted on a convenient pole.
Yes, per my footnote, this is the case in the location I posted.
OK, if that’s your interpretation of the on-the-ground situation, with your fuller understanding of the local laws, then you’d be justified in adding u_turn=no. In principle, this would make the turn restriction relations redundant and deletable. Literally nothing understands u_turn=no yet, but at the same time, I wouldn’t expect any router to recommend U-turning there anyways.
More aspects needs to be considered, as I found this unfitting of access= now Tag:hgv=no_turnaround - OpenStreetMap Wiki
Originally I would suggest creating a section role to reuse restriction=no_u_turn , similar to enforcement= members. But =no_turnaround seems to call for eg hgv=discouraged + u_turn:hgv= =no / =discouraged + reversing:hgv=designated , if this is documented and understood correctly as prohibitory & mandatory, or informatory, not supplementary info explaining the lack of turning_circle physically. It could be further used for eg reversing:*=no + reversing:*:conditional=yes @ (supervised) when buses or trucks are required to reverse when being monitored.
Maybe this should be a separate topic, since it’s quite different than the original question. At a glance, it seems like an attempt to avoid hgv=discouraged and the scrutiny that unfairly surrounds that tag. English-speaking countries have plenty of “No Turnaround” signs, but as far as I’ve seen, the signs are only advisory, stating the fact that there is no turnaround location. They don’t prohibit you from executing a U-turn where there’s actually room for one.



