Usage of the highway=* key on classified highways (in Europe)

I invite all road mappers of OHM (and everyone else) to this debate:

I’ve narrowed it down to Europe for now. However this can be expanded if requested.

My goal is to make a consistent highway=* tag across Europe.

This mainly focusses on highway=primary and highway=trunk

highway=motorway should only apply to signposted roads with adequate properties and won’t be discussed here.

Background

Why?

Reason 1: Outline the prioritized roads in a complicated network

If you look in the picture above. Besides the motorway/trunk routes. Can you spot the most important through ways in this French city? If you take your time you might eventually spot some roads that due to their geometry look more important than other roads. Ideally you should spot the main roads within a second and not in minutes. It also looks really cluttered.

Reason 2: Required standardization across borders

It’s no surprise that borders change. But different countries, different rulesets for the same road with equal importance. The picture above shows a OSM screenshot of the Szczecin region at the german-polish border. The highlighted road is the former R 104. Back then a major road in the third Reich connecting Lübeck with Schneidemühl (Piła). After WW2 it remained a major road in both countries. However OSM Germany classifies it as highway=primaryaccording to german rules. OSM Poland classifies it as highway=trunk to polish rules. If borders are static then everything is fine. But there was no (de facto) international border before 1945. That means you either have to break the rules of one country or the other.

highway=trunk dilemma

In OSM there are 3 systems for highway=trunk.

System 1: Importance

This system is especially popular in east of Germany. (Poland adopted this system last year). But also the Nordic countries (except Denmark). The most prominent example here is the UK. The criteria of Importance can be made by official designation, by the connected cities or by community consultation.

System 2: Grade seperation

This system is mainly used in central Europe. Here it doesn’t matter whether it’s single or dual carriageway. Some roads are easily classified as highway=trunk, other require community consultation.

System 3: motor traffic only

This system is mainly used in Denmark. As the title says it only showcases roads, where slow moving traffic is not permitted. The shown road might be very important for commuters, it is not that important to fulfill system 1 as it is only a secondary road. It does not fulfill system 2 as it is not grade-separated. It is unambiguous however.

Proposals

Proposal 1: Make highway=* dependent on official classification

(Personally I would prefer this proposal)

It is as simple as that. The highway tag depends on official classification.

1a: Roads before classification

What if the road does not have any classification at the time. Not even internal ones?

This requires that the affected country does perform official road classification.

For Europe it only affects the Microstates of Monaco, San Marino and Vatican City. In these cases it can be done at your own discretion.

I. My country introduced a road classification?

That’s great! All classified roads can be tagged with the appropriate highway=* tag. If the road is newly classified than the highway=* tag does not have to be changed.

II. My road got left out in the first classification phase but got in in an second phase?

In that case the road’s first highway=* tag should be one tag “lower”. This would apply in the phase before the first and the second classification phase. It should look like the picture below

Edit 1: IIa. Network forming in multiple Phases

If the road numbering is introduced in multiple phases, than treat all the roads with the appropiate highway tag. In the case of the image above, the third frame should be valid for all times.

III. My country abolished its road numbering system?

The highway=* should be kept as long as no new numbering system is introduced. When a new system is introduced proceed with I.

IV. My road was annexed by a country without a road numbering system?

When the change happens immediately proceed with I. Treat the road as it is now part of the new country.

Edit 2: IVa. My country was annexed by a country which didn’t number the roads of that country?

In that case you connect the numbered stubs of the border highways that has numbers and connect them to the next largest city or major intersection. Then you designate the most major roads in the part of the country to make a coherent network.

There instructions are very vague. The details on which roads qualify on being major must be discussed with the community.

1b: classification change at an international border

To recite Reason 2: Different countries have different classifications. To be clear: each country is unique. It’s impossible to keep the same highway classification at every border crossing.

If the border moves to such a case, then one side will change but the other side won’t. The side that changes should proceed with I. or IV.

1c: highway=trunk question

V. Single-carriageway roads with motorway designation

These roads should always be tagged with highway=trunk.

VI. Other (more important) applications

This can be open to interpretation.

As we are only talking about Europe you can tag every road that becomes part of the E-road system from the start as highway=trunk. If your country only later becomes part of the E-road system, then highway=trunk should start from the start nonetheless. As every major European country is part of the E-road system, there shouldn’t be ambiguity. For the case that the E-road changes it’s alignment, proceed with I.-IV.

