Streets as street relations

Note that for hiking trails

  • hiking trail often has name distinct from road/path
  • hiking trail often has attributes not applying to road/path (colour/symbol)
  • single path/road may belong to two or more trails

(maybe these happens less in USA/Oceania than in Europe? But in my area putting name of trail on road would be clearly wrong, while putting name of road on road is fine)

Just have take a look at any random place in Europe to see a massive numbers of hiking and walking route relations. For example. I question whether relations are truly necessary for all of them, but mappers seem to be handling the management of all these relations just fine. I see no reason this single way, 150m long bit of trail really needs to also be also mapped as a relation but WaymarkedTrails requires it to be so and it doesn’t seem to be causing any problems.

Ideally it would be nice if data consumers would handle a street/road or a trail mapped either as a way or a relation so mappers could choose the appropriate object type for the situation. This is how all area mapping works in OSM. We can simply use a closed way for simple areas or we can create a multipolygon relation for larger or more complex areas. We are not forced to use a way for certain feature types and a multipolygon relation for others. It would be strange if landuse=* areas only rendered when mapped as a closed way and natural=* areas only rendered when mapped as a multipolygon relation.

I am familiar with many places where all of these points are true, in which case a route relation is appropriate and necessary. I’m familiar with many other places where a trail/path has just one single identity so there is no need for the extra complexity (it is also not a problem though). The thing is that all these same points can equally apply (or not) to roads/streets just as they do to paths/trails.

I guess that may be USA specific thing, as it is something not happening in for example Poland.

How can you have single road belong to two or more roads at once?

How can you have road name being distinct from road name?

How can you have road property not applying to road?

(note, I am aware of named/coded routes, concurrent interstates etc, but that is covered by distinct relation type - other than one being topic of this thread)

for start, they appear to have distinct names (not sure are names tagged correctly, unfamiliar with location but in cases known to me trails very very often if not nearly always have names distinct from path/road names)

We make a distinction between roads (the local name) and routes but most people who don’t think about this stuff all the time will be just as likely to say “this road is called Route 7” as they will be to say “this road is called Shelburne Road”. A route is just a certain type of road as evidenced by the tag being route=road. I don’t see this situation as fundamentally any different from a hiking trail having two different identities where a long distance trail follows a path with a local identity.

I wouldn’t say it like that. I’d say there are some properties that apply to a road segment (surface, lanes, presence of sidewalk) and other properties that apply to the whole length of the road (mainly name or ref). So surface=asphalt applies to one section of the road, but not another where surface=compacted applies instead.

I doubt it’s USA specific to have a path with a single name. This seems like a very common and normal thing. Are you saying that every named footpath in Poland always has at least two names? One that somehow names just the “path” and one naming the “route” that follows the path? There are no small, unimportant paths that just have one name? This seems very odd to me, but perhaps I am just not understanding properly.

Regardless of all this, the point I’m trying to make is that it seems to be working out fine having many paths mapped as relations so I don’t see how roads/streets being mapped in the same way would be a horrible maintenance nightmare.

I would need to run some data analysis, but only small part of roads and paths is in hiking relations. And editing them is more annoying than paths and roads free from relations.

Public transport routes are also making things really annoying.

But for street relations big part of waste is manually building relations that can be seemingly auto-generated if someone needs them, unlike hiking routes. I worry that people start spending massive effort on something that seems pointless.

It is typical to have say Yellow Foobar Trail hiking route going on unnamed paths. So having them represented as separate object makes sense.

This does not happen with road names - given road will have a single road name so benefit of adding relations to data modeling is small.

EDIT to answer lower post:

Yes, it would be “Let’s take a walk on Yellow Foobar Trail” - but it would be used by hikers walking on trail, not used in context where road name would appear.

But would someone actually say this in real life though? Or is this just the way OSM people think about it? “Let’s take a walk on Yellow Foobar Trail hiking route following unamed paths” sounds rather awkward. I’d expect most people would simply say “Let’s take a walk on Yellow Foobar Trail”.

Let’s take a step back. I don’t think we need to decide here whether individual streets can have names. Everyone participating in this thread so far hails from a country where they generally do have names. We also don’t need to decide whether there’s a notion of a highway route separate from the notion of a road or street. That has been proven many times over by mappers and data consumers. Trails can get a bit fuzzier because they often aren’t as systematic as roads in many respects. We can try to hash out a consensus about them, but I think it probably deserves a separate thread.

