NOTICE: is no longer in use from 1st March 2024. Please use the OpenStreetMap Community Forum

Hi there.

I've been trying to tag traffic lights which are activated by radar, i.e., above a certain speed limit, the traffic light turns red. What's the correct way of tagging this?


asked 09 Sep '18, 17:17

AntMadeira's gravatar image

accept rate: 0%


In this case, it doesn't have a display. Just a sign indicating a speed limit ~200 m before. The traffic light is similar to a normal one, but it is activated by radar. Here in Portugal, there are thousands of them. Here's an example: Traffic lights: alt text

and the sign some hundred meters before: alt text

(09 Sep '18, 17:50) AntMadeira

Just to add one thing - it's clear from the first photo but may not be obvious at first glance - there's no junction associated with (many of) these lights. The aim is to delay speeding drivers for longer than it would have taken to drive slower and smoothly.

(based on my recollection of driving in Portugal some years ago)

(09 Sep '18, 18:59) SomeoneElse ♦

While starting a comment to my answer above answer I came upon a new angle I had not looked at before. The Enforecment Wiki page lists a role "force" that I had never used before. Unfortunately, it is very ill documented, none I asked could help me with it and actually it is very rarely used. To my understanding it is intended for our case, though, i.e. for a case where there is an immediate enforcement opposed to a delayed one (e. g. a fine).

Here is an example of such enforcement relation: Relation 8467264

I try to figure that into my answer and how to do that in iD:

There are two cases. 1) you have a speed camera plus traffic lights, 2) you only have traffic lights.

For 1): As for any enforcement relation you need to set up a couple of nodes, in this case four:

#1: the "device" is a point, probably next to the road, where the speed camera is situated

#2: the "force" is a point on the road where the traffic lights stop the traffic

#3: "from" is a point on the road, somewhere in the direction the traffic is coming from. This could be the place of the speed limit sign.

#4: "to" is a point somewhere in the direction the traffic is going to located after the points #2 and #3.

For 2):

#1: the "device" is a point where the measurement is taken. If you don't know where that is, I would put #1 and #2 at the same location.

#2: the "force" is a point on the road where the traffic lights stop the traffic

#3: "from" is a point on the road, somewhere in the direction the traffic is coming from. This could be the place of the speed limit sign.

#4: "to" is a point somewhere in the direction the traffic is going to located after the points #2 and #3.

Now in iD you have to do the following: First create the four nodes if you don't already have some of them. I assume you know how to do that.