1d: exceptions

Going strictly with classification, there might be some weird situations. If you would apply the rules on the image above, than the motorway will be highway=motorway, the federal road to the north highway=primary and the former federal road as well as the connecting segment highway=secondary. If the “flow of the primary road“ unambiguously follows a connected segment of equal or higher classification, than this road can be tagged with a higher classification than the official one.

Proposal 2: Make highway=* dependent on country specification

This proposal looks at the rules of the country the road belongs to at this time.

Each rules will follow the OSM rules of its country. For more information consult the OSM Wiki of that country for more information.

VI. my country changed its OSM rules

In that case all affected roads should retroactively be adjusted to the new specifications, such that the roads comply with the new rules

2a: change due to new international border

This should be done like 1b. as well as I.-IV.

2b: former countries without a successor state

These are tricky as no OSM rules exist for a state, that’s gone. Those should be done at your own discretion.

Further Thoughts

Changes on physical map

For these proposals to take affect, the map should display a difference between highway=motorway and highway=trunk.

This is already requested on github.

How to change the tag

It was many times said, that the highway=* tag should change depending on the section.

How ever OHM famously does not have a simple way to change tags on a single way.

This can either be done with multilinestring relations or by drawing multiple ways.

For more Information consult: Roads – how to represent evolution?

Summary

I obviously couldn’t think about every case on how to approach this huge topic. I very appreciate your thoughts and comments in the following discussion.

Reason 1: Outline the prioritized roads in a complicated network

France is a special case, their mappers simply have dropped dropped all roads into the map, leaving further classification to research. In contrast, I have mapped only those roads as primary which had the highest classification at least once in history.

Reason 2: Required standardization across borders

That is the most tricky issue, because EACH country, state and municipality has its own priorities, even cantons in Switzerland have their own animosities and priorities, e.g. Fribourg vs. Bern.

Switzerland has more cantons and thus more primary highways because each canton designs their preferred roads.

During 19th century its was common sense that urban streets were not part of national highways unless they were explicitly maintained by national government. If highways have different construction standards (like Germany vs. Netherlands), it makes sense to map them separately.

highway = trunk dilemma

Generally agree that European roads (and Routes Impériales) can be mapped as trunk. However, villages in 1950 were absolutely not equipped to handle huge amounts of car traffic. Mapping the roads exactly as of 1950 is currently too ambitious. Even starting 1960 is quite ambitious.

Proposal 1: Make highway=* dependent on official classification

Generally yes, however, official classification changes quite often.

highway=* should be dependent on official classification, construction and importance. When 2 of 3 properties have changed, it make sense to downgrade or upgrade a highway.

Austria 1938/1949 is a typical example where only the road number has changed while construction and importance did not.

Proposal 2: Make highway=* dependent on country specification

British mappers have already done that. While trunk needs some standardization, ot should be reserved for highway with advanced official classification, construction and importance.

2 of 3 properties would be a good condition for trunk. The Irish definition (“regardless of build quality”) is not a good example.

France is a special case, their mappers simply have dropped dropped all roads into the map, leaving further classification to research. In contrast, I have mapped only those roads as primary which had the highest classification at least once in history.

This was an extreme example. However I’ve noticed it across all of Europe, that minor or medium roads are simply tagged as highway=primary.

That is the most tricky issue, because EACH country, state and municipality has its own priorities, even cantons in Switzerland have their own animosities and priorities, e.g. Fribourg vs. Bern.

Switzerland has more cantons and thus more primary highways because each canton designs their preferred roads.

During 19th century its was common sense that urban streets were not part of national highways unless they were explicitly maintained by national government. If highways have different construction standards (like Germany vs. Netherlands), it makes sense to map them separately.

Generally agree. My Goal here is to make a standard procedure on what happens, when a road built in the Netherlands is annexed by Germany. Road classes do change at every border. I don’t want to see a modern border on a 1937 map.

I’m not that familiar with the swiss road history so I can only speak in general: As long as the cantons have an independent road system, every canton has their own primary road. When their road systems are combined, you have to treat is as an swiss road system. Every road that is out of line should be up- or downgraded.

Generally agree that European roads (and Routes Impériales) can be mapped as trunk. However, villages in 1950 were absolutely not equipped to handle huge amounts of car traffic. Mapping the roads exactly as of 1950 is currently too ambitious. Even starting 1960 is quite ambitious.

