Mapbox OpenStreetMap

OpenStreetMap is the free and editable map of the world, created and maintained by a huge international community. Mapbox Streets, our customizable map layer of streets, buildings, and places from all around the world, is powered by open data from OpenStreetMap. Anybody can create an account and start editing on OpenStreetMap.org within minutes.

Our data team updates OpenStreetMap based on quality analysis and customer feedback. Our principle is to work in the open, these mapping guides are primarily consolidated and maintained by our data team for various mapping projects and on-boarding new team members.

You are welcome to join one of our open mapping projects over on the issue queue and use these best practice mapping guides. These guides are licensed under Public Domain (CC0), if you would like to contribute or have an feedback on these, please feel free to raise an issue in this repository.

Adding turn lanes

Mapping guides

Adding turn lanes

What is a turn lane

A turn lane is an auxiliary lane demarcated on the road to specify directions to ongoing vehicles. Turn lanes serve two purposes:

  • Provide directional information to the ongoing vehicles and
  • Provide the lane information to be chosen for the vehicles changing their direction

Types of turn lanes

There are a total of 12 different turn lanes demarcated on the roads. They are:

Turn Lane Representation
turn:lanes = left left
turn:lanes = right right
turn:lanes = through through
turn:lanes = left;through through left
turn:lanes = right;through through_right
turn:lanes = left;through;right leftthroughright
turn:lanes = left;right left_right
turn:lanes = slight_left slightleft
turn:lanes = slight_right slightright
turn:lanes = merge_to_left merge to left
turn:lanes = merge_to_right fahrbahn_2
turn:lanes:both_ways = * turn lanes both ways

road markings on the ground - © pdd.ua

Pre-requirements for mapping a turn lane in JOSM

Before mapping turn lanes activate the following preferences in JOSM to visualize the mapped turn lanes: preferences > Map Settings

  • Map Paint Styles > Lane and road attributes

    lane_and_road_attributes

  • Tagging Presets > lane attributes

    tagging_presets

  • Filter out non-road features with inverse filter: boundary: | leisure: | landuse: | waterway: | amenity: | natural: | building:

Plugins

  • Knife-tool: https://gist.github.com/jothirnadh/a10daeaef1498537ea56f0a65f7fdbc2
  • TurnLanes-tagging plugin: JOSM Preferences > Plugins > turnlanes-tagging

Mapping a turn lane

  • Check all roads in the imagery for turn lanes at junction points

    roads_markings

  • Split the road into segments based on the total number of lanes for the segment. The easiest way for splitting the road is by using Knife_tool

    residential_road

  • For each road segment tag the turn lanes based on the road markings in the direction of the way. Eg. turn:lanes=left|left;through|through. Check OSM turn:lanes for reference.

    oneway_turn:lanes_tagging

  • For bi-directional segments, use turn:lanes:backward= and turn:lanes:forward= to specify turn lanes in each direction.

    bidirectional_tagging

  • Verify correct tagging using the Lane attributes style

    lane_attributes

  • The simplest way to add turn lanes is by using turnlanes-tagging plugin

turnlenes

turn:lanes and relations

We use relations for different purpose – for indicating turn restriction or collect separate ways into solid route. ​ JOSM help us to handle them. But sometimes we are faced with not properly denoted relations. JOSM will inform about it while uploading our changes. You may ignore messages of level “Warnings” (if you only split ways and didn’t edit relations manually) but you have to fix all “Errors”.

QA for turn lanes mapping

While mapping turn lanes, there are a lot of scenarios are encountered in #153 and #144 mapping repos. All these scenarios are drafted in one place for validation purposes.

Different scenarios we came across while mapping

1. Parking lanes

In the U.S., when parallel parking spaces are marked, they are marked in one of three ways:

parking_lanes

Here’s an example of the box marking style:

boxes

2. Counting number of turn lanes

If there are no clear cut demarcations on the road and yet cars are parked on either sides of the road, consider them as drive lanes. Case below:

number_of_lanes

3. Starting a turn lane

Turn lanes should begin exactly as per the marking in the imagery, not before or after.

turn:lanes_start

4. Ending a turn lane

Turn lanes should terminate at the first highway junction after the start of the turn lane.

turn:lanes_end

5. Turn lane forward

