Proposed features/traffic signals=crossing only

From OpenStreetMap Wiki
Jump to navigation Jump to search
Status: Rejected (inactive)
Proposed by: Lukas458
Tagging: traffic_signals=crossing_only
Applies to: node
Definition: Adds a new value for traffic_signals=* to make it possible to mark those highway=traffic_signals, which do only control a (pedestrian) crossing - mostly activated on demand. It is another "type" of lane-traffic signal. Without needing to have look at any crossing=traffic_signals or button_operated=yes, because their combinations can be misleading (please read on for more information).

Rendered as: no rendering
Drafted on: 2020-04-12
RFC start: 2020-04-13
Vote start: 2020-05-01
Vote end: 2020-05-15


traffic_signals=crossing_only is an under-tag of highway=traffic_signals and indicates that the highway=traffic_signals-node(s) is/are controlling only a (mostly pedestrian) crossing and not a junction or something else (so traffic lights on „free route“ are meant). The lane-traffic lights are often activated on demand only in these cases


1. Please look at how crossing-only traffic lights are mapped until now

Often, there is just one node, tagged with highway=crossing + crossing=traffic_signals at the middle of the crossing, at the moment. This not wrong, but highway=traffic_signals isn't used at all in these cases.

2. Why to change that? This proposal does not really want to change the way of tagging, it wants to make an addition. It should be possible to use highway=traffic_signals also for the „crossing-only“ traffic lights.

3. Why is there an addition needed for tagging crossing-only traffic lights? Because highway=traffic_signals is for tagging all kinds of lane-traffic lights. Their definition is: „A traffic signal (or a set of those) for regulating circulation“. This definition makes no limtiations. In every case where lane-traffic sees a traffic signal, highway=traffic_signals should be used. And this includes the „crosing-only“ traffic lights, too. The cars „see“ a traffic light there.

Note that some mappers do this already, with tagging highway=traffic_signals + crossing=traffic_signals on the same node for „crossing-only“ traffic lights. That's also not wrong, but highway=cossing is replaced in this case. This proposal does not want to evaluate that, whether it's good practice or not. Both variants are documented. Another variant is, to use several nodes: One for the crossing (highway=crossing) and another for the lane-traffic light (highway=traffic_signals).

But why is traffic_signals=crossing_only needed then? It's needed to make a differentiation of which highway=traffic_signals we have. I believe it fits into the actual definition of traffic_signals=*: Gives details about the type or function of traffic signals. And „crossing-only“ is a special type, to me. One important thing is, that their circuit it very different from those traffic lights which control a crossing and a junction for example, because the „crossing-only“ ones are often activated on-demand only.
It's important for car routers, because concerning the penalty a car/vehicle router has to put on a highway=traffic_signals-node, they can distiguish between

  • those traffic lights are only then red when a pedestrian appears and wants to cross
  • and those traffic lights which are more probably red and lane-traffic may have to wait longer there, because the traffic lights are controlling (also) a junction (or something else).

Examples (pictures)

Bild 11.png
This is an on-demand traffic signal, which is controlling only a crossing. The lights for the lane-traffic are activated first when a pedestrian wants to cross.

Bild 1.png
Also this an crossing-only traffic light. It's default mode is "off" for the lane traffic and there are only two lights, for the yellow and the red spot.

Bild 12.png
These traffic lights are contolling only the crossing, too - not the nearby junction. Note that in this case the default mode of the lane-traffic light is not "off", but "green".

Examples (tagging)

Image Tagging
Crossing=traffic signals.png
Variant A: Single pedestrian crossing with traffic lights, crossing not separately mapped from the lane-traffic lights
Traffic signals no intersection.png
Variant B: Single pedestrian crossing with traffic lights, crossing separately mapped from the lane-traffic lights
Traffic signals no intersection pedestrian separate.png

What's the difference between highway=traffic_signals + crossing=traffic_signals + button_operated=yes?