It is indeed very ambitious. It is one option to make highway=trunk based on importance. If your village lies on a future E-road, then its through street can be classified as highway=trunk for now. When you have researched the start_date of the bypass, you can tag the bypass as highway=trunk and tag the old through street as something different. These are just local edits. However it will be funny when you talk about E-road route relations, which are too ambitious at this point.

It can be a topic of its own, when we proceed with Proposal 1

If we go with Proposal 2, then It would be out of the question anyways, because we would have to abide the host country’s OSM rules.

Generally yes, however, official classification changes quite often.

highway=* should be dependent on official classification, construction and importance. When 2 of 3 properties have changed, it make sense to downgrade or upgrade a highway.

Austria 1938/1949 is a typical example where only the road number has changed while construction and importance did not.

In the case of Austria you should note, that during 1938-1945 there was no Austrian road network. It was a German one, thus you should abide by the German classification and importance rules. A important Austrian road might not be an important German road. Therefore you could make the Argument, that importance did change.

The 2 of 3 criteria sounds interesting. But I think this would only apply when the road stays in the same country. If the road changes the country, then the importance factor must be adjusted to the new country.

The 2 of 3 criteria would also mean, that II. would be obsolete. But after rethinking, I think, that my given example is stupid and I don’t stand behind it anymore.

In the case of Austria, this would not change in Prop. 2, because between 1938-1945 it has to use German OSM rules.

British mappers have already done that. While trunk needs some standardization, ot should be reserved for highway with advanced official classification, construction and importance.

2 of 3 properties would be a good condition for trunk. The Irish definition (“regardless of build quality”) is not a good example.

You could argue, whether the British Isles should be included in this debate. We all know that the British do thinks differently. I don’t think we can force them to rethink the usage of trunk. But for Prop. 2 we wouldn’t have to.

I’m not that familiar with the swiss road history so I can only speak in general: As long as the cantons have an independent road system, every canton has their own primary road. When their road systems are combined, you have to treat is as an swiss road system. Every road that is out of line should be up- or downgraded.

Switzerland has a duplicate road system: One federal road system (which must remain open by law) and 26 cantonal road systems. There are some bad examples where cantonal road systems do not match, but in general they do.

Nearly all roads in Switzerland (except Thurgau) were copied from the book of Simeon Bavier (1878), combined with other sources.

In the case of Austria you should note, that during 1938-1945 there was no Austrian road network. It was a German one, thus you should abide by the German classification and importance rules. A important Austrian road might not be an important German road.

As you can see, it took 2 or 3 years to elaborate a new road system in times of peace, even with friendly collaboration. In case of Slovenia, for example, there was no time to elaborate a new road system during times of war. After 1945, it took 2 or 3 years to elaborate a new Austrian road system, leaving the years 1946 and 1947 in ambiguity. Given the low amount of traffic, the only purpose of road numbers was to fill in a road accident report, which does not require an exact number.

For many German states, including Prussia, there are books or lists of important national highways. From a perspective of toll collection, all these mentioned roads were considered primary, as horse carriages cannot drive faster than 15 km/h. Some minor roads were added because they provided an international connection to exclaves. On a 1848 map, they look beautiful, on a 2025 map they look ridiculous, but contemporary highways in Germany are still designed by 1836 borders.

Thanks for the examples.

Nearly all roads in Switzerland (except Thurgau) were copied from the book of Simeon Bavier (1878), combined with other sources.

In that case I would simply say, that every “Hauptstrasse” can be primary. These seem to mostly line up with the contempory Hauptstrassen network we have today.

As you can see, it took 2 or 3 years to elaborate a new road system in times of peace, even with friendly collaboration. In case of Slovenia, for example, there was no time to elaborate a new road system during times of war.

That case is very tricky as we do have to view is as part of the German Road Network during the war years. These edge cases do require community consultation. In that specific case I would mark the most major roads at the time, as well as the continuation of the primary stubs in Austria as primary. The details must be discussed further however.

After 1945, it took 2 or 3 years to elaborate a new Austrian road system, leaving the years 1946 and 1947 in ambiguity. Given the low amount of traffic, the only purpose of road numbers was to fill in a road accident report, which does not require an exact number.

