OpenStreetMap

Mapping a turbo roundabout

Posted by Peter Elderson on 30 April 2023 in English. Last updated on 13 May 2023.

Turbo roundabouts are relatively new. They first appeared in Nederland, but are now starting to appear in many countries, including the US. I have tried my hand at mapping one, guided by a few front runners, then did a second one on my own. This diary entry details what I learned. As I go on, I will add things learned to this diary entry!

See [roundabout=turbo] (https://wiki.openstreetmap.org/wiki/Tag:roundabout%3Dturbo)

Variations: It’s hard to find two turbo roundabouts that are exactly the same. This is what I learned: Take care to start with an easy one, and never blindly apply the prescriptions. You have to know what it’s for. That’s why this diary entry contains a lot of explanation: those are the things I learned from the experts! Too bad the three-lane rotor roundabout in Rosmalen has already been mapped.

Mapping a turbo roundabout with JOSM

Tools used

JOSM with a detailed aerial photo background layer and style Lane and Road attributes active. This job would be near impossible with Id.

Skills required

Basic OSM editing: drawing and tagging nodes, ways, areas and relations. Cutting ways (P). Link ways to existing nodes and ways (Esc-drop, M, N). Unkink ways. Extend ways. Combining ways (C). Reverse ways (R). Copy and paste elements (Control-C and Control-V).

Skilled editing: Adjusting lines with O (round) and Q (straight). Create turn restriction relations: tag, add elements and assign roles to, via from. Use existing turn restriction to duplicate and adapt for a new restriction. Route relations: download members, identify ordering problems and membership problems, and correct sorting errors.

What?

I used an existing roundabout junction, and assumed (after verification) the correct tagging of the roads involved. So no worries about names, refs, lit, speed, access, and what have you. As often is the case, I dealt with a primary road crossed by a smaller road at about right angles. The primary road splits before the roundabout, then gets pre-sorting lanes connecting to specific lanes on the roundabout, and rejoins behind it. The smaller road only has small triangle splits just before the roundabout. The junction already was a regular (two-lane) roundabout, tagged according to the roundabout wiki.

Why?

The basic goal is: a. Support realistic and accurate rendering of the roundabout; b. optimal routing for navigation; c. find this type of roundabout using e.g. overpass, supporting tools for maintenance, validation and quality assurance.

Work plan

Step 0. Download everything needed

You will need the roundabout and the area around it, to including the approaching roads up to the points where the lanes and the driving directions split/merge. Also, look which relations use the roundabout and download all members. This may seem overkill, but it reduces errors due to cuts and recombines of member ways, known to occur when the relations are not fully downloaded.

Step 1. Ground plan.

(This step is not absolutely necessary, but it does help!) Draw the centre island, other islands and separation elements according to the aerial photography and other available geo-layers. Draw the kerbs as barrier=kerb (right side is low side so draw islands counterclockwise). I also drew the truck apron as barrier=kerb + kerb=truck_apron, and used barrier=kerb + two_sided=yes for separation kerbs.
I always make sure the landuse around the roundabout is accurate. This always takes more time than I had calculated, using viewers, detailed aerial photography and such, but it’s worth it, e.g. when you look at a 3D rendering of the result.

Step 2. Draw the ways for road, road halves, and lanes.

Draw (or arrange/cut/copy-paste) all the road parts on the roundabout and the connecting ways, like you see on the aerial layer. Everything is drawn in driving direction. Alle road parts on the roundabout should be separate, single lane sections. Then draw all the connection lanes, split when necessary to make sure all presort lanes connect to the designated roundabout lanes.

I started rough, and after I got the connections in place, I smoothened out all the round parts (O) and straightened all the straight parts (Q). I didn’t know you could select a series of nodes then use O to round them or Q to straighten them!

I cut (P) and copied (Ctrl-C and Ctrl_V) sections of the roundabout and of the primary road to add sections, so most of the tags would be correct right away. One time, I extended a pre-sort lane from the primary road over the roundabout, then cut it at the point where it entered the roundabout. When adapting a regular two-lane roundabout, I learned that it helps to put cuts (P) in the roads on all places where you expect a split/duplication to be necessary, for an exit or an entrance lane, for a turn restriction, for a road relation or for a bus route, right after drawing the ground plan.

The first couple of roundabouts I lost my way in the multitude of connections and sections on and around the roundabout. After that, I worked more methodically. I started duplicating sections at one of the roads, then worked my way through all the roads around the roundabout, then did all the duplications and connections on the roundabout.

When I once discovered there was a bus route, I used these route sections for the path over the roundabout that the bus would have to follow. Later that was helpful in adjusting the bus route relations. I learned that buses going straigh over the roundabout, if they have a choice, they will follow the outside lane. That’s not a law, but a common rule in Nederland.

Conventions regarding geometry for lane splits.

  • Road halves (for different driving directions) split “last moment”, that is short before the physical split.
  • Lanes for the same driving direction split at the last moment where a motorist can decide.
  • Lanes merge at the merge opportunity.
  • Road halves merge right after the physical barrier stops.
  • Lanes leaving the roundabout: split at the point where the rounding changes form left to right or the other way around.

Step 3. Geometry grooming

Position the connecting nodes for smooth lines. Use many nodes. The best way to round or straighten a section is to cut the section loose (P) and use O or Q on the object, which will also distribute the nodes evenly along the section, then recombine (C) sections as needed. Or click a series of nodes and use O or Q to smoothen it without the redistributing nodes.

PS Some entrances or exits actually are designed to be a real turn, not a smooth move. Turns lower the speed when approaching and entering the roundabout, which may be desirable. Other entrances and exits may be designed for higher speed and throughput on the main through route. Use your best judgement to catch reality in your model!

Step 4. Tagging, see below

Step 5. Turn restriction relations, see below

Step 6. Route relations: Road relations and bus route relations, See below

Step 7. Give_way nodes, see below

Tagging

When adapting an existing roundabout, most of this is checking and adapting existing tagging

Principles - checklist for tagging

Highway and junction

Road sections on the roundabout get the highway value of the most important road going through over the roundabout (not: ending on the roundabout!). Except the two pieces of the lower class road connecting the two lanes on the roundabout; these get the class of the side way. behalve de stukjes zijweg die op de rotonde de twee banen verbinden; die krijgen de klasse van de zijweg. See the roundabout wiki.

All ways on the roundabout get junction=roundabout, and (recommended) roundabout=turbo.

Oneway

oneway=yes on all sections connecting to the roundabout. De sections on the roundabout have junction=roundabout (sometimes junction=circular) making them oneway implicitly.

Lanes

Connecting sections with 2 or more non-separated lanes get lanes=2. All sections on the roundabout get lanes=1, because they are all drawn as separate ways. Accessing road sections with lanes=2 get turn:lanes=…|…, according to the arrows on the road and/or signs, read from left to right. E.g. left;through|through;left for s left lane with arrows for left and through, combined with a right lane for through and right. There are values for unmarked, slight right, sharp right, and the same for left.

Name

The roundabout ways, including the short link sections, do not get a name tag.

Ref

Alle delen van de rotonde krijgen de ref van de grootste weg, behalve de stukjes zijweg die op de rotonde de twee banen verbinden; die krijgen de ref van de zijweg.

Turn restrictions - to map non-allowed movements.

The road halves merge point usually gets turn restriction reation no_u_turn. This prevents the router from routing back over the roundabout. All sections with junction=roundabout are implicitly oneway; so no restriction are necessary to prevent routing the wrong way on the roundabout.

If there are two pre-sort lanes, the left one will first cross the outer circular lane, then connect to the inner circle. This inside junction gets no_right_turn or only_straight_on, because traffic is not supposed to change lanes there. On the same junction, coming from the outside ring, a no_left_turn or also only_straight_on.

It is recommended to tag implicit=yes on the restriction relations, because there usually are no actual markings or signs on the roundabout itself.

turn:lanes - to indicate which lane leads to which direction over the roundabout.

The intended directions have to be verifiable bij arrows or signs on the approach lanes. I.e. the sections with pre-sort lanes.

Turbo roundabouts require the motorist to pre-choose the lane to where they want to go, because once on the roundabout it is not possible or not allowed to change lanes. So this has to be indicates clearly on the approaches. These are the section of road with lanes=2 (or more) to allow the motorist to choose.

Because on the major highway there always are multiple pre-sort lanes, we use turn:lanes=|, not turn=*. Read the lanes from left to right exactly how it is indicated/verifiable. Record this as turn:lanes=||... where the vaues for b1, b2 and … can be semicolon-separated lists. On turbo roundabouts, the most used values are left, right, through. Other possible values are sharp_right, slight_right, sharp_left, slight_left and reverse (u-bocht). And none, or leave empty. Examples: turn:lanes=left;through|through;right and turn:lanes=left;reverse|through;right or (in case of a turn-right bypass) turn:lanes=left;through|through|right After the roundabout there often is a lanes=2 section for merging. The values none, merge_to_left and merge_to_left ar often appropriate there.

Once the lanes are separated, if there are more arrows on them, turn=* can be tagged on the separate ways.

Practical tagging

1. Select all the roundabout sections using Control-click

  • no name tag
  • no oneway tag
  • no change:lanes tag
  • no lanes:backward and lanes:forward tags
  • lanes=1
  • ref= (excepting the small connecting pieces of the minor roads having no pre-sort lanes)
  • junction=roundabout
  • roundabout=turbo

2. Select all connecting road sections approaching or leaving the roundabout.

  • no turn:lanes
  • no lanes:backward and lanes:forward tags
  • oneway=yes
  • lanes=1

3. Select, one by one, the approaching sections on the major road, having multiple lanes.

  • lanes=2 (sometimes 3 if right, left and through are separated)
  • turn:lanes=left;through through;right (most used example in Nederland)
  • Check the other tags for this section. If you worked with copy-paste the tags usually are right.

4. Select, one by one, the separate connecting exits and init lanes. These already have lanes=1.

  • add turn=* according to the arrows on the lane. Merge lanes get merge_to_left of merge_to_right.
  • Check the other tags for this section. If you worked with copy-paste the tags usually are right.

5. Create Turn restriction relations.

  • Look at the nodes where road halves join. Usually there is a continuous line, which is ground truth for a no_u_turn restriction. Create a relation (possibly by duplicating/adapting an existing relation). Tags should be type=restriction en restricion=no_u_turn. Tag implicit=yes is recommended. Members are: from section, junction node, to section, seen from the driver’s position.

  • Look at the connecting sections on the roundabout between inner and outer rings. Traffic already on the roundabout is not allowed to change lanes there. Use only_straight_on restrictions there. A regular turbo roundabout has 4 of these link sections, so 4 turn restriction relations are needed. Tag implicit=yes is recommended.

  • Look at the nodes on the roundabout where a lane from the appoaching road passes through to the inner lane of the roundabout. Traffic is not allowed to turn sharp to the outer lane. Create only_straight_on restriction relations there. A regular turbo roundabout has 2 of these nodes, so another 2 turn restriction relations are needed. Tag implicit=yes is recommended.

PS1. The restrictions on the roundabout could just as well be tagged as no_left_turn or no_right_turn restrictions. Other restrictions follow from the oneway or the junction=roundabout tags on the ways, so you don’t need to tag those. Only straight on has the advantage of being simple and straightforward, conform the driver’s instruction: don’t change lanes (no maneuvering) on the roundabout. The corresponding rendering in JOSM shows the idea very clear.

6. Add / tag give_way nodes

In Nederland, there is no general right-of-way on a roundabout. At the roundabout entrances there are always give_way signs and lane markings (shark’s teeth), or sharks’s teeth only which is legally the same. If not, it’s not a roundabout. A famous ‘roundabout’ in Nijmegen actually lacks any give_way or preference signs, meaning it’s a rotary, not a roundabout, let alone a turbo roundabout. We recommend to add give_way nodes to the ways (lanes) entering the roundabout, at exacty the spot where the way crosses the markings. This conveys the exact stop location to routers and renderers. Because (and if) all entering lanes are oneway and drawn in the driving direction, no direction tag is necessary.

Route Relations

  1. Road relations Only enter the ways into the relation that give a direct car route over the roundabout. The road relation has both directions, so forward and backward roles are necessary. If you copy-and-pasted and cut-and-combined, you probably only need to remove a few sections.
    PS Road relations in NL should contain only a main route carrying the identifying ref. Side tracks, approaches, parallel ways with the same ref, etc, are all left out. The roads in the relation may carry different names, though, as long as the ref is the same.

  2. Public Transport Route relations Bus routes have a separate relation per driving direction (and a routemaster relation combining the two). Both bus relations should be adapted, for each bus line passing through the roundabout. Just walk through the members, and see where sections need to be added or removed to make a continuous route.
    Buses, if they have a choice, tend to use the outside lane. This choice usually only appears for straight-on going routes.

Issues

  1. JOSM issue - JOSM may complain about suspicious directions on the roundabout. Just check all drawing directions again (should be drawn in the driving direction), then ignore the warning.

  2. Router issue - navigation instructions vary between routers; they all have trouble announcing which lane to choose, announcing the correct exit count, and announcing the overall direction change. The information is in the mapping, but it is technically complex to use it effectively.

  3. Sometimes a possible turn is legally not allowed, but that can not be seen on the ground. In Nederland, this may even be a turn that is allowed or disallowed, depending on the lane you used to enter the roundabout. I chose not to map this, because ground truth is lacking. It could be mapped using a turn restriction with one or more via ways, i.e. way members with the role via. The use case is that a road has 2 lanes entering the (continental) roundabout and has a two-lane exit to the right. The left approach lane is marked for left;through and goes to the inner ring, and the right lane is marked right and goes to the outer ring. A car C using the left approach lane enters the roundabout, then (surprise!) the first exit is to the right. The exit is meant for traffic that was already on the inner ring on the roundabout. Legally, our car C is not allowed to use the exit, even though it has exactly the same position an movement as a car that was already on the roundabout, which is legally allowed to use the same exit. So we could create a turn restriction with the left approach lane as from, the section of the inner ring as via, and the exit as to.

Discussion

Comment from Exe19 on 11 May 2023 at 12:58

This proposed sheme seems to be a significant violation of “one highway segment per carriageway” rule.

Comment from Peter Elderson on 11 May 2023 at 13:34

Thanks @Exe19 for your response! The physical separation of the lanes by kerbs and islands is the ground truth for using separate ways. Anyway, this is not a proposed scheme but a record of what I learned-by-doing about actual mapping practice. Most of it is standing practice, applied to improve mapping in this special situation. I agree that some parts of it could have used a proposal process, but that is an issue for the developers of the scheme.

The only really new tag is the optional roundabout=turbo, informing data users, such as navigation apps, of the type of roundabout they are dealing with.

I have added kerb=apron (earlier I used truck_apron, but this kerb type is not limited to trucks) to specify the kind of kerb used for central islands, but this is not specific for turbo roundabouts.

Peter Elderson

Comment from Exe19 on 12 May 2023 at 07:48

Thanks for responding back Peter.

I understand that if there’s physical separation then the carriageway is broken into segments and the OSM highways should branch away.

What spurred me into commenting was the scheme that you documented being used for a turbo where the only separators are the road markings ( Example here ). I think in such cases lanes-as-attributes would be more in line with existing road tagging.

Comment from Peter Elderson on 12 May 2023 at 10:02

@Exe19 The Rondo Niebieskich Mistrzòw has in fact physical lane separation. But it’s true, some have the turbo layout, but use only markings. The reasoning is that the physical separations are dangerous for two-wheeled vehicles. In Nederland, bicycles, mofa’s and mopeds are not allowed on these roundabouts, but in some countries they are.

Alternatives are double painted lines, very thick painted lines (e.g. 1 cm elevation), rumble strips, to implement the turbo design. I think these are true turbo roundabouts too; the designation turbo roundabout is not based on OSM-rules!

The rule that lanes are not mapped separately unless there is physical separation, is generally good, I think, but I think exceptions are possible. Time will tell if mappers see markings-only turbo roundabouts as exceptions. Each turbo lane is a separate route over the roundabout, which is most effectively mapped as a separate way.

I recently discovered there are roundabouts where some of the turbo lanes are themselves divided in two or even three ‘sublanes’. These sublanes are of course not mapped as separate ways, but as on turbo-lane with lanes=2 of lanes=3. Example: https://www.openstreetmap.org/#map=18/51.98101/4.22019

Log in to leave a comment