Splittings roads in order to define turn restrictions: necessary?

There are a LOT of U-turn restrictions in my area. With OSM being increasingly used for routing (see CloudMade, skobbler, etc.), it becomes more imperative to properly map those. Currently, the only method of mapping a no_u_turn restriction (as well as pretty much any other turn restriction) is to split the road at the intersection and create a relation where the intersection point is the “via” and the “from” and “to” roles are both filled by the portion of the way to one side of the intersection.

In the case of a divided way, the “via” member is served by a short length of the crossing street, which (street) has to be split into three pieces in order to facilitate this. And in the case of two divided ways intersecting it gets hairier yet.

Needless to say, these splits appear artificial. They do not represent a physical change in the road (such as name, importance, speed limit, number of lanes or surface type change). And with sufficient number of U-turn restrictions along a road, it may end up being split into an inordinate number of short segments for no better reason than supporting the existing tagging schema (and the authorities’ desire to police motorists’ behavior). The inconvenience is obvious: what if someone decides to update a road with a new information: speed limit, number of lanes, etc? They would have to manually tag that many ways. Hitting the “repeat” shortcut is no good, because some other piece of tagging may not match among all the segments. Not to mention querying the data for street geometry, length, location, etc.

My question is: will this always be the case, or is there an OSM study group working on an improved turn restriction mapping that will not require splitting roads? For example, storing the entire information about type of restriction, the to, and the from on a single intersection node?

If the answer is “yes, someone is working on this”, then I will hold off on implementing the numerous U-turn restrictions in my area.

If the answer is “no, it is written in stone”, what best practices exist for mitigating the negative side effects of the existing schema? Are relations to be used? Link to relevant articles and discussions will be appreciated.

I’m not aware of currently proposed alternatives for no_u_turn restrictions. The only partially relevant topic that comes to my mind is the mapping of road markings (which can prohibit u-turns), but even there I have not noticed any progress recently.

While it is less convenient than editing a single way that contains exactly those segments you want to modify, this is mostly due to the limitations of current editors. For example, the addition of a “select from to ” operation to editors would make editing much more easy in these situations. At the same time, this would also be useful for cases where the road has to be split not because of a relation, but because some attributes (such as width, surface) change while others (name, for example) remain unchanged. It’s because of cases like these that I consider this not a problem of turn restrictions in particular, but rather an effect of more detailed tagging in general.

That’s true.

Do you have any advice on using relations in this situation?

There has been some discussion about using relations for applying tags to a number of ways (http://wiki.openstreetmap.org/wiki/Relations/Proposed/Collected_Ways), but these seem to be completely ignored by applications. There is also significant opposition against using constructs like these instead of direct tagging of the ways, because they are often considered less intuitive and might be a barrier to entry for new mappers.