Defining trunk roads

Currently, Thai roads are classified as trunk roads in OSM when they have one of the single-digit numbers 1, 2, 3, or 4. That’s quite a simple rule, very easy to follow, but also useless: as discussed in other threads here, bypass roads receive new (4-digit) numbers while the now less-important old road still has its single-digit reference number. When new roads are built, they receive 4-digit numbers regardless of their importance.

Since OpenStreetMap is an international project, it is adequate to look at different countries and their methods for classification.

In Germany, the reference number of a road is a good classifier: A - motorway, B - primary, L (or St) - secondary, K (or province abbreviation) - tertiary. Ehm ,wait, where are trunks? There is no special reference number for trunks in Germany. Most trunks are stretches of otherwise primary roads, e.g. B8 near Nuremberg ( Note that not all of B8 is trunk, only parts of it. Sometimes, also L roads are trunks, e.g. L3005 in Frankfurt (, while “tertiary” K3 in Bochum ( is an exception. They all share the physical features of trunks: dual-carriage highways with a kind of junctions which does not impede the fast thru-traffic.

In France, I cannot detect any coincidence of road numbers and classification. With D1083 south of Strasbourg (, I know that it has the physical features of a trunk road.

In Switzerland, road number is again a good classifier. Also here, there are sometimes numbers specific for trunks, and sometimes they have a “normal” number (

In Czechia, reference numbers starting with “R” stand for trunk roads. Actually, the “R” is just added in front of the “normal” reference number, when there is a stretch of that road with the physical features of a trunk e.g. 6/R6 near Nové Strašecí (

That means, it is internationally agreed that trunk roads are mainly defined by their physical features for fast thru-traffic, and it is not at all necessary for a road to be a trunk in all its length:

  • mostly dual-carriage highways (according to the wiki page on trunk roads, they need not be dual carriage (,
  • and junctions hardly impeding the traffic on the trunk, traffic lights are not common.
  • Typically, only motorized traffic is allowed.

Can we use that for Thailand also?
At first view, it looks easy. But it is not such easy: the concept of restricted access is not typical for Thailand, bicycles, pedestrians, ox carts etc. may use dual carriage highways. Also, any small other way - even residential or agricultural - can start from / lead to a dual carriage highway. The latter makes the definition inside villages hard.

I think that stretches of dual carriage highways outside villages ought to be classified as trunk roads. For dual-carriage highways in villages, look at the stretch of that road before/after the village, and take the tag from there.

Can we agree to such a tagging scheme for trunks?

I think the restricted access requirements can safely be left out. The only roads with restricted/controlled access are currently adequately served by the highway=motorway tag.

Using dual-carriageway status to define highway=trunk would be a large departure from what we currently have, though. A lot of lower-priority roads near and around Bangkok are dual carriageways. Take, for example, the part of Highway 347 which runs from Pathum Thani to join Route 32 at Bang Pahan. It’s a dual carriageway, but it’s not really comparable to 32 in terms of traffic capacity. (It does have more traffic lights, but I’m not sure how the number of traffic lights could be practically factored into deciding the classification for a road.) Also, since dual-carriageway status carries no legal implications in Thailand, there may be less incentive to accommodate them differently. I’m not opposed to the concept per se, but it still needs some refinement at the very least.

Pardon me for repeating this again, but I also still think we should differentiate between national highways and rural roads. If a new definition for trunk could free up a classification level and the others adjusted so that the difference is shown, that would be great.

Correct, Paul, we need several steps more to get to a useful tagging scheme.
I thought that the easiest start point was trunks - but maybe something different is a better start point.
The most important point is to get rid of the current strict adherence to counting the digits of the reference number - the importance of a road must have precedence over anything derived from the number.
And we must get rid of the notion, that only one classification for the whole length of a road is correct.
I think these two points will be also useful for the differentiation of national vs. rural roads.


As long as the revised definition is clear enough for the majority of mappers to follow then it’s fine to go this way.

Keep in mind that it’s almost impossible to rearrange all definitions by an automated edit. It would certainly break things. So there must be a manual process of migration involving checking of correct tagging.
Or living for a while with a mixed tagging style.

Going for definitions which differ much from the rest of the world will cause problems in the tools interpreting the data. For trunk it looks fine, but still a thing needed to remember when thinking about other changes.

Could you please create a sub-page below the Thailand page in the wiki and outline it there? If you have pictures helping in the definition include them. Actually, include every explanation the makes understanding the tagging easier.

Rome wasn’t built in a day. So take the time it needs to have a solid and unambiguous definition before reworking everything.


Good suggestion, RocketMan. Let’s start with your wording. Could you update the wiki page?


There’s a page at ; the draft could be created there first.

Regarding the proposed definition, I understand breaking up named routes into sections with different classification levels. I’m not sure though, how strict we want to be with the dual carriageway requirement. Suppose a highway is a dual carriageway between city A and city B, but a two-lane road from city B to city C. In this case it makes sense to have only the portion between city A and city tagged as trunk. But what if the transition from dual to single carriageway happens between the cities, in the middle of nowhere? Should the transition happen where the physical change is, or should the road continue to carry the trunk classification until the next major settlement or junction?

As for the suggested wording,

I don’t think this sentence is necessary, since motorcycles are always legally limited to the left lane, regardless of road type.

This doesn’t seem really useful, because the only roads with speed limits greater than 90 km/h are the motorways. The rest all default to 90 km/h, and even the principal highways are limited to 80 km/h in municipal areas. I guess it could say that trunks shouldn’t be signposted with lower-than-default speed limits?

What do others think about the potential issue of over-emphasising roads around Bangkok at the expense of the more provincial links? It would still be accurate in a way, since much more traffic flows around Bangkok, but do we want our definition of importance to reflect that?



It’s under Section 35 of the Land Traffic Act, B.E. 2522. It’s the same regulation that applies to trucks and buses (which also commonly flout the rule).

Quite a few, at least. Not including those which don’t go further than Greater Bangkok, there are routes 304, 305, 309, 340, 346 and 347. I don’t know all of them in detail, but they generally fit the description.

On some “trunks” I saw traffic signs that bicycles and motorcycles have to use the left line. I saw an traffic sign somewhere saying that you must not use the left line in opposite direction - but that was only readable when you were using it in correct direction… Well, that’s not such an important point for classification.

Let’s put it in easy words:
Trunk roads look like motorways, but there is no access restriction.

By the way, Paul, do you remember your post regarding highway classification some 2 years ago (
Apart from another 2 years having passed without any substantial changes to the tagging system, the re-classification of trunk roads could finally lead to more differentiation at the level of rural roads: most one-digit and many two-digit (also some 3-digit) roads will be re-classified as trunks; consequently, the remaining roads with 1/2/3 digits could be re-classified as primaries, many of the 4-digit roads to secondaries.

But those are steps to follow - steps from purely formal cirteria to usability criteria. Before we get into too many details now and stay without a result for the next future, let us start here. Step by step, trying to quickly reach consistency again. As Conficius (or Lao Tse?) said: also a journey of 1000 miles begins with the first step.

Let us do the first step now, and discuss the last mile later on!


I’ve updated the wiki page ( Please take a look at the wording there, and correct it or refine it.

Let us now see the changes on the map of Thailand, and then look at further refinements of the definition of “trunk”, and a better classification of other types, e.g. “primary”.



Please note that there may be relations for the major roads. And these relation may have an additional highway tag, which can cause strange effects in rendering: e.g. the red cirecle with the number on green lines, on sections of Phetkasem road (#4) which were changed to primary. Only after removing the highway tag from the relation, the problem gets solved.

I’m a latecomer here, but I also thought that going only by the designated numbers of roads is not optimal. It should also reflect the actual “status” of the road. I encounter this at lower level in rural situations, where there are differences in the types of roads that connect villages. Some are pave, some unpaved, etc. After all, for a routing algorithm, the more major road should given preference, but now there is basically no mechanism for that, given that all these different levels of roads are below, and “unclassified”.

It seems that someone has decided to no longer use the “unclassified” tag for roads that exist but have no government numerical designation. There is this statement:

In reading over the Wiki page on highway=unclassifed (, I cannot see how that conclusion follows. The majority of the small rural roads in northern Thailand that are not inside a town are, IMO, properly tagged unclassified according to the criteria on that page: