Ideas to expand traffic signals

I feel like the current way of tagging traffic lights is fairly limited to what we can map. It’s particularly notable because the equivalent for railway signals is quite extensive, particularly these of trams which also use (their own) traffic lights.

Denoting the states of traffic signals

Most traffic lights come in three states: Red, yellow and green but it also is common to have only red and yellow or even yellow and green (a more controlled version of right-on-red so to speak).
Some of it can be implied by some traffic_signals values but others aren’t so much, not to mention the same signal type can use different states.

Another important point is that normal traffic signals can also have special states which aren’t universal e.g. a user on the shared_green thread noted that some vehicle lights for pedestrian crossings in Spain blink amber after some time (with the intention that cars can proceed but still give way to pedestrians).

Multiple traffic signals laterally

There also is the issue that multiple traffic signals can be placed next to each other which can be either different signals for different lanes or for different vehicles.

Highways aren't the only ones which can benefit from this

Tramways traffic lights can also come up like this i.e. the same position has two separate signals with their own phases (e.g. a signal for turning left and another for moving straight right with a side effect that some states are duplicated). This image is one such example and there doesn’t seem to be a good way to denote these on ORM either.

No differentiation for lanes

This is a classic example: Each lane has its own signal.
My preferred idea is that to use the *:lanes suffix even if it’s unusual to use it for nodes but the justification here is that you can read the lanes on the connected highway but it also only works if each signal is mapped separately.

Signals for certain vehicles

Related to get into the detail, the current tagging is mostly focused on traffic lights for vehicles with support for pedestrian signals (mostly in the context of crossings). However, bicycles and buses can have their own signal too, sometimes on the same lane.
Buses are particularly notable because they share these with trams rams signals (which do have an aforementioned detailed way of tagging) in many countries and in case where they’re shared, it’s only possible to do so if the highway is drawn over the railway (like single-lane and oneway) but otherwise can’t share nodes.

Wie basically have 2 types currently:

highway=traffic_signals

and

highway=crossing
crossing=traffic_signals

Which the later is for pedestrian crossings. Its important to have this seperation as their routing penalty is very different. A pedstrian crossing has neglectable impact on travel times for the crossing motor_vehicle traffic.

And this should be kept in mind when adding more traffic_signals variants. Which signals have which penalty for the pedestrian/motor vehicle traffic?

Flo

Communities of train enthusiasts long predate OSM so this is pretty much what you’d expect.

This is common in the UK too (although becoming less so over time). I think this is already covered by crossing=* or crossing_ref there.