Default Speed limits for Thailand

I see that Thailand appears to be missing in the OSM tags for routing/Maxspeed Wiki:

I noted the other day that on the Hwy 11 trunk road from CM to Lampang, there was a generic information sign saying the max speed limit for cars was 90 kmph. There is no definitive point at where this starts or ends, and naturally there are some sections that are lower.

A few questions …
1/. Are Thailands default max speeds set anywhere, and if not, can this be done ?
2/. Can the maxspeed=* tag effectively be placed on a relationship (ie all the road sections), or does it have to be applied to each section separately ?

And as another aside, how to tag the 50 kmph village & u-turn sections where the start is identified by a sign, but unlike the UK, there is never a sign to identify the point at which the road returns to the national speed limit.


Normally, the maxspeed tag is placed at the way. A “default” maxspeed may be used by some routing applications, but it is not added as a tag - only the known maxspeed gets tagged.
In Thailand, that’s used hardly anywhere, see e.g.

I think the reason the data is so sparse is because of the problem Russ states: it is seldom clear what the speed limit is in Thailand. Signage is inconsistent and often missing entirely and if a speed limit is set for a particular stretch of highway, one never knows where that limit stops, changes, or returns to maxspeed.

There is a roadspeed “style” file that gets accessed during mkgmap compilation. A comment at the beginning states:
Sets the road speed based on the maxspeed tag.

I wonder if we could manipulate that to set “countrywide” speed limits that would be the defaults when no maxspeed tags are present?

Something like this:

highway=trunk & mkgmap:country=THA { add bicycle=no; add motorcycle=no ; set mkgmap:maxspeed=100}

Then in the lines style one could assign maxspeeds to highway types where they don’t exist.

Was hoping someone could answer Question 2… Maybe I will have a play later as tagging a relationship, then checking the members are complete, sounds a far easier way than tagging every section.

I would be willing to bet each segment has to be tagged separately. Relations are tricky beasts. They’re fine for tying pieces of a route together but having them render properly and knowing how to tag them are both problematical in my admittedly limited experience.

I suspect someone will come along with your answer.

Almost. That would overwrite an existing setting; and “the mkgmap:” qualifier is not needed. Use “add” instead of “set” (i.e. when the tag already exist, it won’t be changed):

highway=trunk & mkgmap:country=THA	{ add bicycle=no; add motorcycle=no ; add maxspeed=100}

Yep, that sounds good. I wasn’t thinking to control maxspeed itself but only a mkgmap:variable which could be tested later. However, the “add” directive is more direct and should work just as I intended.

So, if desired one could add a rule for every highway type and add a maxspeed tag if one is not already present. Cool. I like it.

Thanks Bernhard