The difference is that traffic signals which control a crossing but a junction too, can have buttons for pedestrians as well as traffic signals which do only control a crossing. At least in Germany it is like this. With looking at button_operated, you cannot clear whether the traffic lights are controlling only an on-demand crossing or a crossing and a junction or something else, too.

What's the difference between using highway=traffic_signals + crossing=traffic_signals just on the same node to express that's a crossing-only traffic signal?

Please note that highway=traffic_signals + crossing_traffic_signals is used on the same node not only when it's a "crossing only"-traffic signal. Please just have a look at - these traffic lights are controlling the crossing as well as the nearby junction, and they are mapped not wrong. There's just one node together for the lane traffic lights and the crossing. But you cannot concluse that traffic lights which are mapped like this do only control a crossing.

Explanation why this information on traffic lights is needed

We have to clear some things first before we can answer this question.

  • 1. For car routers, it's not possible to count all highway=traffic_signals (with passing traffic_signals:direction, of course) AND all crossing=traffic_signals, because highway=traffic_signals and crossing=traffic_signals can be very nearby and can belong together – they can, but they don't have to. So, if a car router would take all highway=traffic_signals AND all crossing=traffic_signals into account, it would count many sets double. Because you can have one set of traffic lights where you appear, but you're driving for example along two pedestrians crossings after the one traffic light for your car. That's the reason why car routers have to count only the highway=traffic_signals on their route. Surely, some of them are on the same node as crossing=traffic_signals, but not all of them are, and that is also correct like this. In some cases the same traffic light controls the pedestrian crossing and the lane-traffic, in some others not.

  • 2. When you as a router go along the route and looking only for the highway=traffic_signals on your route, you cannot find out what the traffic signals are controlling: a junction or just a crossing? Looking at the distance to the next crossing=traffic_signals or at whether they are used together on the same node is also not possible, because after a highway=traffic_signals, there can come a crossing=traffic-signals on a node nearby, but the last highway=traffic_signals can control a (also nearby) junction nevertheless.

  • 3. Looking at the point where the highway=traffic_signals are (junction point or not junction point) is also not possible, because traffic lights which are controlling a junction, in OSM can be mapped on the stop lines as well, especially when one road of the intersection has dual carriageways.

  • 4. Looking at the crossing=traffic_signals which ones hava a button_operated=yes and which one a button_operated=no is also not possible, because first I already described that it is not useful to look at the crossing=traffic_signals (see above), and second also at those traffic lights, which control a pedestrian crossing AND a junction, there can be buttons for the pedestrians at the crossing, even though the highway=traffic_signals would turn red sometime to let the other lane direction cross the intersection, so these two things have nothing to do with each other.

So in conclusion, traffic_signals=crossing_only makes it easy to mark all traffic lights which do only control a crossing, with fitting into the existing traffic_signals=*-tagging scheme.

Summary of what has been discussed on the tagging mailing list so far

There had been some discussions about whether this tag is needed at all, because some people did not see whats' the difference between just tagging highway=traffic_signals + crossing=traffic_signals + button_operated=yes just on the same node and showing by this that it is a "crossing-only" traffic light. But as I mentioned here, this combination ("everything" on the same node!) can appear even when the traffic light is not only controlling a crossing, but a crossing and also a junction. Especially in Germany this tagging is not very uncommon. We did not see the real chance to change this, so this is the reason why an traffic-light undercategory, tagged with traffic_signals=crossing_only, is needed to mark which highway=traffic_signals do only control a crossing.

Furthermore, there was the consensus that when there are traffic lights which do only control a crossing, highway=traffic_signals + crossing=traffic_signals + button_operated=yes on the same node has to be tagged. But still, some mappers may use "micro mapping" and use own nodes - one for the car traffic signal and one for the crossing one. That's also not wrong.


Instructions for voting
  • Log in to the wiki if you are not already logged in.
  • Scroll down to voting and click 'Edit source'. Copy and paste the appropriate code from this table on its own line at the bottom of the text area:
To get this output you type Description
  • I approve this proposal I approve this proposal.
{{vote|yes}} --~~~~ Feel free to also explain why you support proposal.
  • I oppose this proposal I oppose this proposal. reason
{{vote|no}} reason --~~~~ Replace reason with your reason(s) for voting no.
  • I abstain from voting but have comments I have comments but abstain from voting on this proposal. comments
{{vote|abstain}} comments --~~~~ If you don't want to vote but have comments. Replace comments with your comments.
Note: The ~~~~ automatically inserts your name and the current date.
For full template documentation see Template:Vote. See also how vote outcome is processed.

  • I approve this proposal I approve this proposal. --EneaSuper (talk) 11:45, 10 May 2020 (UTC)
  • I approve this proposal I approve this proposal. --Lukas458 (talk) 16:33, 1 May 2020 (UTC)
  • I approve this proposal I approve this proposal. I've been using traffic_signals=pedestrian_crossing for that aim before, but I think your proposal fits well because of the "only"-section. --User4711 (talk) 15:01, 1 May 2020 (UTC)
  • I abstain from voting but have comments I have comments but abstain from voting on this proposal. The documented standard tagging for the situation in this example image is highway=crossing rather than highway=traffic_signals. --Tordanik 19:00, 1 May 2020 (UTC)
Hi Tordanik, yes, you are right. Thanks for adding your opinion. In the grid of How to map (new) both variants are mentioned for this case. highway=traffic_signals does not appear at all in the tagging variant using highway=crossing. Tagging it like this is also not wrong, but there seems to be no information that the lane-traffic does have a traffic signal, too. How can a car router recognize this? It can put a penalty on crossing=traffic_signals, too, but there we are at the next problem. It would have to filter, because hw=crossing + crossing=traffic_signals can appear also after highway=traffic_signals or before it and they can have a relation to each other. To make it possible to use highway=traffic_signals AND highway=crossing+crossing=traffic_signals together on "just crossing" traffic lights, I added this: - with this tagging variant, everything is pictured. Please note this was not a variant I just introduced myself, I saw some usages of it before and then I added it. Maybe it's a bit too micro-mapping-styled, but with adding traffic_signals=crossing_only to the highway=traffic_signals node, everything is ok again and the variant I mentioned does not get in conflict with tagging highway=crossing + crossing=traffic_signals then, as you mentioned completely right. So, I hope it was not too much text to understand... --Lukas458 (talk) 19:15, 1 May 2020 (UTC)
  • I oppose this proposal I oppose this proposal. It is not necessary to develop a new tagging, because with the usual tagging is absolute sufficient, to identify pedestrian crossings of highways with single traffic lights. The only aim for this proposal is tagging for routers. IMHO the programming of the router has to be adapted to the tagging.--osm-esa 11:09, 2 May 2020 (UTC)
