Proposal talk:Through route

From OpenStreetMap Wiki
Jump to navigation Jump to search


Description is maybe too narrow?

Currently the description says "situation where it is necessary to turn off the carriageway". Could this not be applicable to any case where the "through route" is not what you would otherwise expect? For example where the white lines guide you straight on which transitions from motorway to motorway_link, while there is a branch to one side or the other which is also motorway? Just looking at the OSM data and trying to understand the topology might cause you to follow motorway->motorway whereas in this case motorway->motorway_link might benefit from "through route" tagging. --Csmale (talk) 16:57, 13 April 2013 (UTC)

Absolutely. It's also possible that cycle routing and in fact any other routable way could benefit. I'll update the description soon --Pointdee (talk) 12:40, 15 April 2013 (UTC)

Must the common node have role=junction?

I believe the mkgmap implementation doesn't care about the roles, it just expects two ways and a common node in the relation. --Csmale (talk) 16:57, 13 April 2013 (UTC)

I also believe that the mkgmap implementation doesn't curently require this but the original announcement forllowing the IRC discussion stated that the role was required so I've gone with keeping this but if it is deemed unnecessary then it can be dropped --Pointdee (talk) 12:40, 15 April 2013 (UTC)

Is the junction node necessary?

It could be argued that the junction node isn't even necessary, unless there's more than one (and it might be a good idea for implementations to proceed in its absence, and issue a warning), but experience with restrictions suggests to me that it's very useful in QA. For example, if one of the ways in the relation is split, then some editing software will add the extra way to the relation. Having the junction node makes it easy to determine which should be kept when doing the repair.

If we permit more than two road segments in the relation, splitting a road won't damage the relation. Relations of type=route don't need nodes between the segments either. Superfluous members just make the relations more complicated and error-prone. --Fkv (talk) 05:39, 24 September 2013 (UTC)

How to handle directional through_routes

It is not unthinkable that the through route only applies to one direction. If the ways concerned are one-way that's fine of course, but what about when the ways are two-way? How would we show different through_routes for each direction? --Csmale (talk) 16:57, 13 April 2013 (UTC)

Is it even possible that a 2 way highway would have different through routes when travelling in opposite directions? --Pointdee (talk) 12:42, 15 April 2013 (UTC)

Thinking about it further you might be right but I am not sure it can NEVER occur. I was picturing approaching a Y-junction (example in UK, left hand traffic) where the through route takes the left hand branch, but coming back the other way traffic from that left hand branch has to give way to the right hand branch, which would be the through route in the other direction. The first way would have a filter lane on the approach to the Y for traffic which wants to take the right hand branch. This traffic will have priority over the crossing traffic FROM the left-hand branch, which must have give-way lines. It's a bit hypothetical but I think it's existable. --Csmale (talk) 09:01, 17 April 2013 (UTC)

Off the top of my head I can't think of an example either but I too think that it might be possible. The obvious way around that is to add "from" and "to" to the the ways as per turn restrictions et al. I guess it's better to do this now than try to add it back in later. I'll ponder it a bit more --Pointdee (talk) 16:40, 17 April 2013 (UTC)

give way vs. "feels straight on"

Please, define what would be implied. Is this purely about "this direction feels like you are driving straight/staying on the same road", or "traffic in this direction does not have to give way to traffic from other directions". Priority to the right vs. "UK style", and other country differences. If discussion includes different expectations about this, it's bound to be difficult. Alv (talk) 11:04, 17 April 2013 (UTC)

This is purely about alerting routing software to whatever is the actual situation on the ground whenever it's ambiguous so from your example it's "traffic in this direction does not have to give way to traffic from other directions" as the road markings at the junction would dictate that. It is not about what feels like straight on to one person or another --Pointdee (talk) 16:44, 17 April 2013 (UTC)

Currently it only says "determine whether a turn direction is needed" with no reference to yielding or priority. The motorway example further down doesn't even have some "other" direction, when the only "incoming" oneway way just splits. For priority-to-right countries, see also priority_road=* Alv (talk) 06:15, 18 April 2013 (UTC)
Who has priority at a junction is not part of the proposal....As you point out there is already a tag for that. This proposal is much simpler than trying to map all the nuances of yielding/priority and is simply about alerting routing software which direction is considered "straight on" (and therefore which is considered left/right) at a junction. As I've already said this is only to be used at a junction where this cannot be reliably inferred from other information --Pointdee (talk) 13:41, 18 April 2013 (UTC)
Quote you (emphasis mine): "It is not about what feels like straight on to one person or another" vs. "which direction is considered "straight on" " - now which one is it? For something to be considered as something, they must think and feel it is like something... "Straight on" is "feels straight on"; sometimes at an intersection there's a slight turn, which drivers will perceive as if you are not turning to another street, because the curbs and lanes leading to the intersection give enough clues to the driver that that direction is like staying on the same road. Alv (talk) 21:45, 29 April 2013 (UTC)

