Skip to content

Mapping for navigation

Natasha96-Zhouner edited this page Jun 18, 2024 · 35 revisions

title: Introduction

The most basic use of a map is to find out where one is located. After that, one usually wants to use the map to find the best route to another location. On a digital map, this is usually provided with turn by turn navigation using a navigation device.

navigation_optimized Let the computer find the best route for you!

Components of map navigation

A navigations system has user facing components that interact with the user and back end components that computes the best route based on the user input and available data. In this guide we will focus on the back end components that rely on map data.

User facing components

  • User interface controls for setting the the origin and destination
  • Map display that visually represents the route to take
  • Turn by turn instructions that accurately describe the navigation maneuvers at the appropriate time
  • Route status that includes current progress and the estimated time of arrival (ETA) at the destination

Back end components

  • A navigation profile that describes the mode of transport to use for the routing algorithm (eg. truck, cycle or foot)
  • A route finder that finds the best possible route between the origin and destination for the selected navigation profile
  • A guidance system that converts the route into instructions for turn by turn navigation

Navigation profile

The navigation profile accurately describes the preferred types of roads to take based on the mode of transport used. A walking profile will have a fairly constant walking speed on any type of road, while a car profile will have avery high traveling speed on a motorway and will be much slower on a residential road. This has a large influence on the route finder.

screenshot_20160831-124644

Different routing profiles: cars, walking, bicycle.

Routing

Routing is the process of selecting the best path in a network interconnected of roads on the map. Every road segment on the map has a traveling speed calculated based on various road factors, and the fastest and safest route is selected from all possible combinations.


Finding the route between two points involves complex calculations on a routing graph

The calculation of an accurate route depends on a variety of factors which are taken into account by the routing algorithm:

  • Personal factors: fastest route, most scenic route, quietest route, shortest route, facilities needed, toll rates
  • Vehicle factors: mode of transport, physical category of vehicle, optimum traveling speed, riding surface requirements, fueling requirements
  • Route factors (static): classification of road, access restrictions, speed limits, turn restrictions, oneway rules, number of lanes
  • Traffic factors (dynamic): traffic conditions, traffic signal cycle duration, weather conditions
  • Riding surface factors: surface material, smoothness, barriers, speed breakers, road width, lane width, age

Guidance

A route is converted into a series of easy to follow instructions for the user

Route guidance is used to lead a person through the determined path. Once the routing algorithm determines the best path, that route is converted into a set of human-readable instructions known as guidance. The guidance represents the street names, the turn lanes marked on the roads, exit numbers, and destinations shown on sign boards. Accurate and relevant guidance can greatly enhance the user experience of using the map for navigation.

Navigating the future

Providing accurate navigation using maps is dependent on having detailed and updated data about the world. The world is transforming every second and the next generation of navigation will need to have the latest information about the world that will come from various sources.

Telemetry

screenshot 2016-09-15 21 27 43 _Telemetry traces of Strava users from [Strava Globalheatmap](http://labs.strava.com/heatmap/#14/-74.02871/40.70159/blue/both)_

Telemetry is the remote collection of data which can be physical, environmental or biological. Most internet and GPS enabled phones collect location and other environmental data and reports it to a central service that can aggregate the data to determine traffic conditions on a road.

Forward facing cameras & Street-view

untitled2 Crowdsourced streetview photographs from narrow alleys in India using Mapillary

Street view images from dashcams, mounted cameras in vehicles using apps gives highly detailed 360° view of streets. This can help detect traffic signage, access restrictions, traffic signals, road markings to help add and confirm ground features into a map. Opensource street view photos include Mapillary and OpenStreetView.

Live Aerial & Drone Imagery

screenshot 2016-09-15 21 34 33
High resolution imagery captured from UAVs in Srilanka

Aerial imagery using drones can capture the changing surface of the earth at a much higher resolution and lower cost compared to traditional satellite imagery that is expensive to acquire and are updated less frequently.

Machine learning and image recognition

untitled2
Automatic image segmentation by Mapillary

Advances in machine learning opens up opportunities to automate manual tasks like digitization of roads from satellite imagery and can accelerate the creation and maintenance of map data.


title: Modeling Roads for Map Navigation

A navigation map is influenced by several road characteristics, such as the turn restrictions, improper way of road tracing and road classification. The most important ones among those are:

Road geometry

Roads are the main features that are used for rendering a route in all navigational applications. Correct road mapping leads not only to the well-looking map but also to better navigation experience. With the change in the shape of the traced road, the distance covered will be altered which affects the route. The common approach for road mapping is to trace roads following the center-line from satellite imagery.

road_with_two_lanes

Roads on satellite imagery

Road connectivity / topology:

If you want to travel from point A to point E as shown in the below image, you can either travel from A to B, B to C and then C to E or A to B, B to D and then D to E.

screen shot 2016-08-30 at 6 51 58 pm

But, if you have a restriction to enter D from A, the only possible route will be A to B, B to C and then C to E. This is where connectivity plays a major role in deciding the final route.

Road attributes / properties:

If A to C is a primary road which is crossing through a service road B to D and you want to travel from A to E, the navigation map comes up with the route traveling from A to B, B to C and then C to E and completely avoids A to B, B to D and then D to E because the travel on Primary road is much efficient than a narrow service road. This is how the attributes / properties with which the road is assigned with plays a crucial role in deciding the final route.

screen shot 2016-08-30 at 8 30 14 pm

OpenStreetMap data model:

The OpenStreetMap data model consists of nodes, ways, relations, and tags. A detailed description of the data model can be found in the The OpenStreetMap Data Model guide.

Navigation data is similarly a combination of nodes, ways, relations, and tags. Some of the examples are illustrated below:

Examples

  • Nodes:
  • Exit numbers:

screen shot 2016-08-30 at 5 20 44 pm

  • Ways:
    • Highway=*

screen shot 2016-08-30 at 6 17 55 pm

An way tagged with highway=secondary tag

  • Relations:
  • Turn restrictions are a combination of nodes, ways, tags, and relations. It consists of from way via node and to way, tied together by a restriction=* relation.

tr_relation

  • Tags: All the navigation features are differentiated and defined based on how they are tagged. Tags can be on any element: on nodes, ways, and relations.

Examples are: destination=*, ref=*, turn:lanes=*, restriction=*, etc.

Tracing roads

Before tracing, we need to inspect the start and endpoints of the road segment. We need to identify the road direction, general numbers of lanes and the places where there are extra lanes. Based on this we choose our strategy for tracing.

We are not able to draw a road on its center line, especially if roads join/fork or the number of lanes change. Imagine two roads which join: how would you draw the OSM-way around the point where the roads join?

center_line

Center line tracing

main_direction

Tracing based on road direction

Tracing roads with more than two lanes

There are two cases:

  • Dual carriageway roads

    dual_carriageway_road

These are bidirectional roads which have a physical separation between the lanes in both the directions. Both the ways will be counted for lanes and will be tagged with lanes=*. Dual carriageways are always oneway roads.

motorway Placement of nodes of the lines in each direction, opposite to each other

  • Roads which carry traffic in both directions (Bidirectional roads)

    bidirectional_road Road carrying traffic in both directions


title: Road Features Mapping Guide

Detailed guide mapping features for navigation on the OpenStreetMap project. Before you start, please read the guide on Mapping with OpenStreetMap

Query OpenStreetMap for Navigation Data via Overpass

Routing features

These are features that help the routing engine find the safest and fastest route between two points.

1. Functional Road Class

Roads are categorized according to its order of importance. They are tagged with the highway=*. The general order of importance for way types are:

highway= motorway > trunk > primary > secondary > ... > living streets > ... > footway

screen shot 2016-08-29 at 1 50 04 pm

highway=primary in San Francisco

The value of the key helps show the importance of the highway within the road network as a whole. The importance ranges from the most important motorway to the least important service. The routing engine takes into account this importance of classification when determining optimum routes.

Road classification may varies from country to country. The country specific use cases can be found in detail on separate wiki pages. For example, when mapping roads in India, the local community refer to the India road tagging wiki.

Examples:

For an example of an area with a good concentration of different classes of roads on OpenStreetMap, look at San Francisco area. This osm query can be used to extract and gather numbers of all the highways present in a given bounding box on OpenStreetMap.

Department of Transportation websites and wikipedia are some of the primary sources for highway information.

2. Oneways

Oneways generally refer to road segments which allow traffic in only one direction. There are also streets which have oneway characteristics for only on certain times of the day to regulate traffic.

screen shot 2016-08-29 at 5 47 47 pm

oneway=yes shown in Mapillary

The best source of mapping oneways are again street level photos.

San Francisco is one area which has been well mapped for oneways in OpenStreetMap. This overpass query can be used to extract oneways from OpenStreetMap data.

3. Turn-Restrictions

type=restriction is added to a relation in OpenStreetMap which is used to describe turn restrictions at junctions. The relation has a set of tags that describes the type of restriction, for example. no_left_turn, no_right_turn, no_u_turn, etc. These are traffic signs at junctions and this information must be present on the map to find the best route by the routing engine while planning a route.

screen shot 2016-03-08 at 8 05 36 pm

Turn restriction denoting no left turn along with conditions: opening and closing times

The main resource for turn restriction data is street view level images, local mapping drives, DOT websites

turn_restriction turn restriction which denotes no right turn at the junction

San Francisco in OpenStreetMap has an excellent coverage of turn by turn restrictions at junctions. This overpass query can be used to extract current turn restriction in a bounding box.

4. Speed limits

  • maxspeed=60 or maxpseed=40 mph
  • OSM Wiki

The maxspeed=* tag defines the maximum legal speed limit for general traffic on a particular road, railway or waterway. The max speed values will be interpreted as kilometers per hour by default. The maxspeed=* is an important part of routing as it is used in determining the shortest time taken by a specific route to reach a destination. In the case of two routes, the one with the shortest time (higher maxspeed) and shortest distance will be considered as the optimum route.

maxspeed

Maxspeed sign shown in Mapillary

The main data sources for detecting maxspeed signs are: street view photos, wikipedia, DOT documents.

The maxspeed=* data on OpenStreetMap (for example, in London) in an area can be extracted by this overpass query.

5. Access-Restrictions

Apart from turn restrictions, there are access restrictions for different parts of highways. Some of these tags are access=no, access=private etc which will end up altering the route to be taken during the journey. For more information on the various kinds of access=* tags take a look at Key:access and Conditional restrictions and access restrictions

749px-mutcd_r5-7

An access=no for non-motorized traffic, ends up altering the route for bicycle profiles, source: US MUTDC

All the access=private tags on OpenStreetMap ways, which will not allow that segment of the way to be used in a route can be extracted from this overpass query. An example of well-mapped access restrictions in OpenStreetMap can be found in London.

The sources for mapping access restrictions in OpenStreetMap are: street view photos, local mapping drives.

6. Traffic signals

Traffic signals such as: highway=traffic_signals, highway=stop or barrier=toll_booth as well as traffic_calming=* are considered during routing. The type=restriction more commonly referred to as turn restrictions are traffic signage which prohibits certain turns in intersections are also a crucial part of a great routing engine.

More details on mapping traffic signals for cars and pedestrians can be found in the OpenStreetMap wiki.

Street view photos from Mapillary, local mapping drives using OpenStreetMap tracker can be used as sources to map traffic signals in OpenStreetMap.

800px-led_traffic_lights

Traffic signal in a junction

Guidance features

1. Exit & destination signs

What are exit numbers?

  • An exit number is a number assigned to a road junction, usually an exit from a freeway. It is usually marked on the same sign as the destinations of the exit, as well as a sign in the gore.

Different tags for exit numbers:

  • ref=* is used when the exit has a specific number assigned to it.
  • noref=yes is used when the exit doesn't have any official number assigned to it.

What are destination tags?

  • Destination tags describe the content of signposts or ground writing indicating the names of the locations that a certain exit from the freeway or a highway is heading to.
  • The key destination=* describes where a certain exit leads to. Thus navigation systems can refer to road signs that the driver actually sees.

24-wa_i-5_n_exit_164a__1_

Different tags for destinations:

  • destination tag refers to the place that the way exiting from the freeway leads to.
  • destination:ref is the reference of the roads directly ahead.
  • destination:ref:to is to specify the reference of a major highway ahead.
  • destination:street refers to the main street the way exiting from the freeway leads to.

An example of a place with good exit/destination coverage in OpenStreetMap is Ottawa, Canada. These overpass queries for destination and exit numbers can be used to extract exit/destination data from OpenStreetMap.

The detailed guide on adding exit and destination numbers can be followed for adding exit/destinations. This guide is specifically focused on North America (US/Canada) for now.

2. Turn Lanes

As discussed in Modeling Roads for navigation page, there are two types of roads: unidirectional and bidirectional. lanes=* tag is used to count the number of lanes in both these type of roads.

To set number of lanes for roads which carry traffic in both directions use :backward and :forward suffixes

Forward means the direction in which the way is drawn in OpenStreetMap, while backward means the opposite direction.

Example:
  highway=tertiary
  lanes=5
  lanes:forward=3   
  lanes:backward=2

In the image below, the number of lanes is two - lanes=2. Orange line is the center line of bidirectional way which is the main way direction. When the extra lane starts in a bidirectional way, that segment is tagged as lanes=3+lanes:forward=2+lanes:backward=1. Optionally, we specify placement of the lanes relative to the way.

residential_road_2

The below image have two tagging variants:

  1. lanes=2 - 1 lane for each direction, or
  2. lanes=3 - denote middle lane for left turn as (:point_left: this is discussed)
highway=residential
lanes=3
lanes:forward=1
lanes:backward=1
lanes:both_ways=1
turn:lanes:both_ways=left

residential_road_3

IN case the number of lanes is even but numbers of lanes for each direction not equal. 👇

trunk_link

Turn lanes have an influence on the path finding and are one of the most vital components for proper guidance. Choosing the correct turn lane can have a big influence in navigation. Oftentimes, they only help to illustrate a turn better but other times, they are vitally important. In guidance, the aim is to provide a set of instructions, like keep right or keep left by describing the optimum route found by the routing algorithm to a driver.

screen shot 2016-03-08 at 7 51 36 pm

How a driver views turn lanes from the car. For a single direction way, it will be tagged turn:lanes=left|left;through while for a bidirectional way it will be tagged turn:lanes:forward/turn:lanes:backward=left|left|through depending upon OpenStreetMap way direction

There are three turn lanes tags in OpenStreetMap:

turn:lanes=*
turn:lanes:forward=*
turn:lanes:backward=*

Turn lanes can be mapped from high-resolution satellite imagery sources and street level photos. An example of the high density turn lane area in OpenStreetMap is Los Angeles. This overpass query can be used to extract turn lanes data from OpenStreetMap

Mapping guide for mapping turn lanes: This is a detailed mapping guide for adding turn lanes in general with specific focus on the US. It will be updated as more and more countries are mapped for lane information in OpenStreetMap.

--

The other important attributes in besides turn:lanes and exit/destination data required to provide the better guidance using OpenStreetMap data are:

lanes=*
name=*
ref=*
relation:route

Information for lanes, highway names, highway ref and relation:route can be found in their respective OpenStreetMap wikis.


title: Explicit Turn Restrictions

Turn restrictions

When navigating a street network, it is important to know which maneuver you are permitted to make. Turn restrictions are communicated through road signage and are placed to regulate traffic flow at intersections by restricting certain maneuver. When mapped in OpenStreetMap data, these restrictions have a dramatic impact on an OpenStreetMap based routing experience.

Example, the routing improvement when a missing Not Left Turn restriction (left), is added to the map (right):

image

Common turn restrictions found in the US

Turn restrictions come in many forms and combinations, and can vary from country to country. To start things off, this guide focuses on mapping turn restrictions in the United States.

Contrary to the name, turn restrictions are not limited to turns you are not allowed make. They can also be used to communicate the single maneuver you are allowed to make. We can categorize these two restriction types as mandatory (ex. you can only go straight) and prohibitory (ex. you cannot go straight).

In the US you will largely find prohibitory turn restriction signage and sometimes mandatory signs. Most often you will see one of these six signs:

image image

In this guide we’ll focus on how to map the six most common US turn restrictions described above, then move into the mapping of conditional turn restrictions and a couple less non-standard turn restrictions you may see.

Mapping an explicit turn restriction in the iD editor

Restriction as relation

Every turn restriction is a relation made of ways and node.

A turn restriction is a type of relation which should have a minimum of three members: from, via and to.

  • The from member is the way which represents driver’s is initial location.
  • The to member is the way which represents driver’s possible end location.
  • To drive from the from way to the to way a driver would pass through the via member, which can be either a way or node based on current road geometry.(Note: It is possible to have more than one via member in a turn restriction, but this doc will not detail these particular cases.)

For a turn restriction such as No Left Turn and No Right Turn the via member is typically a node. For No U Turn the via member can be both way and node.

image

Once you have identified the location of an un-mapped turn restriction you are ready to create a turn restriction relation.

Regular turn restrictions

No Left Turn / No Right Turn

image

Note: Follow the same instructions listed below for both right and left turn restrictions, Make sure to match the direction of the mapping to the direction of the signage.

  1. Check the to way to ensure that it is not a oneway.

    • If a oneway exists which prohibits travel down the road in the way the turn restriction sign prohibits, mapping turn restriction is not necessary.
  2. Select the via node in the map view panel to activate the Turn Restrictions editor on the side bar.

    60351475-5eed-4d7e-8380-28012625fc32

  3. Select the from way in the Turn Restrictions editor.

b27901e3-abe5-44dc-b167-fdb61469bab5

  1. Select the arrow pointing left for the road where the restriction exists.

275fa43b-c397-4f27-85c3-777656c11741

  1. Check that your relation has been added by scrolling down to All relations and clicking on No Left Turn. There should be three members.

    9b083892-6c86-40af-b662-0d159a83b4e6

  2. If all looks good click Save to upload your turn restriction relation.

image

Note: do not close your iD tab until the data has been fully uploaded to OSM. Wait until the "Uploading changes to OpenStreetMap..." window disappears.

image

No Straight On

image

  1. Check the to way to ensure that it is not a oneway.

    • If a oneway exists which prohibits travel down the road in the way the turn restriction sign prohibits, mapping turn restriction is not necessary.
  2. Select the via node in the map view panel to activate the Turn Restrictions editor on the side bar.

    d68c18c0-c81f-4d74-bfc9-2e4efd03ce34

  3. Select the from way in the Turn Restrictions editor.

  4. Select the straight on arrow.

  5. Check that your relation has been added by scrolling down to All relations, clicking on No Straight On and inspecting the relation members.

  6. If all looks good click Save to upload your turn restriction relation.

image

Note: do not close your iD tab until the data has been fully uploaded to OSM. Wait until the "Uploading changes to OpenStreetMap..." window disappears.

image

No Turns / Only Straight On

image

No Turns means Only Straight On restriction.

  1. Check the to way to ensure that it is not a oneway.

    • If a oneway exists which prohibits travel down the road in the way the turn restriction sign prohibits, mapping turn restriction is not necessary.
  2. Select the via node in the map view panel to activate the Turn Restrictions editor on the side bar.

    d6e32c48-bb71-4f9f-a9da-57db5dd68383

  3. Select the from way in the Turn Restrictions editor.

  4. Select the straight on arrow.

  5. Select the straight on arrow again to change no_straight_on to only_straight_on relation.

d11e8945-f15e-467f-ac23-abc38ca7670d

  1. Check that your relation has been added by scrolling down to All relations, clicking on Only Straight On and inspecting the relation members.

    01f462b3-0708-4f61-990c-f49fffd1bb02

  2. If all looks good click Save to upload your turn restriction relation.

image

Note: do not close your iD tab until the data has been fully uploaded to OpenStreetMap. Wait until the "Uploading changes to OpenStreetMap..." window disappears.

image

No U Turn

image

Inspect the existing road geometry, if it is a dual carriageway, Follow below steps to add no_u_turn restriction where via will be way.

  1. Select the node which connects the to way and via way to activate Turn Restrictions editor on the side bar.

bc9c7e07-b484-431d-8100-6ef49640d5f4

  1. Select the from way in the Turn Restrictions editor.

  2. Select the to way in the Turn Restrictions editor.

    35e56926-7e57-4218-9920-ccaa6e6ad720

  3. Check that your relation has been added by selecting the from way, scrolling down to All relations, and clicking on No U Turn.

    4b102ffe-ec9f-490b-a59c-1c2bb3eb6c1b

  4. If all looks good click Save to upload your turn restriction relation.

    image

Note: do not close your iD tab until the data has been fully uploaded to OSM. Wait until the "Uploading changes to OpenStreetMap..." window disappears.

image

Inspect the existing road geometry, if it is a bidirectional way, Follow below steps to add no_u_turn restriction where via will be a node.

  1. Select the node which connects the to way and via way to activate Turn Restrictions editor on the side bar.

    fb89e8ee-68a7-4f22-be24-c550108c2fb6

  2. Select the from way in the Turn Restrictions editor.

    9f01815c-a2ff-4a8d-b36d-67b42403367f

  3. Click the u-turn icon at the junction to apply the restriction.

    a64a0b15-847c-450c-97b2-d27b8c426f42

  4. Check that your relation has been added by selecting the from way, scrolling down to All relations, and clicking on No U Turn.

    4fd31ad9-cc7e-4f41-a746-bf0c084df09a

  5. If all looks good click Save to upload your turn restriction relation.

    image

Note: do not close your iD tab until the data has been fully uploaded to OSM. Wait until the "Uploading changes to OpenStreetMap..." window disappears.

image

No U Turn nor Left Turn

image

When you encounter multiple turn restrictions contained within a single sign, it should be mapped as two separate restriction relations. In the case of No U Turn nor Left Turn, first create a no U Turn Relation, then create a No Left Turn relation.

  1. Check the to way to ensure that it is not a oneway.
    • If a oneway exists which prohibits travel down the road in the way the turn restriction sign prohibits, mapping turn restriction is not necessary.
    • Only add No U Turn restriction.
  2. Select the node which connects the to way and via way to activate the Turn Restrictions editor on the side bar.

18e6c822-9f60-45d1-91f3-f344ca209bb4

  1. Select the from way in the Turn Restrictions editor.

    f48135b2-3af3-422c-bbc3-5945b31cd16a

  2. Select the to way in the Turn Restrictions editor.

    6efdfa7b-81f7-4b48-91c3-96d1fe26fa27

  3. Click on the left arrow of the U turn relation.

    a7a0a58f-50e6-4c9e-a8d6-c8224b52b792

  4. Check that your relations have been added by selecting the from way, scrolling down to All relations, and clicking on No Left Turn and No U Turn.

  5. If all looks good click Save to upload your turn restriction relations.

    image

Note: do not close your iD tab until the data has been fully uploaded to OSM. Wait until the "Uploading changes to OpenStreetMap..." window disappears.

image

Conditional turn restrictions

Some turn restrictions are only applicable under certain conditions. The most common conditions are:

  • day(s)
  • time(s)
  • vehicle type(s)
  • traffic signal
  • vehicle weight/height

Day, time, weight, height based conditions should be mapped, while traffic signal based conditions should not be mapped.

For all conditional restrictions you map the restriction as you would for a regular restriction. After regular restriction is mapped add the conditions to the tags. The general structure of a conditional turn restriction tag looks like:

restriction:conditional=<regular restriction name> @ <condition>

Day/Time Conditions

Day Conditions

A turn restriction containing a day condition specifies on which day(s) the restriction applies and some signage lists the day(s) does not apply. Day conditions are tagged using a single schema regardless of how the signage is phrased.

Day conditions are tagged using the Monday through Sunday calendar and are noted by two-character abbreviations:

Day Abbreviation
Monday Mo
Tuesday Tu
Wednesday We
Thursday Th
Friday Fr
Saturday Sa
Sunday Su

You may also encounter signage which specifies Holiday. In the US this refers to Public Holidays and is abbreviated using PH.

When you come across signage which lists School Days or When children are present (if near a school) tag using Mo-Fr as in the US this is typically when school is in session.

Time Conditions

Conditional turn restrictions sign sometimes list time(s) along with day(s). When no particular days are listed you must include Mo-Su in the tag to specify that the restriction applies throughout the week.

Time conditions are tagged using the 24 hour clock format.

Seperators used in conditional turn-restriction syntax -

  • When sign has sequence of day(s) mentioned, separate the day(s) range with - (Example - Mo-Su).
  • Use - to separate individiual time ranges and , to separate multiple time ranges (Example - 07:30-09:00,14:00-16:00).
  • Use ; to list exception days after specifying day and time ranges (Example - 07:30-09:00,14:00-16:00; SH off).
  • Note - Give extra space while separating between <days> <time> and <exception days> after separator symbol.

The basic syntax of a day/time conditional turn restriction is as follows:

restriction:conditional=<regular restriction type> @ (<day(s)-day(s)> <time-time>,<time-time>; <exceptional days>,<>exceptional days>)

c279bcda-b907-4ec9-aa0c-5c8ead0e844c

cdbdbc9e-f75e-4300-992a-07507156e6e9

Vehicle Type Conditions

Occasionally you will find signs that specify that a particular vehicle type is excluded from signed turn restriction. In these cases you must add an additional except=<vehicle type> tag.

Vehicle types allowed under except tag are

  • psv - Public service vehicles
  • bicycle
  • hgv - Heavy goods vehicles
  • taxi
  • school_bus
  • commercial_vehicle

Adding vehicle exceptions in restriction

  1. Select the added relation

    d9fbc0d0-12e2-4a26-92a5-9e6579a04171

  2. Click on ➕ to add the except tags listed in the sign.

    f665362c-6b79-414c-a5e0-b75c3548305f

  3. Add the vehicle type as exception per shown in the sign. Use ; to separate multiple vehicle types. Note : bus, metro vehicle types are classified as psv.

    ed8b3541-f676-4acf-b1d8-b34048a43f54

51ae43ad-47ac-43bf-87b4-5e00ab1261ad

Traffic Signal conditions

In the US there are many situations where a right turn is generally permitted except for when the traffic signal is red. We do not map these turn restrictions.

image

Vehicle Weight/Height Conditions

Weight and height conditions are used to restrict the access of large vehicles, notably trucks from certain roads. The vehicle weight and height will be limited by specifying the number in units which the country follows. This guide more focused on car based restriction. Do not map turn restrictions which limits for height or weight of any vehicle type.

77298fe6-ca6c-4951-bd0d-97153ecd5bb5

Look out for

Redundant turn restrictions

Redundant turn restriction can exist in two ways -

Restriction to oneway street

image

There are some situation where both restriction and oneway are signed together. In such situation, if to way is a oneway then there is no need to add turn restriction.

Multiple prohibitory = single mandatory turn restriction

To avoid redundant relations it is important to note and check what are the existing turn-restrictions at the junction -

Example - For No Left Turn and No Right Turn

There are cases where Only Straight Turn is added, In such cases there is no need to delete existing restriction as it implies the same.

Note : Always map what is signed at the intersection and do not imply turn restriction. If implied turn restriction is already present, do not delete it and also do not map.

Lane-specific restrictions

image

Gate Conditions

image

Specified to way

image

Temporary Turn Restrictions

image

Restriction-ahead Warnings

image

Event-Specific Turn Restrictions

image

Removing an explicit turn restriction in the iD editor

Occasionally you'll find an incorrect turn restriction relation. To remove an incorrect relation you must make sure to delete each member of the relation.

  1. Click on the relation node to open the Turn Restrictions editor in the sidebar.

    0aad637e-6911-4265-b0bc-7768b59d6d11

  2. Click on the relation you want to delete in the All Relation list.

9cbd625d-b59c-44d6-ac90-918a67856d40

  1. Delete each member of the relation.

    fe473824-233b-472c-bdad-8c96e50dd3c7

  2. Click on the relation node in the map view and inspect the Turn Restrictions editor to ensure that the relation has been fully removed.

4876a94d-1625-4ede-8365-daca8b51b688

  1. If all looks good, click Save to upload your changes.

    image

Note: do not close your iD tab until the data has been fully uploaded to OSM. Wait until the "Uploading changes to OpenStreetMap..." window disappears.

image


title: Adding exit and destination signs

Exit number and destination mapping

Exit numbers and destinations are used as a part of guidance in routing engine. They help the driver in navigation guidance through on-ramps and off-ramps while routing on major roads.

image

What are exit numbers?

An exit number is a unique alpha-numeric identity assigned to a road junction, usually an exit from where a freeway starts. It is usually marked on the same sign as the destinations of the exit, as well as a sign in the gore. OpenStreetMap based guidance systems such as OSRM can use exit numbers as a way to guide drivers to take the right exit during navigation.

Different tags for mapping exit numbers:

  • highway=motorway_junction → is used in representing the specific node as a junction where the exiting way starts
  • ref=* → is used when the exit has a specific number assigned to it
    • Also tag junction:ref=* on the connecting highway=motorway_link way
  • noref=yes → is used when the exit does not have any official number assigned to it

In California, exit number signage is inconsistent. The state is gradually adding exit numbers. In the meantime, it’s common for a freeway exit to lack any exit number sign, even if Wikipedia provides an exit number. If there’s already a ref tag on the highway=motorway_junction node but no exit number sign appears in Mapillary imagery from within the past year, replace the ref tag with unsigned_ref. Sometimes there’s no exit number at the exit, but an advance guide sign (the one that says “½ mile” or “1 mile”) does display an exit number. In that case, leave the exit number in ref, because a driver would be able to use that information while navigating.

What are destinations?

Destination tags describe the content of road signposts or ground information indicating the names of the locations that a certain exit from the freeway or a highway is heading to, or that a certain entrance to the freeway is heading to. The destination tag refers to the place the entering/exiting way is leading to. Thus navigation systems can represent correct guidance with the respect to road signs that the driver actually sees when driving. The destination references are also alpha-numeric identities which changes from state to state in US. For reference check the shield dictionary to understand how highway shields are represented in different states of US. If you can’t figure out how to map a particular highway shield, look at the ref tags on the way that the motorway_link way leads to.

image

Different tags for mapping destination signs:

  • destination=* → is referring to the place/street that the ramp (link way) leads to.
  • destination:ref=* → is the route number of the roads that the ramp leads to
  • destination:ref:to=* → is the route number of the roads that the ramp indirectly leads to
  • destination:street=* → is an alternative name for the numbered route – only use in Florida, Kentucky, and Maryland
  • destination:lanes=*, destination:ref:lanes, etc. → Often the destinations of a road differ from lane to lane. To specify those for every lane, destination:lanes=* is used.

Cardinal direction:

Every dual carriage way has two oneways roads having traffic in opposite directions. Considering a dual carriage way as a destination, it is important to provide the cardinal direction of the way to which the route is navigating the user. To get this information we need to add cardinal directions to the destination:ref tags of the exit/entrance ways.

screen shot 2017-09-13 at 10 55 21 am

The cardinal direction of the road is the direction in which a road is linearly-referenced in increasing order. It is an important feature in navigation and helps in guiding the user in write direction.

How to map exit numbers and destinations?

Ground based imagery or a field survey is the only way one can verify freeway junctions and road signs. For imagery, Mapillary imagery can be used as a reference to verify and add exit numbers and destinations to mapped highways on OpenStreetMap. Sometimes the pavement is marked with a route shield in each lane, indicating the destination ref, in which case you can also use aerial imagery.

Node:

Exit numbers are mapped as nodes at the junction's on highways where freeways have exit ways.

S.No Mapillary Image JOSM representation Tags
1 screen shot 2017-07-18 at 11 23 16 am screen shot 2017-07-18 at 11 24 50 am {::nomarkdown}
  • highway=motorway_junction
  • noref=yes
{:/}
2 screen shot 2017-07-18 at 11 48 11 am screen shot 2017-07-18 at 11 52 15 am {::nomarkdown}
  • highway=motorway_junction
  • ref=414A
{:/}
3 {::nomarkdown}
  • highway=motorway_junction
  • ref=51A;51B
  • ref:left=51A
  • ref:right=51B
{:/}
4 screen shot 2017-07-20 at 12 28 02 pm screen shot 2017-07-20 at 12 28 49 pm {::nomarkdown}
  • highway=motorway_junction
  • ref=56
{:/} Note: Some times exit numbers are placed separately
5 screen shot 2017-07-31 at 1 42 19 pm screen shot 2017-07-31 at 5 18 22 pm {::nomarkdown}
  • highway=motorway_junction
  • ref=236
  • name=Gettysburg Pike
{:/}

Way:

Destinations are mapped on the highway=motorway_link ways that start from the highway=motorway_junction node and connect with another road. These are called off-ramps or freeway exits. Destinations are also mapped on the highway=motorway_link ways that start from another road and end on the highway=motorway way (without a highway=motorway_junction node). These are called on-ramps or freeway entrances.

S.No Mapillary Image JOSM representation OSM tags
1 screen shot 2017-07-18 at 11 48 11 am screen shot 2017-07-18 at 11 49 17 am {::nomarkdown}
  • destination=Hillsdale Boulevard
  • junction:ref=414A
{:/}
2 screen shot 2017-07-18 at 12 25 22 pm screen shot 2017-07-18 at 12 27 49 pm {::nomarkdown}
  • destination=Woodward Avenue;Main Street;Detroit Zoo
  • destination:ref=M 1
  • junction:ref=16
{:/} Note: M represents that highway belongs to the state trunkline highways of Michigan state
3 screen shot 2017-07-18 at 1 02 35 pm screen shot 2017-07-18 at 1 04 13 pm {::nomarkdown}
  • destination:ref=I 71 North;US 50 East
  • destination:ref:to=I 471;US 52 East
  • junction:ref=1B
{:/} Note: I represents Interstate highways and US represent U.S. Routes. North and East represent the cardinal direction of the way. Only enter the cardinal direction that is used on the sign; do not guess based on the physical direction of the road.
4 screen shot 2017-07-18 at 2 16 52 pm screen shot 2017-07-18 at 2 18 59 pm {::nomarkdown}
  • destination:ref=KY 1072
  • destination:street=Kyles Lane
  • destination=Fort Wright;Park Hills
  • junction:ref=189
{:/} Note: KY comes from the state of Kentucky, where oval shields represents state routes. The small letter font represents destination:street and are only available in limited US states
5 dearborn2 iD {::nomarkdown}
  • destination=Dearborn Street;James Street;Madison Street;Spokane
  • destination:lanes=Dearborn Street;James Street;Madison Street
6 {::nomarkdown}
  • destination=Pocatello
  • destination:ref=I 15 North
{:/} Note: Make sure to split the highway=motorway_link way at the intersection, so that the on-ramp and off-ramp are represented by separate ways.
7 {::nomarkdown}
  • destination:ref=I 275 West
  • destination:ref:to=I 74
  • destination=Indianapolis
{:/}

Note:

  • Cardinal direction can be found on the sigh boards but this is not the same in all cases. In case, the cardinal direction is missing on the sign board do look into the route relation of the connecting motorway of the exit/entrance way and get the cardinal direction.
  • If you come across missing street level imagery, get the destination and destination:ref information from the connecting motorway of the exit/entrance way along with the cardinal direction of the way.

References:

Short forms of common words on sign boards:

Short-form Full-form
Rd Road
St Street
Dr Drive
Br Bridge
Ave Avenue
Blvd Boulevard
Pt Point
Pkwy Parkway
Cr Creek
Mtn Mountain
Mt Mount
Jct Junction
Ft Fort
AFB Air Force Base
JR Junior
MLK Martin Luther King
Co County
Tr Trail

title: 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

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:


title: Resources and References

Mapbox navigation mapping projects

Navigation mapping forms a large part of Mapbox's mapping sprints in recent times. Given below are a few examples of some of the latest navigation mapping efforts across US, Canada, and Europe. To get an idea about all our historical mapping projects related to navigation in OSM, look into the mapping repository. Our mapping projects are conducted in the open with active participation, feedback, and validation from the community.

Examples

Location Description Start End(ETA) Validation
Mapping turn lanes in 30 US cities Mapping all the turn lanes from satellite imagery in 30 US cities from secondary and above 04/05/2016 Continuing Continuing
Updating turn restrictions in Germany Updating missing turn restriction coverage in 3 german cities: Berlin, Stuttgart, Wolfsburg 29/08/2016 Continuing Continuing
Mapping turn restrictions in Canada Mapping turn restrictions from mapillary in top 5 cities in Canada 22/07/2016 05/08/2016 Completed
Exit and destination mapping in Canada Map the exit and destination numbers in top 5 Canada cities using mapillary 11/08/2016 17/08/2016 Completed

Navigation data tools

  • Mapillary Explorer: Explore navigation related traffic signs automatically detected from crowdsourced street level imagery.
  • OpenStreetMap navigation map: This map is used to add turn restrictions in OSM. It has a detected signage mapillary layer for easy detection of turn restrictions, oneways and a dataset which displays all the valid, invalid and redundant turn restrictions added. Get more instructions on how to use the OSM navigation map.
  • CheckAutopista2: It is a tool to investigate and add highway signboard features on motorways and freeways. For more details look into the github repository for checkautopista.
  • Overpass: The place to query and extract all OSM data related to a specific feature. It has a simple query builder feature that helps in querying each and every feature in OSM. Details about overpass can be found here and here.
  • Knife tool: The knife tool can be used for quick splitting of ways while adding navigation features such as turn lanes. For more details, look here
  • Turn lanes tagging plugin: With this plugin, you can add complex tag combinations for turn lanes at road junctions with ease, and minimize errors. For more details, look here

Country specific navigation guide

  • Images of traffic signs and road markings : Traffic signs and road markings may undergo small changes and specific cases when mapping turn restrictions using Mapillary. There are subtle differences in turn restrictions between Canada, US, and Germany. (This section is to be kept updated with new signages every time mapping is done in a separate country with new conventions)
  1. Turn restriction images in US

  2. Turn restrictions images in Germany

  3. Turn restrictions in Canada

  4. Turn restrictions in France

For more details on cases for turn restrictions and signages in different countries take a look at QA for mapping turn restrictions

Data sources and references for navigation data

  • DOT documents/websites: Local official websites, documents released by local Department of Transportation bodies.
  • Wikipedia: Exit and destination numbers, highways, highway refs. (must be verified on ground or with official sources)
  • High resolution satellite imagery: Bing, Mapbox, USGS, open satellite datasets (Landsat, Sentinel2, LISS, government opendata portals).

title: Mapping implicit turn-restrictions

What are implicit turn-restrictions?

Implicit turn restrictions are turn restrictions that are implied by local laws, safe driving norms, or the real-world physical layout of roads, but are not accompanied by explicit signs (posts or road paint). When a junction is missing an implicit turn restriction, a routing engine may direct the driver to make an illegal or dangerous maneuver.

Types of implicit turn-restrictions

Sharp turns between ramps or slip roads

Where highway exit ramps join a road implicit turn restrictions are often need. Often a highway off-ramp enters a road from one direction, and an on-ramp branches off in the opposite direction at the same spot or very close by. In these situations, it is sometimes logically possible in the road network to navigate from an off-ramp directly onto an opposing on ramp:

image

A similar situation can occur at the node where slip roads from a dual carriageway intersect a single carriageway:

image

In these situations a turn-restriction is needed to prevent us from routing from one ramp or slip-road directly onto the other. This maneuver is almost never legal or safe.

Here's another example, where the highway off-ramp and the on-ramp meet the road from the same direction.

image

Sharp turns against the grain of a slip road

Where a slip road leaves or meets a main road, you will usually need to add up to two turn restrictions.

The first restriction is from the slip road to the main road to prevent the sharp turn counter to the intended use of the slip road -- for example, a left from a right-hand-turn slip road.

The second restriction is from the main road to the slip road to prevent the sharp turn against the intended direction of the slip road -- for example, driving past an intersection, and then taking a sharp left/U-turn onto a slip road intended for use from the opposite direction:

These are a little tricky, make sure you understand both restrictions in the diagrams below.

image

image

Single/dual carriageway transitions

In general, U-turns are allowed on dual carriageways. However, things get a little tricky when dual carriageways transition to single carriageways.

Transitions elsewhere than an intersection

Sometimes a dual carriageway transitions to a single carriageway because without a real intersection -- the road is simply narrowing. In these cases a routing engine will interpret the node as an intersection and allow U-turns. We need to override that behavior by mapping a no-u-turn restriction at the intersection.

image

Transitions at an intersection

In contrast, where a dual carriageway becomes a single carriageway at an intersection with other roads, it is treated just like any other dual carriageway intersection. In these cases, no implicit turn restriction is needed.

image

"Sausage Roads"

Sometimes, dual carriageway intersections is modeled like "sausage links", meaning a mapper has collapsed the road down to a single link at each intersection. This looks like a dual-carriageway to single-carriageway transition, but really nothing has changed.

We should remodel these as proper dual-carriageway intersections.

image

image

Once the road has been remodeled, apply turn restrictions for highway ramps and slip roads as normal.

Complex intersections and micro-loops

Where multiple dual carriageways, ramps, slip roads, and/or single carriageways join, the complex network of crossing ways can create unpredictable routes. For example, "micro-loops" can enable unintended U-turn options:

image

When working with an intersection like this, keep a close eye on all possible maneuvers at each node, and see if each should be permitted or restricted. Test your work in the routing engine to make sure it behaves as you expect, and don't hesitate to ask for a second set of eyes.

Mapping implicit turn-restrictions

Mapping implicit turn restrictions is the same as adding a regular turn-restriction with one addition: we add an extra implicit=yes tag to implicit turn restrictions to differentiate them from explicitly signed restrictions.

image

Just as for regular turn restrictions, there are situations where implicit turn restrictions can be added as either no or only restrictions. In these circumstances, feel to free to use whichever approach you find most clear.

image


title: Intersection Modeling

An Intersection is where two or more highways meet or cross each other. The traced highway should represent the traffic flow for a navigation software to provide turn-by-turn instruction.

Source Wikipedia By Mike Gonzalez CC BY-SA 3.0 via Wikimedia Commons

Over the history of OpenStreetMap, mappers have used different approaches to model various types of intersections. The more the number of roads intersect, the more complex the intersection becomes. In this guide we are capturing different cases of intersections with some best practices and recommendations to follow during mapping.

Intersection types

Intersection of two bi-directional ways

A bi-directional highway allows traffic flow in both directions without any physical separation. All the ways passing through the intersection should intersect at a common point to form a junction.

647b69e7-df1d-4c8f-a2e7-4683add94e5b

Bi-directional intersection with traffic island

Bi-directional highway intersection with small traffic island do not require separation in the road geometry. Instead, add the traffic_calming=island tag on the node where the divider begins.

2bef62e9-251e-4c44-a2bc-885f63f722be

Intersection between a bi-directional highway and dual-carriageway

A dual-carriageway is a physically divided highway where the traffic flows in opposite directions. When a dual-carriageway and a bi-directional highway intersect at a junction, they should be modeled to follow the traffic flow rule by intersecting in parallel and perpendicular to each other. Merging the highway nodes (in a sausage shape) in the middle of the junction leads to confusing turn announcement and route line.

369edbb9-e444-468d-9aec-0e327c2ce62a

Intersection between dual-carriageways

An intersection where two dual-carriageways intersect should be perpendicular to each other (in the form of #). Avoid merging the two ways in the middle of the junction.

770400a9-3a26-4051-af97-2deb552386ff

Three-way intersection

A three-way intersection has three arms meeting at a single point forming a T-shape (perpendicular connection) or Y-shape (non-perpendicular connection). It is not necessary that the highways meeting this junction should be perpendicular to each other but they should not be merged in the middle of the junction.

Y-shaped intersection

fe3ffc25-da37-484a-b1b1-5dc4a383a2af

4bfd7091-4b52-46f6-9bb9-e3f207a54926

T-shaped intersection

0bc57f7e-1407-43f7-b5d5-5eef516d92a1

Merging after intersection

In the real world, there are dual-carriageway which becomes a bi-directional highway after crossing the junction. These intersectiona are tricky to map as there are many ways of modeling such intersection which will replicate the actual traffic flow. After testing different models, merging the junction after crossing the intersection worked well in cases of turn announcement and guidance.

The merging of dual to bi-directional highway shouldn't make a sharp angle too close to junction - keep a distance of 10-20 meters from the intersection. This type of modeling keeps the balance between cartography and navigation approach to mapping. (Based on the discussion in the US-Talk mailing list)

Intersection between dual-carriageways and bi-directional highways

Here are several examples of highways changing from dual-carriageway to bi-directional highway. Best practice is to form a # in the middle of the junction then merge the dual-carriageway afterwards.

4d12d492-c719-42b3-a434-30b098e12399

Intersection between three dual-carriageways and one bi-directional road

0d193a5b-ac3e-4e14-a521-6630711af25b

Intersection between two dual-carriageways and two bi-directional roads

On a four-way intersection where there are two dual-carriageways changing to a bi-directional highway, form a # at the intersection then merge both the dual-carriageways after the crossing.

cfcc5218-6f91-4584-99f2-305d58b5f01e


title: Modeling Circular Junctions

A roundabout is a type of circular junction where multiple roads meet and vehicles are directed around an island at the center of the junction in a one-way traffic flow.

image

💡 Studies by the Federal Highway Administration have found that roundabouts can increase traffic capacity by 30 to 50 percent compared to traditional intersections.

https://www.wsdot.wa.gov/Safety/roundabouts/BasicFacts.htm

Roundabout types

Mini-roundabout

Mini-roundabouts, are smaller than typical roundabouts, have a right of way and a traversable center island. The center island can be a painted circle or a low dome but must be fully traversable by vehicles. They are also often replaced by stop signs at four-way intersections to slow traffic speeds and reduce accidents in residential neighborhoods that are not designed to accommodate larger vehicles. Vehicles are required to treat the center island as if it were a solid island and drive around it.

image

Mini-roundabouts are sometimes grouped in pairs (a double mini-roundabout) or in "chains", simplifying navigation or otherwise awkward junctions.

image

Pictured along Brookmount Road. It is intersected by Tamlaght Road. © Copyright Kenneth Allen and licensed for reuse under Creative Commons Licence.

💡 In the UK – as well as other highway jurisdictions – the maximum size for a mini-roundabout is 28 meters ICD (inscribed circle diameter).

How to map a mini-roundabout

image

Select the intersection node and add highway=mini_roundabout tag. The default direction of a mini-roundabout is counterclockwise 🔄. Please specify the direction=* only if the flow of the traffic is in clockwise 🔁 direction.

As the wiki suggests, we mark mini-roundabouts at the place of the traversable center point. In the case of roundabouts with a traffic island in the center, if there is a roundabout sign, tag it with junction=roundabout and traffic_calming=island tags on the node of the intersection, otherwise put only traffic_calming=island tag.

image

Mini-roundabouts are always have to be represented by a node. Alternatively, one can draw the roundabout as a circular line in the direction of traffic flow and tag it with highway=residential|unclassified, oneway=yes and junction=roundabout tags.

Common Misconceptions

What is not a mini-roundabout?

  • Traffic calming island in the center of a junction – traffic_calming=island
  • Turning circle – this is a circular feature with a traversable center point, which allows vehicles to turn around – highway=turning_circle
  • Turning loop – this has the same function as a turning circle but with non-traversable center point – highway=turning_loop
  • Smaller roundabout, but not a mini-roundabout. Treat it the same as a large roundabout, and for consistency put junction=roundabout tag on the node of the junction.

See examples of mini-roundabouts in the OpenStreetMap Wiki.

Roundabout

A roundabout is a generally circular road junction where the traffic inside circle has right of way. These are tagged with junction=roundabout tag. This tag is only used for road intersections where traffic in the roundabout has right of way in the absence of a traffic signal.

image

How to map a roundabout

To indicate a roundabout — draw a closed line in the direction of the traffic flow, which aligns to satellite imagery just as one would while tracing a road. Tag the line with junction=roundabout tag and the appropriate highway=* tag.

Roundabouts are implied to be one-way roads, but you may specify this explicitly by adding oneway=yes tag. Additionally the number of lanes=* in the circle (typically 2, where long vehicles will need to use both) can also be tagged.

Connect all the highways which meets the roundabout based on traffic flows. If a dual carriageway shares traffic with the roundabout, connect each its direction (one arriving, one departing) separately to the respective exit and entrance nodes on the roundabout.

Don’t use the same node as entrance to and exit from a roundabout. Each road has to be connected with the roundabout in a separate node.

6c220270-9bfa-4015-a104-95a6a56ad60e

When two roads share the same exit/entrance node connect them before the roundabout and not at the roundabout.

image

Roundabout shapes

Roundabouts are not necessarily circular in shape: there are roundabouts that are oval-shaped or D-shaped (with a straight segment – often created on a square whose one side is along an avenue).

image

See examples of roundabouts in the OpenStreetMap Wiki.

Traffic circle

A traffic circle is a type of intersection that directs both turning and through traffic onto a one-way circular roadway. Contrary to a roundabout, where entering traffic always yields to traffic already in the circle and merges in directly, the entrances to traffic circles are three-way intersections often controlled either by stop signs or traffic signals, but not in all cases.

image

The size of circular junctions can vary from small to very large with several lanes. However, generally the circular junction should not contain a road network within itself. This means circular ring roads around a city are not circular junctions. To designate a circular junction use junction=circular tag.

How to map a circular junction

To add a circular junction, use the same approach as you would for drawing a roundabout. Draw a circle line and tag it according to the roadclass of connected roads. Mark all nodes that correspond to traffic lights or traffic signs that control traffic flow within the roundabout.

If a traffic circle or roundabout is bisected by further roads that use different parts of the circle, you may split the closed line into segments with similar tagging and add each segment to its respective route relation.

image

Junctions that are not roundabouts

Hamburger roundabout/throughabout/cut-through

In spite of their name, Hamburger roundabouts, also known as throughabout or cut-through, are not roundabouts. In this situation the tag junction=roundabout has to be avoided..

5aba6fcf-3eb8-46c6-9f36-7a229bffe0ba

Turning circle

A Turning circle is a circular feature with a traversable center point, which allows vehicles to turn around – highway=turning_circle

image

Turning loop

A turning loop is similar to a turning circle but with a non-traversable center point.

image

The tag highway=turning_loop is used for a node to indicate a widened area of a highway with a non-traversable island for turning around. These loops are often circular and located at the end of a road.

image

"Magic" roundabouts or ring junctions

"Magic roundabouts" direct traffic in both directions around the central island. In order to connect the inner and outer ring with the adjacent roads, small roundabouts or mini-roundabouts are used. Drivers on mini-roundabouts have the right of way, unlike those who are on the inner or outer ring of the magic roundabout. Each nodal element of such a structure, represented by a roundabout, can be considered as an independent intersection that is connected to the rest of the intersections (roundabouts) via link roads.

image image

See also


title: Remodeling Dual-carriageways

image

A divided highway (also separated highway) is any highway where traffic flows are physically separated by a barrier (example : grass, concrete, steel), which prevents movements between said flows.

OpenStreetMap wiki

We oftentimes come across cases where a bi-directional highway should be mapped as a dual-carriageway to better represent what's on the ground. OpenStreetMap mappers have adopted different approaches to mapping dual-carriageways based on the source of data, local community best practices and personal preference.

Our basic rule of thumb are:

  • Keep things simple, add complexity only when necessary.
  • Dual-carriageway should have a physical barrier visible from imagery or a road marking that shows its illegal to pass on the other side.
  • Enough length of the physical divider is present.
  • During remapping, all other elements (for example, turn lanes, turn restrictions, route relation, etc.) associated to the road should be re-tagged based on remodelled road.

Identifying highway separators from imagery

Satellite imagery is the common reference to identify the physical barriers present between highways. There are two types of separators identifiable in satellite imagery.

image

This guide distills best practices in identifying these road separators and improving road network in OpenStreetMap by re-mapping bi-directional highways to dual-carriageways under various scenarios of existing data.

Mapping bi-directional highway to a dual-carriageway

General approach

image

In the above example, physical barrier is present at East Weber Avenue from North Stanislaus to Aurora Street. This highway section should be modelled as dual-carriageway. As the highway don't have any special tags like turn lanes or turn restriction, re-mapping to a dual-carriageway is straightforward. There are two different ways to remap a bi-directional highway to a dual carriageway.

Option 1

  1. Select the bi-directional highway.
  2. Align the existing highway to one side of the dual-carriageway.
  3. Trace the other segment of the dual-carriageway.
  4. Copy the tags from the original highway to the newly created way.
  5. Add oneway=yes for both ways (mandatory).
  6. Make sure all the highways issues associated with remodelled road are fixed like - alignment based on Satellite imagery, crossing, overlapping or unconnected highways.

Option 2

  1. Align the existing highway to one side of the dual-carriageway.
  2. Select the original way.
  3. Use the Make parallel copies of ways - (Shift+P) to create parallel highways.
  4. Click the Make parallel copies of ways (Shift+P).
  5. Drag to create a new way parallel to the selected way. This copies all the tags from the reference way.
  6. Connect and align both ways to the road network. Use Merge Nodes (M) or Join Node to Way (J).
  7. Add oneway=yes to both ways.
  8. Reverse (R) way direction of the copied way.

When turn lanes are present

image

Powell street was mapped as a bi-directional road. Turn lanes were added later on as turn:lanes:forward and turn:lanes:backward. When re-mapping as dual-carriageway, we will change the turn:lanes:forward and turn:lanes:backward to turn:lanes. To visualize and edit turn lanes, we will use the Lanes and road attributes map style and the Turnlanes tagging plugin in JOSM. Check our guide on how to activate the style and plugin in JOSM.

  1. Change the bi-directional highway to a dual-carriageway using the Make parallel copies of ways (Shift+P). 92eadb49-1446-40b7-b9b0-5f9ed77d9787
  2. Remove turn:lanes:\** added before. c52873f0-e461-4c49-bee4-a30a2667ec24
  3. Add the oneway=yes tag. Reverse (R) the way direction to follow the traffic flow. fd81cf64-3f9f-4631-b973-5e08fff280e6
  4. Select the highway that needs turn lanes update. In this example, we will add turn:lanes=left||**. 38b6d6aa-ac97-47e8-83c4-ea8db8c78d11
  5. In the menu, click Data > Turn lanes tagging - editor (Cmd+T) to activate the Turn lanes editor dialog. 92538592-774b-49c5-8b49-0c9bba3efb8e
  6. Use Turn lanes editor dialog to specify Number of lanes and turn:lanes directions. Use the satellite imagery for the reference. 857242f6-9574-440a-be8a-2bf2bcf095ad
  7. Add the turn-lanes for all the other highways.

When turn restrictions are present

b6b1cdc3-d569-4aeb-b27b-eb1908ad17c0

Taking a U-turn along Griffin Road is illegal. Griffin Road was mapped as bi-directional road with a no_u_turn restriction relation. After re-mapping as dual-carriageway, we need to make sure that the relation have the correct members and roles.

  1. Create the dual-carriageway by using the Make parallel copies of ways (Shift+P). Make sure all relevant tags are copied to the other way (i.e. oneway=yes). 94020f63-029a-48f3-af5b-94f06dc035be
  2. Verify the turn-restrictions from street-level photos (i.e. Mapillary plugin or OpenStreetCam plugin) in JOSM. 4a558d6d-2e17-4bdb-b8c8-648f64009ec1
  3. Edit the members of the turn-restriction relation. In this case, we make the recently created highway=tertiary as the new via and the highway=primary highway going east as the new to member.
  4. Select the relation in the list. In the Relations dialog, click the Call relation editor for selected relation to open the Relation editor. d8788d89-48d9-4f4e-9553-ad818eb6faac
  5. Delete the existing to and via members by selecting them in the Members. Click the Remove the currently selected members from this relation (+) to delete.

f987b39d-f458-4a30-a992-f14c93faa2cf

  1. Add the new members by selecting in the main map view to show in Selection. Click Add all object selected ... to include them in the relation.

e8cf6083-7e88-48e1-b285-5a08d87dbd0a

  1. In the Members dialog, add the roles. Once completed, click OK.

1ef4fa24-5b8c-41de-84d6-5d77af226969

When route relations are present

Route relation describes a predetermined route for different type of transport like state routes, bus routes, bicycle routes and many more (OpenStreetMap Wiki). These are oftentimes long and affects many feature along the route.

Before re-mapping any highway as dual-carriageway, check the tags and relations the highway is part of.

Check data for tags/relations

  • Select the highway segment which needs remodeling as dual-carriageway and check the tags/relations highway contains.

423d3da6-fb4c-45c8-b91d-9b3d9d4828d4

  • If the selected highway contains route/bus relations, download all the members of the relation.

    • Right Click on the relation.
    • Select Download Members from the options to download all the members which are part of selected relation. image
  • Once all the members of relation are downloaded, extend the downloaded area around the intersections where re-mapping is required. image

Re-mapping to dual-carriageway

  • Change the bi-directional highway to a dual-carriageway using the Make parallel copies of ways (Shift+P).

8bfbb523-21b9-4a26-bcd9-e4e99bf3b02a

Fixing members of route relation after re-mapping

The re-mapping added new segments which should be part of the existing relation. All members of the relation should be connected and not broken in the middle.

Examine the relation

  • Select the relation and inspect the start/end and the missing members in the middle.
    • Right Click on the highway segment with relation and select Select Relation from the options. This will select the relation and will be able to visualize the missing members in the relation which are breaking the continuity.

image

  • Zoom out in the map view of Data Layer to see the selected relation.
  • The highlighted pink segments are all the members which are part of the relation and all the segments in the middle are missing members of the relation.

12edf265-1e5f-4af6-9e40-4c3b4d605b56

JOSM setup to fix relation

  • After identifying the missing members in the relation, download the area around the around the missing members to help in better relation fixing.
  • Download Relation Toolbox plugin which helps in interfacing with relation members.

image

Add members to relation

  • In case of multiple relation, keep note of the relation ref and name to make sure members are added to right relation.
  • Adding members
    • Select relation in Relation Toolbox to which new members to be added. 65fa3b7b-010a-4d5d-bfe8-b57b0b0731a5
    • Select the above identified missing highway segments one at a time and click ➕ to add it into selected relation. Yellow halo around the highway indicated it to be part of select relation.

92b7d977-c9de-4623-b48b-e19d1eef16dc

  • Follow the above step until you all the missing segments identified.
  • After adding all missing members, select the relation and check if the there any any missing pieces.
  • Completely connected relation.

4b574c5c-63c3-40ab-986d-5addfb50ed96

  • If there are more than one relation, make sure to follow the above steps by downloading each relation members and adding members to the right relation.

Mapping crossroads

Dual-carriageway crossroads are important to provide turns where there are available turns in longer stretches of highways. If these roads are left unmapped the routing engine often recommends longer routes instead of using the crossroads to reach destination faster.

Crossroads found in areas that is not a intersection serves as a channel to take a U-turn or to connect to a nearby highway.

Common type of crossroad

185c1760-2bb5-439b-901d-b63b336e4e1a

Mapping crossroads with/without lane indications

  • Trace the road based on satellite imagery (refer to Mapping roads and paths guide).

  • Tagging of crossroad must follow the *_link of the highway it is connects.

    Example - If main highway is highway=secondary, the crossroad should be tagged with highway=secondary_link.

image

Mapping crossroads with directional lane bays

  • Trace the road based on satellite imagery.

  • Directional lane bay crossroads must be oneway.

  • Tagging of crossroad must follow the *_link of the highway it is connects.

    Example - If main highway is highway=secondary, the crossroad should be tagged with highway=secondary_link.

1929b463-9cc8-41fc-9b40-17f04cd54764

See also

Clone this wiki locally