Hi osm-esa, thank you for your opinion. From my point of view, saying this proposal would develop a new tagging scheme goes a bit too far. I mentioned "But this proposal has not the aim to cancel Variant A, because it's also used and practiced in many cases. It would be a big discussion and looking at the practice, there seemed to be no consensus to deprecate Variant A of tagging, so this proposal just wants to add something (traffic_signals=crossing_only)." to say this proposal just wants to add something.
It's not a new way of tagging, it's an addition. See the both examples of tagging. Both tagging variants are valid. But now you would ask, why the addition is needed at all. It's because highway=traffic_signals + crossing=traffic_signals on the same node is NOT only used "to identify pedestrian crossings of highways with single traffic lights". See the example mentioned in "What's the difference between using highway=traffic_signals + crossing=traffic_signals just on the same node to express that's a crossing-only traffic signal?". This proposal looks at the current tagging situation, and so it wants to make an addition, not a change of actual tagging. highway=traffic_signals + crossing=traffic_signals on the same node can stay, traffic_signals=crossing_only would be an addition.
  • I approve this proposal I approve this proposal. --Protoxenus Good idea. Yeah, it's tagging for the router. If we don't differentiate between the traffic on which the traffic light affects (pedestrians, cyclists or traffic on the roadway), we would have to put the traffic lights consequently in that place where they are physically located (not in the middle of the road or crossing) and then use tags to indicate to whom the traffic light signal is valid. --Protoxenus (talk) 10:48, 2 May 2020 (UTC)
  • I approve this proposal I approve this proposal. I think it's good to have a documented meaningful tag for this type of traffic signals and replace all the undocumented values like crossing, pedestrian_crossing etc.--Mapper999 (talk) 12:53, 2 May 2020 (UTC)
  • I oppose this proposal I oppose this proposal. Whether you agree or not, currently traffic_signals=* is used to express the configuration of the traffic signal (viz blinker, continous_green, blink_mode; although ramp_meter and emergency is sort of implicit), instead of the use. In comparison, it is not clear what the vehicle signal for any given mid-block crosswalk in a jurisdiction would be. For example, it may be steady green at normal times, or only light up when activated. So concerning "Looking at the point where the highway=traffic_signals are (junction point or not junction point) is also not possible, because traffic lights which are controlling a junction, in OSM can be mapped on the stop lines as well, especially when one road of the intersection has dual carriageways.", won't it be better to tag this instead? Also, "These type of traffic lights are often also found on "_link"-ways." is not usually true on slip lanes of an intersection, because these are often coordinated/synchronized to control the merging point as well. Since you already highlighted "As the value is already saying it, please use traffic_signals=crossing_only only then, when you are completely sure that the set of traffic lights is really controlling only a crossing. So, the traffic lights meant are not nearby to junctions. Traffic lights which control also a crossing, but do this as well as controlling a junction for example, are not meant by this proposal.", it shows this is very much concerning and challenging to verify at many times. -- Kovposch (talk) 14:52, 2 May 2020 (UTC)
Hmm, yes, I can see your points. How can we go on with this? I think when the traffic lights are on "free route", it would be easy to identify them because there is "only the crossing" and "nothing else". Concerning the "_link"-ways and traffic lights near junctions it's tricky, you are right. Maybe I should remove the sentence with the "_link"-ways? In Germany, the situation concerning this is like this: Do you see the traffic lights have only two spots? I know that's not an argument, but behind the traffic signal (not at it's point, that's the difference) there comes a give_way-sign. If this is the case, in Germany it's clear that it's a crossing-only traffic light, because vehicles have to give way afterwards. That the point people in this country see that the give_way-sign is not for when the traffic lights is off, but also when having stopped at the traffic light you have to give way after this point as well. The give_way-sign would have another position if the traffic light would stand in relation to the nearby junction. But it might be different in other countries.
The other thing is "so-and-so" I think. Some values of traffic_signals=* specify the configuration, as you said, but I think "emergency" and ramp_meter" are also usages. --Lukas458 (talk) 15:42, 2 May 2020 (UTC)
Hi, thanks for your comment. In a way you are right, yes. I also believe that using crossing=traffic_signals + highway=traffic_signals on the same node is not a good way. I mentioned it in this proposal, but wanted to abstain from eveluating this really. But it might be that that's not really possible because the two things are in a so close relation to each other. My first purpose was in a way to discourage variant A, but after a talk on the tagging-mailing list there seemed to be no consensus of whether to use highway=traffic_signals together with crossing=traffic_signals or not. Some mappers use it, others not. The variant B I added (but I've seen also some uses of it in the database before) is a compromise. It's the only thing neither getting in conflict with highway=crossing nor banning highway=traffic_signals at all for these cases. Your idea of adding the information to the highway=crossing is not bad, but I still believe we wouldn't get the highway=traffic_signals + crossing=traffic_signals discouraged completely. I tried, maybe not enough, but then I thought it's not worth the effort. JOSM renders this as two traffic lights, like a shortcut. And that's how mappers use it. On the mailing list some people said: "When the same traffic signal controls pedestrians and cars" (so meant was the same pole of a traffic light, as I understand it), "it's ok to tag this so". Furthermore, the removed sentence-part "highway=traffic_signals means traffic lights for cars" is true, yes, but what was really meant with that? Should that really mean not to use it for crossing-only traffic lights? Cars "see" a traffic light there. I do not say it was good to remove/change that on the page of highway=traffic_signals, but I believe it should be an demarcation to show that traffic lights for (crossing) pedestrians are not meant with it. But the "traffic lights for cars" you can interpret so and so. So even it's more effort or needs more nodes, for all mappers which want to use highway=crossing what is completely right and a good way of usage, I recommend variant B, as it's the only "real" compromise I believed being senseful to work out. The other variant will stay documented (as it stays used), but a warning is added.--Lukas458 (talk) 09:50, 9 May 2020 (UTC)
  • I abstain from voting but have comments I have comments but abstain from voting on this proposal. --Nw520 (talk) 20:53, 8 May 2020 (UTC) support withdrawn per Mateusz Konieczny. --Nw520 (talk) 09:17, 10 May 2020 (UTC)
  • I oppose this proposal I oppose this proposal. per "currently traffic_signals=* is used to express the configuration of the traffic signal (viz blinker, continous_green, blink_mode)". Blinking crossing only traffic light would not be possible to ta tag properly. Mateusz Konieczny (talk) 09:21, 9 May 2020 (UTC)