In case of bi-directional ways, the key turn:lanes:forward=* describes only the turning indications on the lanes in the same direction as the osm-way; while adding this we must view the road in the direction to the osm-way(on the direction where the osm-way arrow is pointing).

turn:lanes:forward

6. Turn lane backward

In case of bi-directional ways, the key turn:lanes:backward=* describes only the turning indications on the lanes in the opposite direction as the osm-way; while adding this we must view the road in the oppoiste direction to the osm-way(opposite to direction where the osm-way arrow is pointing).

turn:lanes:backward

Adding a turn:lanes:backward tag

7. Adding dual carriageways:

When finding roads mapped as single carriageway while the imagery shows clear separation between roads, split the road where the physical separation starts and add dual carriageways.

dualcarriageway

When to add dual carriageway?

  • Add Dual-carriage when
  • you see physical separation betweens roads
  • no relation is attached to the way.
  • Add turn:lanes tag to both the ways.

8. Bicycle lanes and road shoulders

Road shoulders and bicycle lanes are ignored from the lane count. Both these roads are lanes=2

bicycle+shoulders

bicycle_lanes

lanes=3 for the above example, ignoring the two cycle ways

  • Ignore bicycle lanes even though they are in the middle;example below:

    xyz2

    The middle way is also a bicycle lane which is not counted while adding the lanes tag

  • Additionally, Strava global-heat cycle layer can used to verify if a particular lane is a cycle-way. tms[16]:http://globalheat.strava.com/tiles/cycling/color3/{zoom}/{x}/{y}.png

9. Lane marked as a separate way

Do not add turn lanes in these cases where the only turn lane is already a mapped as a separate way.

lane_as_separate_way

10. Bidirectional turn lanes

These are the lanes marked with symbol representing both directions at a time.

turn:lanes:both_ways

Tag used for such lanes are turn:lanes:both_ways=*

Yellow lines on both sides of a lane also gives an indication of turn:lanes:both_ways=*

screen shot 2016-05-16 at 4 12 49 pm

screen shot 2016-05-16 at 4 13 00 pm

11. Mapillary Plugin to verify turn lanes

The imagery at some places is not very clear and at-times the turn-lanes are covered by cars. In situations like these Mapillary plugin can be used. If there is Mapillary imagery coverage in that area, they can used to verify the presence of turn-lanes.

Name of the plugin: Mapillary

turnlanes_mapillary

12. Lanes with restricted access

These are the areas on streets which are restricted for vehicular traffic.

screen shot 2016-03-15 at 3 36 36 pm

screen shot 2016-03-14 at 4 46 03 pm

screen shot 2016-03-14 at 4 46 29 pm

In the above cases the areas with markings on the roads are not considered as a lane

13. Reverse direction turn lanes

These are the lanes specifically categorized to take U-turn or reverse-turn.

screen shot 2016-03-14 at 2 25 28 pm

14. The order of the directions and valid combinations of values

  • none itself is valid value but not in conjunction with other

  • turn:lanes=none|right is equal to turn:lanes=|right - we use none for “better readability

  • 👎 turn:lanes=left||none|merge_to_right - this combination of values is valid but there is mixing none and || (empty) - this is not good choice.

  • 👍 turn:lanes=left|none|none|merge_to_right or turn:lanes=left|||merge_to_right

  • turn:lanes=none|none|none or turn:lanes=|| - in this case turn:lanes=* tag is redundant, just specify lanes=3 or real number of lanes

  • turn:lanes=none|none;slight_right - isn’t valid combination - “there are no turn indications” on the rightmost lane. Instead, must be used (based on https://github.com/mapbox/mapping/issues/180#issuecomment-225574666)

lanes=2
turn:lanes=none|through;slight_right
transit:lanes=continue|new_on_right
  • using *right *left values
    • turn:lanes=left|none|none or turn:lanes=||right or turn:lanes=merge_to_right|| or turn:lanes=left|left;through|none|slight_right|right|right- 👍

    • turn:lanes=|right|left| or turn:lanes=none|right|left|through or turn:lanes=none|left|none- 👎 lanes that go in one direction should not cross with each other

  • using reverse value

  • reverse (u-turn) have to be on the leftmost lane for right-hand traffic or on the rightmost lane for right-hand

15.

to be continued …

Further reading: