Urban vs built-up_area

I saw this thread about replacing the last remaining instances of zone:traffic=XX:built-up_area with zone:traffic=XX:urban so the former isn’t used anymore and I’d like to ask: why?

When you have a sign signifying a built-up area, that sign can mean that you’re driving through a city or town but it could also refer to rural villages. This makes using zone:traffic=XX:urban in a place like the latter totally nonsensical.

I sense that better picks for the values would be built-up_area instead of urban and non_built-up_area instead of rural but I’m guessing it’s too far to change back since all data consumers rely on the currently used values. Does anybody know why we ended up using these?

PS. I’d also like to ask is whether it’s worth it to revive the zone:traffic proposal since the the key never got approved and isn’t even of de facto status when I think it’s a really good and useful tag and it seems to be the best way to replace highway=living_street.

zone:traffic=*:urban is essentially a simplification and is also used for built-up areas of rural villages, similar to traffic_sign=city_limit (despite villages not being cities). This simplification is okay because the tag is about traffic rules, not about the degree of urbanisation.

For living streets, the existing tag living_street=yes can be used in cases where highway=living_street is not desired (e.g. highway=service); this also avoids overlap problems with zone:traffic=*:urban.

With names like city, town, etc. it’s overall a big problem because of the fact we use English and the generic name is ‘human settlement’ which is rarely used and long which makes it awkward to use. This issue is also prevalent with tags like addr:city, is_in:city[1], closest_town, city_served. Makes me think if we should switch to German for tag names.

I don’t like this tag because it’s another boolean tag when it could instead be a value and grouped with other stuff (same with expressway=yes and motorway=yes) and zone:traffic is perfect for that while also a living street is a separate zone which can only be inside of a built-up area and never outside it meaning no data will be lost upon using this value


  1. I guess those have town and village variants but it’s probably better for it to be one value since they have one admin_level value also. ↩︎

Please don’t. zone:traffic refers solely to whether the road is inside or outside a built-up area. highway=living_street usually implies zone:traffic=XX:urban, but there isn’t anything inherent preventing anyone from designating a living street outside of such area.

As such, I’m also opposed to ideas like zone:traffic=motorway or similar - motorways can also have different rules depending on whether they are inside or outside cities.

1 Like

I’ll need to see an example because I seriously don’t believe it and it wouldn’t make any sense.

In that case you could just use something like motorway_urban or motorway,urban though I’d imagine it’s limited only to a couple countries. Perhaps generally it is a good idea to add the option for multiple values because I could see a possible living_street,pedestrian.

Way: 458722013 | OpenStreetMap is an example. You can see the beginning in the north and there is no sign ending the living street. Yet, this section is clearly outside of a built up area.
Now, did someone forget to put up the end sign? Yes, very likely. Might it be illegal? Perhaps. But the sign is there and we map what exists, not what ought to be.

I also checked local legislation. While it explicitly says that maxspeed 30 zones are only allowed within built up areas (which isn’t always adhered to either), there is no such provision for living streets. Only requirements are low traffic and “eine überwiegende Aufenthaltsfunktion” (roughly “main function is dwelling”).

I’d be interested what you’d then use for highway.
Anyway, the reason for tagging zone:traffic is mostly that it’s quite difficult to determine whether a road is inside or outside a built-up area.
Motorways are simple in comparison. Example for Germany: traffic_sign=DE:330.1. If a road has this tagging, motorway rules apply.

Tag keys and values are visible only to the mappers, so it’s better to be fully consistent than fully terminologically correct. Data presentation can make up for it.

my bet is that because it’s simpler/shorter, close enough and/or the inventor didn’t care (and probably was a city resident :laughing:)

But is there actually a sign signifying the end of a built-up area? If not, them it is inside one.

One anecdote I forgot to mention in the original post is that oftentimes in Poland there will be signs beginning the built-up zone despite there being just trees for a couple of kilometers still (usually it’s when it’s planned to build residential houses in that area) so the main takeaway to keep in mind is that there’s often a strong disconnection better de facto and de iure states and in this case a road can clearly be outside of built-up area but not officially.

I’m still yet to see a sign ending a built-up area and a living street sign after.

I’ve got three answers for you: 1. right now, motorway since it still means something else, 2. usually trunk when using the highway=* tag for importance alone 3. road when having moved the highway=* values to importance=* :)

It’s to signify any sort of zone the road is in. I really like how it’s the key for describing this sign:

In Poland, where expressways are mapped as highway=motorway, the tag becomes useful to create a distinction between the two.

It seems like it’s even simpler in Germany:

Additionally, this key can could also support living streets and pedestrian zones since they’re defined and behave in a similar way.

Yes, the zone the road is in, not the properties of the road. There is no “motorway zone”.

It’s not. The only part it represents is the city silhouette. The other parts are simply properties of the road and therefore should be tagged as separate properties (with motor_road=yes and/or dual_carriageway=yes and/or the relevant traffic signs).

Yeah, they behave like zones, though their tagging has evolved to be in highway. There are also maxspeed zones which have their own zone:maxspeed tag. I wouldn’t be opposed to zone:living_street or zone:pedestrian tags. They would be boolean tags though, which brings me to the next point:

And finally, everything becomes highway=path.
Considering your previous dislike of boolean tags, this seems odd.

That’s not how German law works, but no need to get into that. If I come across such example, I’ll remember to send it your way. There is nothing in law preventing it from happening - though realistically, it’s going to be rare if it happened at all.

Why not? I’m defining a zone as the section of a linear right of way between a sign that begins and ends it. This means that average speed enforcement is also a zone but it functions entirely different so it doesn’t fit in this tagging.

Alright, where are you getting this from? Is this just your idealised vision? Ever since the original proposal, DE:motorway was one of the values.

That’s more of a devolution since the key was never meant to hold anything other than importance-dependent values. You see the mess this makes with the combination with service vs residential vs unclassified sometimes.

Yes, alongside road. It seems like you haven’t engaged in my highway revolution concept thread so perhaps you haven’t read it or at least the very first post. Let's talk about highway classification in OSM

Why is being in a built-up vs non built-up area called “traffic” then? Shouldn’t it be something like zone:built-up=yes/no?

It’s like having restaurant=yes instead of amenity=restaurant. Boolean tags should be used when the key can’t be a value of another tag—it’s like the urban=* and rural=* tags.

A living street is meant to describe a section of a road that especially requires slow and careful driving. Why is that? Because there are residential buildings or perhaps a school nearby. And that already makes for a built-up area so there’s no reason to put a living street in the middle of nowhere. There’s even buildings on the very sign.

What about speed limit zones? If you do mention zone:maxspeed then why not zone:maxspeed=DE:living_street / zone:maxspeed=DE:pedestrian?

And here I welcome you to Way: ‪Rheinstraße‬ (‪238207403‬) | OpenStreetMap.

The road is still part of the built-up area but both this and its classification as a “living” street (despite the obvious lack of buildings, let alone houses) also only exists as a speed limit measure than helping pedestrians in any way or something.

Related: Way: 233860030 | OpenStreetMap

These parking lots also are classified as living streets and only exist as a speed limit.

Is the primary purpose of a pedestrian zone to reduce speed?

If you really think there need to be two tags to describe these features, then better names would be zone:traffic=motorway/expressway/living_street/pedestrian and something like zone:built-up=yes/no.

At least here in Germany, pedestrian streets are classified as pedestrian infrastructure (essentially highway=footway but an actually driveable street) and so any permitted vehicle there (from bicycle to buses to the rare motorcar) is reduced to walking speed so while one reason is access, it also implies more than a simple 250 (no vehicles).

On that aside, from what I know, the primary difference between living streets and pedestrian streets in Germany is that the former is vehicle inclusive (so if you want to limit vehicles access there, you must use prohibitory signs) and the latter vehicle exclusive (where vehicle access has to be permitted with additional signs instead).

If I’m not mistaken, traffic_sign=city_limit can correspond to any local administrative boundary. As it happens, American regulations call it a jurisdictional boundary sign, in order to accommodate any kind of jurisdiction, from counties to cities to hamlets. But if you say “city limit sign” to someone, they’ll picture in their head a sign that resembles the sign even if a particular sign delimits a jurisdiction that’s legally something other than a city.

And those (jurisdiction) city limit signs (present or not) are a reason to see road name changes in the wildest places along ways connecting settlements. Those road name signs (2 on a pole pointing opposite direction) are quasi a stand-in for ‘here is the admin boundary’. So happens when those boundaries have been mapped properly you’ll see a cut in the mapped road right there and the instruction from the cycle navigator in the ear-piece coming thru ‘continue straight on’ argh. We have 2 different colored signs but it depends on the jurisdiction if placed or not. The brown/white text are the boundaries, no speed restriction change. The white/black text are the actual points where urban speed limits start (city_limit=begin tag)… 50, and with a diagonal red line thru (city_limit=end tag) to say it:urban seized. In many places an actual 50 sign will be affixed to the ‘city’ limit begin sign.