Junctions with NO through route

There are junctions which explicitly/implicitly have NO through route (i.e. no road has "priority" over any other road at the junction). In many countries (notably the USA) four-way stops are common, where all vehicles must stop and who goes first comes down to courtesy and "who arrived first". There are also "give way to the right" rules in many (European) countries which imply there is no road "superior" to the rest.

Can we stretch this proposal a tiny bit to allow "through_route=no" on the junction node? --Csmale (talk) 08:21, 18 April 2013 (UTC)

As above this proposal is not about priority or yielding or give way or any other similar mechanism it is purely about direction. Who crosses such a junction first cannot be determined by **any** routing software --Pointdee (talk) 13:40, 18 April 2013 (UTC)
The vote was finish. Change the proposal or put it on disapproved 11no 10 yes Bredy 16:52 2 October 2013 (UTC)

Derive from lanes layout

From your description, it would seem that mapping the lanes schema of the road immediately before the split would be enough to reliably infer the through route. With your example, a turn:lanes=* tag would tell routing software that there are "left" and "through" lanes present, and as the A682 is geometrically to the right, it must therefore be the "through" route. --Tordanik 18:19, 29 April 2013 (UTC)

If I understand the lanes schema correctly (and I possibly don't) and using your description above then this isn't actually the case. The A56 does not split whereby the left lane turns left (A56) and the right lane continues straight or "through" (A682). The situation on the ground is that both lanes of the A56 continue straight becoming the A682 at the point of the junction and that the A56 is a separate carriageway. You have to make a turn off the main carriageway you are on in order to stay on the A56. There are also many examples of TOTSOs on single carriageway roads. --Pointdee (talk) 11:58, 30 April 2013 (UTC)

From the aerial imagery, it looks as if the A56 expands to 3 lanes for a short segment before the physical split. The new leftmost lane is a "left" lane, leading into another A56 segment, the two other, continuing lanes are "through" lanes, leading into the A682. I may be mistaken about the on-the-ground situation, of course. --Tordanik 17:23, 30 April 2013 (UTC)
From personal experience the A56 does not expand into 3 lanes. The road markings here are as they would be for a motorway exit, services exit or any other similar exit off the current carriageway. --Pointdee (talk) 22:20, 30 April 2013 (UTC)
Ok then, it looked a bit like a deceleration lane to me, but if it is a direct exit then my argument as written above does not apply. However, if there was a deceleration lane, I assume "it should only be used at those junctions where the through route cannot be reliably inferred from other information" would kick in? --Tordanik 01:51, 1 May 2013 (UTC)

I agree with Tordanik. Right before the split of A56/A682 there are three lanes in which to drive. The leftmost goes left onto A56, the other two go straight on. So: lanes =3. At that part turn:lanes=* should be used, like this: turn:lanes=slight_left|slight_left;through|none. This way a router can display the correct arrows in a lane assistant and tell the user to go left. Further reference: the motorway example on this page Lanes and the examples on this page: Lane_assist. For the number of lanes it is not important if a lane is an accelleration/deceleration lane or not. --It's so funny (talk) 21:33, 5 June 2013 (UTC)

It's so funny Quote "before the split of A56/A682 there are three lanes in which to drive."...........No. There are 2 lanes in which to drive. If you stay in either of these 2 lanes you continue north onto the A682 and you need to turn left to stay on the A56. Thanks --Pointdee (talk) 18:20, 6 June 2013 (UTC). Did you take some time to look at the two pages and it\s examples I referred to? Like this example: Lane_assist/Examples/Motorway_Deceleration_Lane_at_Exit where at points D, E and F three lanes are tagged? --It's so funny (talk) 21:18, 6 June 2013 (UTC)
Yes I looked but in my opinion the Lanes tagging is not appropriate. There is no deceleration lane involved at this junction. Lane assist would only help if routing software was aware there was a turn to be made which it isn't. That's the point of the through_route relation. --Pointdee (talk) 13:44, 7 June 2013 (UTC)
That approach doesn't work so well where there's no change in lanes. For example, at Strathcarron Junction (where one most turn off to stay on A890) or A82/A85 Crianlarich Junction (a TOTSO for A82). In both casees, all three roads meeting at the junction are two lanes each, with no protected turn area. --tms13 (talk) 07:22, 6 June 2013 (UTC)
I would call a router that doesn't say "turn" when the angle of the ways meeting in a junction is above some threshold, just lacking a feature. It should say turn regardless of the name or ref of the roads used in the junction, like in those two examples. Alv (talk) 12:44, 6 June 2013 (UTC)
That's all well and good, but there are junctions (I'll try and find an example next week) where the through-route does in fact make a turn, and the 'straight on' direction needs an instruction to leave the current road. You can't have it both ways! --tms13 (talk) 06:35, 7 June 2013 (UTC)
the through_route is that which is marked on the road as not requiring turning off the carriageway you're on whether that bends/turns to the left or right. In that case you mark the through_route as the ways which achieve the turn and "straight on" therefore becomes a turn from the point of view of the routing software --Pointdee (talk) 13:44, 7 June 2013 (UTC). An example for the situation of Tms13 is this one: [1]. The primary through way goes left (or right of course). Road markings are through. In practice it's enough to make a shallow curve in OSM, which will prevent any routing engine to say 'go left'. In OSM unfortunately a lot of people however design shallow curves, even when you would like any router to say 'go left' or 'go right'. turn=* is designed to let a routing engine know what the arrows on the street show. At the bottom of my homepage User:It's_so_funny you can find the angles OSRM is using. In my experience every routing engine available uses these typs of angles to determine the direction of an adjacent road. In case that does not work, just use turn=* (unless the infamous connectivity problem shows up :-) --It's so funny (talk) 17:51, 7 June 2013 (UTC)

