New approach for a map of Thailand

Some people do not like the idea of creating an “administrative” map of Thailand: the classification of roads according to their numbers is far away from their usability. Furthermore, unpaved roads are still common in rural Thailand, but there is no appropriate representation of them on the maps - either they are displayed like paved roads, or as normal tracks.
I tried to circumvent these problems by mainly two steps:

  • creation of a different representation for unpaved roads
  • re-“classification” of roads by using several tags.
    The last step focuses on major roads. I show dual-carriage ways as trunks (unless they were tagged as motorways). Either they were already tagged as trunks, or with dual_carriage, or I inferred that from the combination of a reference number of 1-3 digits and a oneway tag or the number of lanes.
    Other over-land roads were changed into “major” and “minor” first by their current highway tag or their reference number. They were then “corrected” when a width tag was present: more than 6 meters for major, less than 6 meters for minor roads; width-tags are available for many roads around Khon Kaen - thanks, Willi! I also thought of bicycle=lane since faster roads have an extra lane for bicycles/small motorbikes, but that tag seems to be very uncommon.
    A screenshot from QLandkarte shows the South between Phuket - Nakhon Sri Thammarat - Surat Thani:
    Compare that with the “classic” representation on Stephan’s map (great work, Stephan!):
    If you want to play with the map, you can download it from:
    If you want to use the map on your Garmin device, execute “_3_MakeThaiGarminMap.bat” which will generate the gmapsupp.img file. My script files / style files for generating the map are encluded (you’ll have to adjust the paths).
    This is a preliminary status of this approach, the map requires more refinement when it comes to Points of Interests, areas, … Even borders are missing presently, and the sea can be shown as coastline only due to problems with mkgmap. Updates will follow.
    Comments and suggestions welcome.

On my tours I saw these separated lanes on roads wider than 6 m. They were between one half and two metres wide. I would never tag them bicycle=lane. Independent were they are, on provincial roads or on trunks, they were used for several purposes: pedestrians, motorbikes and cars use them for driving in both directions and for stopping and parking, also overnight. Even dealers use them for their shops and farmers to dry their crop in the sun. Tit (This is Thailand), not Germany.

True, this extra lane is a multi-purpose lane. In some places I saw road signs telling bicycle and motobike drivers to use this lane, so tha could be the “official” purpose of the lane. Of course, I saw lots of other uses.
Somewhere I saw a road sign telling bicycle and motobike drivers not to use the lane in opposite direction - readable only when using the lane in correct direction.
Are there some sugestions how this extra lane could be tagged? multi_purpose_lane=yes?

They are just part of the road with no special purpose other than the road itself. Why tag them at all?

Hi Bernhard,

intesting work. Can you give more technical details on your postprocessing? Are the styles of mkgmap that powerful or did you write your own tooling?

For my taste the map is a bit too crowed for this zoom level… As I did not not investigate further into garmin map processing: Can you adjust the zoom level in which individual roads show up or is this related to the garmin road type you assign?

What is the dark red color for? Why is this not colored green as well? Can you adjust z-order? Can you put water features in the background? It is hiding some roads. The road next to Khao Sok national park looks also funny. what happened there?

Still nice approach. Are you aiming at car/motorbike drivers with your map representation? The one on my site is a slightly modified style. It tries to show most features and is not optimized for a special purpose.


Hi Stephan,
the mkgmap style files are actually large collections of rules which are applied before a Garmin style is applied. They are really powerful. The main work here lies in the “lines” file (included in the download). But “my” rules can lead to undesired side effects, e.g. a road with a 3 digit reference number which happens to be a oneway road somewhere in a town would be re-classified as a trunk…
I tried to create the map for “road users”, no matter whether they travel by car, motorbike, or bicycle.
I use following colors:

  • green: trunk roads (dual carriage, or “motorway-like” roads)
  • red: major roads
  • yellow: minor roads
  • thin black: residential/service
    Note that route #4 between Phangnga and Tap Phut (bottom left of the image) is red, while route #415 is green. That reflects the situation there: road signs will direct you via #415.
    The zoom level at which roads appear, will be adjusted; that’s quite easy with mkgmap (and you can change that in QLandkarte, and on some Garmin devices).
    The “ZOrder” is still a problem to be solved. Khao Sok river “interferes” with the road, and minor roads starting off from a major road look like starting inside that road (yellow pixels on the red or green road). Ill investigate how to do that.
    I haven’t yet played with the technology you use for your map. Do you think it would be complicated to try that there also?

An update for the Garmin map (including contour lines) is now available at