Select the first node (#1). In the left pane scroll all the way down to the section "All relations". Klick the big plus (+). Klick "new relation.. " Select "relation" from the bottom. Still in the left pane: enter a name for the relation and enter "enforcement" as the type. A bit down you see the section All members and there it lists the previously selected node. Wher it says "role" in grey color write "device".

Now select node #2. On the left pane scroll down to all relations again and click the plus. Instead of "new relation..." now select the name of the new one you just created. In the "role" field enter "force".

Repeat that for nodes #3 and #4 with the roles "from" and "to" respectively. In case of case 2) above where you don't know the measuring device location I would normally recommend to enter the #2 node twice to the relation. It seems you cannot do that with iD. In that case leave just create a separate node close to #2.

As a last step click on the relation name on the left bottom and delete the name from the name field again. Such relation usually doesn't have a name so we shouldn't invent one. Putting one in in the beginning helps navigating in iD, though.

permanent link

answered 01 Oct '18, 14:21

TZorn's gravatar image

accept rate: 15%

Thank you for your answer and willingness to investigate this issue. I'll test this solution soon and come back to tell you how it went.


(01 Oct '18, 14:50) AntMadeira

Thanks, I'd appreciate that. Maybe you still find a more practical solution. :-). Please mark the answer as correct if you find it suitable. On a site note: If you continue mapping you should give JOSM a try. It's a much more powerful editor, especially when it comes down to editing relations. It's a little harder to get used to it at first but when you got the hang on it mapping will be much easier.

(02 Oct '18, 08:09) TZorn

After all this time, and now that I'm more aware of the OSM universe and its meanders, I'm happy with this solution (in line with the enforcement wiki page). What would be the best way to include the maxspeed on this relation? Adding "enforcement=maxspeed" to the force member plus "maxspeed=*"?

(31 Mar '20, 21:15) AntMadeira

enforcement=maxspeed and maxspeed=xx go into the relation, not into the members.

If the device is also mapped as highway=speed_camera you will need to add maxspeed=xx also to that object. This is only done for services not able to process enforcement relations, though. Having maxspeed=xx on the device does not release you from tagging it to the relation, too.

(01 Apr '20, 12:57) TZorn

Thanks. I've created the first relation based on your proposal. Please, check it and tell me if that's what you meant.

(03 Apr '20, 17:36) AntMadeira

It should be enforcement=maxspeed since that denotes what is enforced (speed, height, distance, ...) not how it is done. And hence the correct maxspeed=50 you have tagged. enforcement=traffic_signals is used to for red light cameras.

Otherwise I think the relation is fine.

(03 Apr '20, 20:51) TZorn

Thank you, TZorn. I appreciate the time and effort to come up with a correct approach to this issue I brought here more than a year ago. Based on this, I'll try to improve the Portuguese radar and enforcement wikis. Regards and take care!

(05 Apr '20, 00:34) AntMadeira
showing 5 of 7 show 2 more comments

Do you mean something like highway=speed_display that changes colour when you go above a certain speed?

permanent link

answered 09 Sep '18, 17:43

InsertUser's gravatar image

accept rate: 19%


No the OP does not. Radar activated traffic lights are very common in certain parts of Spain. If the speed detected is higher than the speed limit the traffic signals change to red. In conjunction with traffic calming measures (humps, tables etc), these reduced dangerous speeding traffic to such an extent that much more expensive measures (by pass roads) were not needed.

(09 Sep '18, 19:05) SK53 ♦

Sorry, I've replied to myself, but it should have been here.

(09 Sep '18, 19:36) AntMadeira

No matter I've been puzzled about how to map them for years.

(09 Sep '18, 21:00) SK53 ♦

In that case, the closest I've heard of is traffic_signals=ramp_meter or =controller. The talk-pt mailing list would be the next port of call, but failing that might be time to make something up. highway=traffic_signals+traffic_calming=traffic_signals might be a good start.

(09 Sep '18, 23:02) InsertUser

I would tag the signal as highway=traffic_signals and then invent maybe a traffic_signals=speed_meter. Additionally, it would make sense to add an enforcement relation: type=enforcement and enforcement=maxspeed, add the traffic signal node as role device. Data consumers might misinterpret that as a speed camera, though, when they do not check what object the device really is.

permanent link

answered 13 Sep '18, 16:24

TZorn's gravatar image

accept rate: 15%

From what I was told at talk-pt mailing list, the best solution would be an enforcement relation between traffic_signals and a radar. The problem is I would need to add a point for the radar and I don't know where the radar is positioned. I would have to guess its position, which I believe isn't the right way to do this... It's a real bummer because there are literally thousands of these radars all over the country.

(13 Sep '18, 21:07) AntMadeira

With a standard speed or red light camera we only include the camera itself in the enforcement relation not the position of the measuring device. Usually, that is close by anyway. So I don't see why we should handle it differently in this new case.

(14 Sep '18, 09:29) TZorn

Can you please give me a resume of how I can do that?

(19 Sep '18, 15:21) AntMadeira

The general description of enforcement relations is in the wiki. If you tell me what editor you are using (iD, JOSM?) I can guide you through creating one.

(19 Sep '18, 15:56) TZorn

Sorry for the late reply. I use mainly the iD.

(24 Sep '18, 01:17) AntMadeira

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text]( "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:


question asked: 09 Sep '18, 17:17

question was seen: 2,731 times

last updated: 05 Apr '20, 00:34

NOTICE: is no longer in use from 1st March 2024. Please use the OpenStreetMap Community Forum