Another Applications

There is anoter application "green light optimal speed advisory" GLOSA that needs traffic flow model in terms of from-via-to relations. The proposal is a raw draft yet in german language.

I'd suggest to define the "via" member as follows:

Junction area (nodes or relation of nodes and ways) where the "to" member is yet uncertain and the "from" member is by now forgotten but at least a node.

yet uncertain means: given a point inside a junction area, you can't determine where you intent to go to

by now forgotten means: given a point inside a junction area, you can't determine where you have came from.

This definition fits highway gateways and complex urban intersections. --Ampelmeter 13:17, 21 Mai 2013 (UTC)

restriction tag?

This through route involves some turn restrictions at the intersection, isnt it?

No, it doesn't. Turn restrictions and through routes are different things. However, it doesn't seem useful to define a through route which is forbidden by turn restriction. --Fkv (talk) 05:39, 24 September 2013 (UTC)
Yes, I explained wrongly - so via BCD route there should some priority restriction (not turn) in C intersection towards CD and CA. Also DCA way can be tagged with priority_road=*. so with this tag, and a proper priority restriction this propsal can be fulfilled. HiB (talk)
A priority road may not be involved in those cases where through routes need to be defined. The through-route relation defines where the road continues, no matter if it is a priority road or not. If DCA is a priority road, the through-route relation is even more important because the continuation of the road differs from the course of the priority road. --Fkv (talk) 12:43, 24 September 2013 (UTC)
i think the question is which driver has a priority in a junction. in you case there have to be a priority for DCA. So by defining the priorities, the through route can be determined/derived from it. Have a look on this priority sign: Belgian traffic sign B15e.svg if you dont want to use priority then 2 more options can be found among road signs: Belgian road sign A1a.svg and RU road sign 1.34.2 C.svg. Probably you want to create a tag for the last one.
No, the through route cannot be derived from priorities. In our example, the through route goes DCB, which differs from course of the priority road. BTW: The latter two signs never appear on junctions. --Fkv (talk) 01:42, 25 September 2013 (UTC)
So you mean there is no priority for any direction in this junction? it means the juction has equal roads? - this is a kind of priority as well. But here is an example for the last sign I mentioned:

also there are road signs for this type of intersection:

Road sign give a way turning.jpg Road sign stop turning.jpgMain road turning.jpg

by now these type of road signs can not be defined as restriction tag: please have a look on this tag proposal:

So I think this tag should be a priority restriction instead of a standalone one.

Examples where such information is necessary

Maybe collecting some real world examples might help to better understand if such information needs to be provided explicitly or if it can be derived from other data.

  • A junction in Styria/Austria:If you want to stay on the "B 113 - Schoberpaß Straße" (from west to east), you have to turn left. In this case it might be possible to detect this if the turning lane would be tagged.
  • A junction in Northern Ireland: The physical carriageway from NE continues smoothly towards the West. However when your route goes along this carriageway from the NE to the West, routing software tells you to "turn right" at this junction because the road you are on, the A512, goes south at this point. Similarly if your route travels from NE to South (i.e. staying on A512 McKinstry Road), the routing software simply doesn't tell you to turn, even though in reality you must turn left off the carriageway to stay on the route, leading to confusion when you discover that you have inadvertently continued West along A513 Wilmar Road instead. Fattonyni (talk) 12:59, 7 March 2017 (UTC)
  • Also related - a description of TOTSOs on Not all of the scenarios with this through route issue may be TOTSOs per se, but I think it helps to provide some background for those that don't quite understand the issue. Fattonyni (talk) 12:59, 7 March 2017 (UTC)