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.

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:
Key:turn:lanes
tags to map indicated directions on lanesRelation:turnlanes:lanes
relations to map both indicated directions and turn restrictions on lanes
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


Setting up JOSM for turn:lanes mapping.
- From your JOSM preferences, choose tab
Map Settings
- From the Map Paint Style list, add the
Lane and roads attributes
style - From the Tagging Preset list, add the
Lane attributes
preset - 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.

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

and similarly for the secondary road.

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)
.

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.

Lane-specific turn restrictions along US 101 Exit 425B.
Enable the “Turn Lanes” panel in the “Windows” menu.

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

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

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.

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.

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.

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.

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.

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