Tag:highway=traffic_signals
![]() |
Description |
---|
A traffic signal (or a set of those) for regulating circulation. ![]() |
Rendering in OSM Carto |
![]() |
Group: highways |
Used on these elements |
Useful combination |
Status: de facto |
Tools for this tag |
|
- Not to be confused with traffic_sign=*
Traffic signals, also known as traffic lights, traffic lamps, signal lights and stop lights are signalling devices positioned at road intersections, pedestrian crossings and other locations to control competing flows of traffic.
Tagging
Traffic signals for cars
Key | Value | Element | Comment |
---|---|---|---|
highway | traffic_signals | ![]() |
Required. |
ref | * | ![]() |
Reference number or code, if present or at least assigned to specific traffic lights. |
traffic_signals | * | ![]() |
Additionally used to indicate special types of traffic signals, such as signals activated when emergency vehicles are leaving their depot, or signal that is normally blinking and turns red when tram is incoming. |
traffic_signals:direction | forward / backward | ![]() |
Indicates the traffic signals signal only the traffic moving in the same direction as the OSM (highway) way upon which the they are placed: forward; or in the reverse direction: backward. |
traffic_signals:countdown | yes / no | ![]() |
When there is display a countdown of the remaining time to wait or the time remaining where crossing. |
red_turn:right | yes / no | ![]() |
If cars (and cyclists) are allowed to make a right turn also if the traffic signal is red. (There's also a newer more general traffic_signals:turn with right_on_red and left_on_red.) |
red_turn:right:bicycle | yes / no | ![]() |
If only cyclists are allowed to make a right turn also if the traffic signal is red. |
Traffic signals for pedestrians
You can use highway=traffic_signals for pedestrian crossings to indicate the signals, that is, where to stop or where the button is located. For this, the pedestrian crossing should be a way with highway=footway or highway=pedestrian.
If the traffic signal is not separately mapped, the node that is the actual crossing between the road and highway=footway/pedestrian should be tagged with highway=crossing + crossing=traffic_signals.
Key | Value | Element | Comment |
---|---|---|---|
highway | traffic_signals | ![]() |
Required if the traffic light is mapped as separate node, else highway=crossing + crossing=traffic_signals |
button_operated | yes / no | ![]() |
Used to indicate that the traffic signals need to be activated by pressing a button. |
traffic_signals:sound | yes / no / locate / walk | ![]() |
Whether there are sound signals for visually impaired people. |
traffic_signals:vibration | yes / no | ![]() |
Whether there are vibrating signals for visually impaired and deaf people. |
traffic_signals:arrow | yes / no | ![]() |
Whether there is a tactile arrow available at the traffic light pole to indicate for blind persons in which direction the pedestrian crossing leads. |
traffic_signals:minimap | yes / no | ![]() |
Whether there is a small tactile map at the traffic light pole to indicate the crossing layout for blind persons. |
traffic_signals:floor_vibration | yes / no | ![]() |
Whether there is a device that lets the floor vibrate at walk signal. Often used near homes of deaf-blind persons. |
traffic_signals:countdown | yes / no | ![]() |
When there is display a countdown of the remaining time to wait or the time remaining where crossing. |
traffic_signals:floor_light | yes / no | ![]() |
Synchronized traffic light on the ground with green, red and/or yellow lights. Generally used for people who use the smartphone. |
Traffic signals for cyclists
If every signal is represented by its own single node (recommended), add a node with highway=traffic_signals on the place the cyclists has to stop and use the following tags to add additional details, see #Tagging also cycleway traffic signals for an example. In countries where cyclists are not legally vehicle drivers, it is good practice to also tag the crossing but only with highway=crossing and crossing=traffic_signals.
If the entire crossing is represented by a single node (not recommended as the attributes mostly differ from the traffic signals used for cars) add highway=traffic_signals to that node.
Key | Value | Element | Comment |
---|---|---|---|
highway | traffic_signals | ![]() |
Required. |
traffic_signals:direction | forward / backward | ![]() |
Indicates the traffic signals signal only the cycle traffic moving in the same direction as the OSM (highway) way upon which the they are placed: forward; or in the reverse direction: backward. |
button_operated | yes / no | ![]() |
Used to indicate that the traffic signals is activated by pressing a button. |
traffic_signals:countdown | yes / no | ![]() |
When there is display a countdown of the remaining time to wait or the time remaining where crossing. |
red_turn:right | yes / no | ![]() |
If you are allowed to make a right turn also if the traffic signal is red. (There's also a newer more general traffic_signals:turn with right_on_red and left_on_red.) |
traffic_signals:sound | yes / no / locate / walk | ![]() |
Whether there are sound signals for visually impaired people. |
bicycle | yes / no | ![]() |
Whether pedal cyclists are permitted to ride across the crossing. |
Other details
One of the most common values of road_marking=* is road_marking=solid_stop_line, corresponding to the line that indicates where vehicles must stop and wait for a red signal.
If the traffic signals are mounted on a mast arm or other gantry structure, draw a way corresponding to where it extends out above the roadway, then tag it as man_made=gantry. Do not connect the gantry to the highway=* way. Depending on the country and type of intersection, a traffic signal gantry may extend over the near and/or far side of the intersection or diagonally across the intersection.
Map the signal controller box as a node and tag it as man_made=street_cabinet, street_cabinet=traffic_control.
How to map
The mapping of traffic signals is an abstraction that the particular junction or way is regulated by traffic lights. It is not a representation of a particular device. Thus, because traffic signals can affect routing decisions, it is important that they are attached to the ways to which they apply, and not placed beside the way.
Simple intersections
For simple intersections, just tag the intersection node. The same applies to traffic signals which are not part of any intersection, e.g. before tunnels.
Complex intersections
Consider the following intersection:
The horizontal ways are actually one large way, represented by two one-way streets. The problem now is that traffic signals should ideally be applied to each way exactly once. As of now, there is no well established convention on how this problem should be ideally solved, but possible taggings which are currently in use are listed below.
Further discussion is welcome on the discussion page.
Tag all crossings
Add traffic signals to the common nodes in the junction. This will create two separate traffic signals for the vertical way. It is up to the routing software to count nearby signals as one for timing purposes. Many junctions are tagged this way due to simplicity.
Tag all incoming ways
Instead of putting a traffic signal on each crossing, put a traffic signal on all incoming ways of a junction on the place of the stop line. Traffic signals added to dual-ways need to be tagged with either traffic_signals:direction=forward or traffic_signals:direction=backward to indicate the affected direction. In the given example, this applies to the vertical way only, as the horizontal way is mapped with one-ways anyhow. It is up to rendering software to cluster traffic signal icons to avoid visual clutter.
Tagging also cycleway traffic signals
![](/w/images/8/8e/Traffic_signals_alternative_mapping.png)
As before, put a traffic signal on all incoming ways of a junction. The difference is an extended meaning of "incoming ways".
How to map (new)
Image | Tagging | |
---|---|---|
Traffic signal without intersection (e.g. before bridge), no pedestrian crossing | ||
On way tagged with oneway=yes/-1 | ||
![]() |
highway=traffic_signals + crossing=no[1] | |
On way tagged without oneway | ||
![]() |
highway=traffic_signals + crossing=no[1] + traffic_signals:direction=forward/backward | |
Pedestrian crossing without intersection | ||
Pedestrian crossings not separately mapped | ||
![]() |
| |
Pedestrian crossings separately mapped | ||
![]() |
| |
Simple intersection | ||
Pedestrian crossings not separately mapped | ||
![]() |
highway=traffic_signals + crossing=traffic_signals | |
Pedestrians crossings separately mapped | ||
![]() |
| |
Intersection of undivided and divided highway | ||
Vehicle traffic sign on intersection, pedestrian crossings not separately mapped | ||
![]() |
highway=traffic_signals + crossing=traffic_signals | |
Vehicle traffic signals on intersection, pedestrian crossings separately mapped | ||
![]() |
||
Vehicle traffic signals before intersection, pedestrian crossings not separately mapped | ||
![]() |
| |
Vehicle traffic signals before intersection, pedestrian crossings separately mapped | ||
![]() |
|
Named traffic signals/traffic signal systems (Japan...)
In some countries (such as Japan), people orient themselves in the local area using the names of traffic signals or traffic signal systems rather than the names of streets. While street names may also exist, they are less important for orientation. See Named spots instead of street names for details. Note that Korea and Nicaragua used named intersections, but these are tagged as junction=yes and reference_point=* respectively, not highway=traffic_signals.
For simple intersections (single node) or for single traffic signals on the open road (single node) simply use highway=traffic_signals together with a name=* tag.
Note: Do not use junction=yes at all if you have a named traffic signals. junction=yes is only for named junctions (which means that if a node is tagged with highway=traffic_signals + junction=yes + name=*, the tag "name" is the junction name).
Rendering
BlindMap. Pedestrian traffic signals with sound
Notes and references
See also
- traffic_signals:bicycle_early_release=yes
- crossing=traffic_signals - Traffic light controlled pedestrian crossings
- Relation:enforcement - to define an enforcement traffic signals ;
- type=traffic_signals_set
- Look and Listen Map - Blindmap
- railway=signal - A railway signal