Hi, what would be interesting to me is whether your did ever see a "blinking crossing only traffic light"? So I would be interested in whether they exist? If there are some, I do see the conflict. Maybe then we could change the thing to something like traffic_signals:responsibility=crossing_only for solving that, but a new and maybe long key would be needed. But imagine of a traffic signal which is blinking every day (blink_mode), but only changes to red in cases when buses or trams need priority. We would also have the conflict then, but the difiniotn for traffic_signals=bus_priority says: "normally off or blinking yellow and changes to red to give priority to a bus or tram". So traffic_signals=bus_priority seems to overweigh traffic_signals=blink_mode in these cases. Could it be the same here?--Lukas458 (talk) 09:50, 9 May 2020 (UTC)
Mixing orthogonal values is never a good idea. And yes, I have seen constantly blinking crossing only traffic light (though there is no currently existing one within my city so I am unable to take photos with an example). Quick search found also "When rapid intermittent flashes of yellow light are exhibited at a place other than an intersection by a traffic control signal" and have more info (but it is case of manually triggered blinkers what is possibly yet another tagging). Found via <blinking traffic light on crossing> search. Mateusz Konieczny (talk) 18:51, 9 May 2020 (UTC)
I see, thanks for your examples. Okay, I think I will look how we can solve this issue and then post some ideas on the tagging-mailing list to work on this.--Lukas458 (talk) 19:41, 9 May 2020 (UTC)
Hmm, looking at the page for highway=crossing ( I saw that these crossings are tagged with crossing=uncontrolled and flashing_lights=yes or flashing_lights=always when they are flashing all the time, so I think that's completely sufficient for that. My proposed traffic_signals=crossing_only is an under-tag of highway=traffic_signals, but it seems that this tag isn't used at all for these amber flashing light-crossings. highway=traffic_signals should be used when the crossing's value is "traffic_signals", too. Not in other cases. Or is traffic_signals=blink_mode in use for these crossings?--Lukas458 (talk) 21:02, 12 May 2020 (UTC)
  • I oppose this proposal. reason
  • I oppose this proposal I oppose this proposal. A signal is a signal, the purpose doesn't apply for this key. I suggest creating a new key. --Floridaeditor (talk) 20:19, 9 May 2020 (UTC)
  • I abstain from voting but have comments I have comments but abstain from voting on this proposal. To me, the feature described in this proposal seems to be a subtype of highway=crossing. I think any tagging scheme that wish to express the existence of signal on such crossing should compatible with that existing tag. Unrelatedly, I think thay as highway=crossing already expressed the schematic that there exists a crossing, using "crossing_only" as value in this tag seems a bit counterintuitive. --C933103 (talk) 21:12, 9 May 2020 (UTC)

See Also


Please use the Talk:Proposed_features/traffic_signals=crossing_only for discussion.