Mapping turn lanes in OpenStreetMap

Complex intersections often involve lane-specific turn restrictions. See for instance these overhead signs on Utah State Route 92, crossing Interstate 15 just south of Salt Lake City.

turn lanes sign

Lane signage on Utah State Route 92. Photo: Garrett.

We need turn restrictions for every individual lane to provide precise driving directions for drivers. In OpenStreetMap we can model turn lane information with two tagging schemes:

Here is a guide on how to map turn lanes using both schemas with OpenStreetMap’s JOSM editor. It assumes you are familiar with basic JOSM editing techniques.

Mapping turn lanes using ‘turn:lanes’ schema

The turn:lanes schema is the established model to map turn lanes in OpenStreetMap. While it comes with some limitations, it is fairly easy to map.

As an example, let’s choose this intersection in Kleinlinden, Gießen, Germany.

Before starting, it’s useful to customize JOSM by adding the tagging preset and map paint style to work with the schema.

Map Paint Style Tagging Preset
style preset

Setting up JOSM for turn:lanes mapping.

  1. From your JOSM preferences, choose tab Map Settings
  2. From the Map Paint Style list, add the Lane and roads attributes style
  3. From the Tagging Preset list, add the Lane attributes preset
  4. Press OK button at the bottom of the dialog.

The junction consists of two roads each of them with two lanes. Add a lanes=2 tag for each road and split the roads at the junction.

The secondary road running from north to south has additional lanes for left turns. Split it where the extra lanes start and add a lanes=3 tag.

lanes marked

Now you can add the lane indications for forward and reverse directions.

residential roads

and similarly for the secondary road.

secondary

With the style preset activated, you should now see lane direction arrows just as you would on a road.

You can add these values also through the preset form. You can access it from Presets > Lanes > Multi lanes (dualway).

preset

Mapping turn lanes using ‘turnlanes:turns’ schema

At complex junctions, the turn:lanes approach may become too ambiguous to create accurate turn by turn guidance. This is where turnlanes:turns tagging comes into play. It allows for connecting a turn lane directly with the road it leads to.

Note while already in use, the turnlanes:turns tag is a proposed feature. You can join the proposal process by submitting your review on the relevant talk page.

To get started install the turn lane plugin directly from JOSM’s settings panel. It provides support for both Key:turn tags and type=turnlanes:turns relations.

As an example, let’s look at how to map turn lanes in detail on this intersection alongside US 101 in South San Francisco.

image

Lane-specific turn restrictions along US 101 Exit 425B.

Enable the “Turn Lanes” panel in the “Windows” menu.

josm_open_turnlanes_dialog

Identify the number of lanes on all the roads leading to and from the junction.

image

Add the number of lanes to the appropriate ways as a regular tag - for example, lanes=2.

image

Split the ways that will be parts of relations. Then, for each turn lane restriction, select the nodes and ways involved to define a rule. You should see the junction modeled as shown once the lane count for all the roads have been set.

josm_open_turnlanes_construct_junction

Let’s start with the motorway link from US 101 leading into the junction.

exit_to=Oyster Point Boulevard;
highway=motorway_junction;
ref=425B

Initially this way has one lane which splits into three before the junction. At 141 meters before the junction, add the left lane. At 92 meters, add the lane on the right side. These lanes can be added by clicking the white plus button and setting the start position by dragging the blue marker back from the junction.

josm_open_turnlanes_add_side_lanes

Add a lane to turn left for a small section of Dubuque Avenue. You can pan the model by dragging with the right mouse button.

josm_open_turnlanes_add_side_lane

Now create rules for the thoroughfare from motorway junction #425B with rules for each lane by dragging a route across the relevant junctions and lanes.

josm_open_turnlanes_add_turn_ruls

Add similar rules for all directions where applicable.

Now let’s check our work by selecting nodes and reviewing traffic flow. To cycle through all directions press Ctrl+A for an overview of all restrictions on the junction.

josm_open_turnlanes_check_in_out

I hope you find these instructions useful to map detailed junctions in your area. If you have any questions or ideas on mapping turn lanes, drop me a line on Twitter or through my OpenStreetMap profile.

Note: Instructions for turn:lane added after discussion on my corresponding diary entry. Thanks to everyone weighing in on the conversation.

Header photo: Interstate 10 and Interstate 17 Interchange at Night by Alan Stark