In that case I would proceed with IV.

IV. My road was annexed by a country without a road numbering system?

When the change happens immediately proceed with I. Treat the road as it is now part of the new country.

The wording might be off, but in the Ambiguity years I would use the primary network of 1949 as well.

For many German states, including Prussia, there are books or lists of important national highways. From a perspective of toll collection, all these mentioned roads were considered primary, as horse carriages cannot drive faster than 15 km/h. Some minor roads were added because they provided an international connection to exclaves. On a 1848 map, they look beautiful, on a 2025 map they look ridiculous, but contemporary highways in Germany are still designed by 1836 borders.

Here you’d have to compare the pre 1967 Prussia, the North German Condederation of 1967 to 1971 and the German Empire of 1971.

For Prussia you can use the Preußische Staatschausseen as primary roads. For the German Empire you can use the later adopted Reichsstraßen of 1937 (not only 1934).

The polish corridor might require more discussion (like Slovenia) unless you can provide a source of a list of federal highways between 1871 and 1918.

For the North German Confederation we would compare the Prussian and German road networks.

Identify the roads out of line and then decide, whether the road was eligible to be a “North German Road“. (unless you can provide a source of a list of federal highways between 1867 and 1871).

Generally speaking: If you find such an edge case, you consult the community.

For Prussia you can use the Preußische Staatschausseen as primary roads. For the German Empire you can use the later adopted Reichsstraßen of 1937 (not only 1934).

Germany did not have any federal roads between 1871 and 1934, simply because railways were considered as preferred means of transportation. States like Baden, Bayern, Mecklenburg, Württemberg, even small states like Schaumburg-Lippe continued to have their own national roads. Prussia converted its national roads (Preußische Staatschausseen) in 1876 into provincial roads, mainly for administrative-financial reasons. These provincial roads, which were logically the primary and most important roads in Prussia, continued until 1934. Unfortunately, it is hard to find any listing of provincial roads.

Minden/Westfalen is the only listing of provincial roads I could find so far. This reform happened in 1876, this list was published in 1882, there is a six-year gap of ambiguity. That’s why I dont like to invest much time into the 1876-1934 period.

Alright, if no new Questions come in, I would start a poll on which Proposal should be adopted. The poll will start on 12th January 2026 and close on 25th January 2026 12:00 GMT.

If Prop. 1 passes, a second poll about trunk usage will be made, whether trunk will be adopted based on grade-separation or importance.

For now Ireland and UK will be excluded by the proposition. Their usage can be discussed by a later poll at another time. (ideally by local road mappers)

To aviod confusion about that “2 out of 3“ criteria. If designation and importance change at the same time, then everything is alright. There are also cases, where importance change due to a new motorway but the designation is kept for a couple years. In that case, the 2/3 applies when the second change happens.

OHM and OSM are different because OSM displays actual roads conditions whereas OHM displays long-term trends. Why do European countries have different colours for long-distance roads? There is one simple explanation: Because they have different road standards. Sweden has a near-complete separate high-speed road network, with hardly any urban streets left as trunk. Since 1936/1946, British roads have been built to four-line trunk roads, with some exceptions. Especially in very small towns, trunk roads are still using century-old streets, but that is not the intention of four-lane trunk roads. Before 1936/1946, trunk roads in Britain legally and technically did not exist. Same with Poland, which started high-speed road construction during 1990s. Before 1990, roads were technically identical to historic Reichsstrassen. Technically, only newly constructed four-lane roads are equal to British trunk roads. The system used in France and Germany (old road=primary, new road=trunk) makes more sense, as you can easily visualize the distribution of modernized and traditional roads. In both cases, you need a little bit of tolerance for small intersections on motorroads.

1 Like

Swedish Prop.1 would look like this: All “Riksvägar” and old rikshuvudvägar would qualify for primary. European roads are part of the Riksväg - Network. The trunk Question will be decided by a later vote if prop 1 passes, otherwise that’s out of the question.

The propositions only apply to continental Europe excluding the British isles.

Proposition 1: Make highway=primary dependent on the host countries first-level non-motorway road network, reflected by the operator and/or the scheme of road numbering.

Proposition 2: Make highway=* dependent on the host countries current OSM tagging practicies.

  • Proposition 1 - first-level non-motorway highway network
  • Proposition 2 - OSM rules for host country
0 voters