Aside from any routing aspects, what is a street, and how do you delineate it? One very common way to delineate a street is to look for the (mostly) contiguous roadways that share the same name, modulo the occasional directional prefix. But a street is more than a name, as the Wikipedia articles demonstrate: it has an identity that may be bound to a long and storied history, all worth documenting outside of OSM. OSM benefits when there’s some link to those external projects in one direction or the other. We can tag individual roadways with their wikidata=* tags, but some mappers have attempted to refactor them into a single coherent relation, following the mantra of “one feature, one OSM element”.

Now take the paragraph I just wrote and replace “street” with “waterway”. There’s still a lot of uncertainty about how to delineate a waterway, but no one argues for the abolition of waterway relations. In some regions – maybe not Western Australia – there are even more waterways than streets, but we take a pragmatic approach, sometimes creating waterway relations and sometimes just tagging wikidata=* etc. on individual waterways.

Now take that paragraph and replace “street” with “railway”. Rail mappers have to keep multiple concepts in their head at the same time: the physical trackage on the ground, the railway line as a system, and any services in operation along the line. Some countries even distinguish between route=railway and route=tracks. This goes right over my head. Rail mappers probably get away with this degree of highly technical structure because the rest of us manage to ignore rails except at crossings.

Do either of these precedents inform whether there should be street relations and, if so, how they should be tagged?

This really interesting topic. I learned here, that I likely edited many route=road relations, not that I noticed. I consider them fine, naming fits too for me. There are some monsters in the E class (European roads), but the B and L classes (national/regional routes) look manageable. They are true routes, a single line from A to B, all numbered and named, mostly called after the area they make accessible. Quite useful perhaps for verbal instructions in a routing itinerary. (The E class is not signed here on the ground, but google street-view paints it on the carriageway some times.)

I kind of abhor relations. I remember to have created a route=foot after, what was a single way before, got split into umpteen particles to map mountain-bike difficulty. Later this got retagged route=hiking, no idea why, it is just a two to three hour walk. And it is not a good idea to go MTB there I was told too by somebody with experience: Far too many pedestrians. If I could have told with certainty, cycling was not allowed there, I’d just have reverted.

This comes straight from how hiking paths are handled by the Swiss administration. I cannot go into details, but I once read, that waymarked trails had to brew some special soup to get along with that.

I’d say, if the goal is just a collection of stuff that shares a single name or wikidata and goes (way) beyond a consecutive line, then route=* is the wrong key, IMO.


Just have take a look at any random place in Europe to see a massive numbers of hiking and walking route relations. For example. I question whether relations are truly necessary for all of them

there are (potentially at least, but for example in Italy very common) additional properties referring to the hiking route and not to the road, e.g. duration, difficulty, name, operator (of the route, which can be different than the road), ref, symbol etc. If you add these to the road it is not clean, and if tomorrow someone splits the road because of any reason, the repeated route data would even be wrong.

1 Like

In the ensuing discussion , @Pikse advocated for /…/ route=road instead of route=street /…/ this seems to erase the distinction between routes and the roads that carry them.

I’m not necessarily against route=street. I just note that so far almost always route=road has been used for streets too, and it’s still unclear to me if significant benefit comes from this additional tag. It may be also difficult to follow as the distinction between routes and roads or streets, as outlined above, is quite difficult to understand.

I understand that a road can be used for many different routes like bus routes or bicycle routes, or we might say that roads carry these routes. But when it comes to a route in sense of a major highway then I get it as @ezekielf put it above: route is just a certain type of road. In this sense routes seem much more similar to streets than to bus or bicycle routes.

Streets and routes (major highways) in essence are both the physical structure for land transport. In English “road” seems to be the broad term for this type of physical structure. (I do see that Wikipedia article “Road” currently in its lede section contrasts roads to streets but this is dubious, and it conflicts the the following more sufficiently sourced passages in the same article that also discuss roads that are streets.) Australian tagging guidelines for roads that were mentioned earlier also deal with both major highways and streets. This is also reflected in various official road classifications/hierarchies, e.g. in my country (Estonia) types of roads include national highways and local roads, and the latter in turn include streets. Also as someone already mentioned above, in German language even the term for streets and the broad term for roads (including major highways) are the same word.

In case a major highway passes a city, as in these Australia examples, I wouldn’t say that streets carry this highway. I’d consider it more clear to say that locally, on other level of road hierarchy, sections of this major highway simply carry other additional (street) names. This is normal also in my country.

route=road will cause problems for routers like OSRM and Valhalla, which add cardinal directions to turn instructions based on route=road specifically

Is it certain that this isn’t rather a problem with these routers if this is what they really do? I don’t think that cardinal directions even make sense in most parts of world, apart from these a few countries named in linked wiki page.

I would rather not use any relation for the streets, but if the mappers insist on using relations (for grouping, which is what it is)

In regard to street as an individual named linear feature (not including adjacent buildings, lamp posts etc.) I don’t quite see why not have relation if it makes the data structure simpler the same way as it does for highways outside of cities. One way or another we could live without these relations but this would be also true for relations of major highways. In situations where relation for a street is truly less useful, e.g. it’d consist of one member way, or there is no data about the entire street in addition to name, it isn’t obligatory to create a relation anyway.

major reason against it is that it does make data structure more complex

1 Like

If a router here tells users to follow E533 it should say too, please look at google-street-view to learn the name of the route you are on, because E533 is not signed on the ground. I rather have drivers look at what is ahead.

Does that mean, those routes have to be trashed? After all, they have no OTG?

I’ve been intentionally contrasting the words “road” and “highway route”, because “highway” is more ambiguous. In regions that distinguish between roads and highway routes – apparently not including Estonia – both roads and highway routes may have “highway” in the name. This isn’t determinative: across the English-speaking world, plenty of non-expressways have “expressway” in the name, plenty of streets and routes have “trail” in the name, etc.

You’re citing Estonia and the German language as evidence that there’s no conceptual difference between a road and a route, but a more likely possibility is that Estonia and German-speaking countries simply don’t need to distinguish because they’ve conveniently ensured a strict one-to-one relationship between roads and routes. Some jurisdictions are able to accomplish this because the regional or national government owns roadways between and through cities and cares about consistency. Good for them!

I am also somewhat familiar with this situation: in Ohio, where I grew up, county-maintained routes are called county roads, because the county only designates whole roads, end to end. If you say “county route” to someone there, they’ll know what you mean, but it’s kind of pedantic to speak of them as routes. However, in OSM, some of these roads are part of route relations (in which each way happens to have the same name and ref) in order to communicate information about the route network in network. While these relations may be pedantic for the use case of pointing at something and identifying it, they are useful for rendering shields that match what motorists and cyclists see on the ground.

On the other hand, the very same Ohio designates “state routes” that mostly travel over segments of “state highways” (state-maintained roads) but continue onto city streets as soon as they enter the city limits. In Oregon, a state route such as Route 126 travels over multiple state-maintained roads with names like “Florence–Eugene Highway No. 62” and “Ochoco Highway No. 41”. Would you rather model Route 126 as a superroute – a made-up word that some mappers likely coined out of confusion – due to this more complex structure?

You’re right that a layperson might just prefer to think of these situations as simply a road with multiple names. But one of those names belongs to something beyond a road. Again, this distinction is relevant to routers. If you’re getting directions from home to a spot eight blocks away in the same town, you don’t need to hear about the state route. But if you’re traveling from Perth to Melbourne, maybe the route matters more than the local street name. Keys like loc_name and nat_ref sort of communicate this information, and Australian mappers used to tag network directly on the roadways, but the more complex needs in other parts of the world, including many of the countries on this map, called for a more systematic approach using route relations.

Overall, I’d just ask folks to be a bit more circumspect than assuming that a distinction doesn’t matter just because it doesn’t exist in your language or part of the world. The conflation between streets and routes evidently surprised a local mapper and doesn’t fit that well into the national tagging guidelines – surely this matters? Maybe the distinction doesn’t need to be a top-level tagging concern, and maybe the tags don’t need to be based on plain language if plain language offers no good solutions.

This is a feature, not a bug. However, the behavior should ideally be limited to the countries where cardinal directions are part of the normal way of giving directions – including New Zealand (which shares this forum category), but perhaps not Australia. OSRM requires the cardinal direction to be explicitly tagged, which is not the case so far in Australia.

If the route isn’t signposted in a useful manner and normally isn’t marked on maps, at least its relation should be tagged unsigned_ref, not ref, to keep it from misleading users. But the “E road” system is a real thing in some countries, so I’d be careful about jumping to conclusions based on just one locality.

What I tried to articulate is that there is a general concept that encompasses both major national roads (can be named route, highway, autobahn or whatever) and local streets, and in English language commonly term “road” seems to denote this general concept. I’m not saying that road and route are the same, contrarily in previous comment I quoted another US user saying that “route is just a certain type of road”.

Of course word “highway” in the name isn’t determinative. As far as I can see the same applies to word “route” in road names, while above you made an argument that some roads are true routes while others (streets) are not, seemingly based only on the fact that names of certain roads include word “route”. As I argued in my previous post, we might say that streets aren’t routes, in some sense at least, but then easily the same can be said also about other kinds of roads (including these that happen have “route” in the name).

I’m in no way saying that any local/regional distinction shouldn’t be mapped/modelled in a clear way (using network=*, highway=* or what they have come up in respective tagging scheme). To me it just isn’t clear what is this distinction that you try to make by using route=street in addition to route=road, or how it even could clear considering that you seem to propose that this distinction should be made globally.

I understand that renderers need to figure out which names, which road network, or which level of road hierarchy they use in certain situation, and yes, of course this is why systematic approach using route relations is useful. Appropriate keys added to these relations then also allow selection of appropriate relation among relations of roads that overlap on different levels of road hierarchy. But I doubt that things become any easier or clearer should we arbitrarily declare that some road names belong to “something beyond a road”. I also don’t understand why only a layperson would consider that a road segment can have multiple names.

I have no will to advocate for or against superroute relations here. However, kinds of roads that are mapped as superroutes illustrate my point that hierarchy of overlapping roads exists, and it exists even if we for some reason excluded local streets from this hierarchy.

As for the case of routers adding cardinal directions, I of course understand there can be such feature. I just doubt if this feature is properly implemented if these directions are truly added only based on route=road, especially if it’s done globally.

To be clear, in the examples I gave, this was based on the fact that the route traverses (parts of) multiple roads, not based on the name. The route’s name could’ve contained “highway” and the effect would have been the same.

Another way of looking at it is that a route is created by designation, not by construction. For example, in October, dozens of new national highway and cycling routes were approved in the U.S. without building or renaming anything. Each route is defined as a list of sections of roads. New destination signs and reassurance markers will eventually be posted, but not necessarily new road name signs. The component roads and trails will retain their identities for the most part.

The process is different in every country, but the point is that there should be some way to differentiate designated routes from their component roadways. Creating relations for physical streets is the much later, much rarer practice, so it should not co-opt the tagging for designated routes.

What I meant here was that in everyday speech the words route and road have a huge overlap and can be used nearly interchangeably depending on the context. This doesn’t mean there is no distinction worth making between numbered highway routes and named roads/streets. They are both roads in a very broad sense, but they are distinct in the public consciousness due to differing signage and map display styling.

Either statement accurately describes the situation. Ultimately the data structure just needs to be able to indicate the full extent of the local street, the full extent of the major highway, the fact that they share a certain segment of roadway, and that one is a local street and the other is a major highway.

1 Like

To add some more color to this: as you’d expect, state and local governments are normally responsible for building and naming roads in the U.S. However, Interstates and other national routes generally aren’t designated by a legislature or even by a government agency. Rather, the entity responsible for these routes is AASHTO, an NGO that technically has the same legal status as OSMUS, but with state highway departments as voting members. They only designate but do not have the funding to build. (Australia had a similar arrangement prior to the establishment of Austroads.)

This arrangement is an artifact of history. Until the 1950s, signposted routes in some parts of the U.S. and Mexico were the responsibility of private auto clubs. At least in California, these “sign routes” intentionally contradicted the legislatively defined routes in order to better guide motorists. A very similar situation exists today in some places with respect to long-distance cycling and hiking routes, which are designated by NGOs, often signposted by volunteers, and travel over trails that are maintained by a variety of unaffiliated entities. (This should sound familiar to Germans.)

Even if route=road didn’t turn out to be a perfectly unambiguous tag name in retrospect, we should avoid skunking it for the sake of the mappers and software developers who have put inordinate effort into developing and supporting this tag. It’s easy to say that only some countries care about the difference between roads and routes, but if route=road becomes the normal tagging for street relations in some countries, it will also become the normal tagging for street relations in other countries, where it would dilute the meaning of more important relations.

1 Like