GPS and mkgmap

Controlling Map appearance using MKGMAP

It's quite complicated to understand the concept of  resolution and level when you are starting to create your own gmapsupp.img for your garmin unit. I analyzed the behaviour of my Dakota 20 using the different resolutions. Here is the result.

First I noticed that my Dakota 20 has 27 Zoom Levels. These are the different settings you can choose using the + and - buttons while looking at the map. My Dakota 20 goes from 5m to 800km. These 27 zoom levels don't correspont with the 24 settings of resolution mentioned in the mkgmap manual.

You can always enter resolutions of 25, 26 or 27 in a style file. It will not generate an error, but it will not produce anything visible.

Then I noticed that only the resolutions from 15 to 24 produce visible results. These results vary according to the Map Detail setting on my Dakota 20. This setting can be found here:

  • Setup / Map / Advanced Map Setup / Detail

There are five settings: Least, Less, Normal, More, Most. These settings are mapped in the table above.

So how do you control, on which resolution your features will appear? Let me show a first example.

highway=motorway {set mkgmap:autobahn='yes'}
mkgmap:autobahn=yes [0x07 road_class=4 resolution 20]

The first line checks every node if the tag highway is set to motorway. This is my way of checking the map for the Autobahn. If this is true, I set the mkgmap-internal tag mkgmap:autobahn to yes.

Then, in the second line, I tell the program to render every node where the tag mkgmap:autobahn is set to yes. The rendering shall occur with the type-icon 0x07. The garmin-internal road class shall be 4. And this road shall be shown at a resolution of 20.

This will lead to the result, that the road will be drawn on every resolution up to 20. On resolution 24, resolution 23, 22, 21 and 20. So my road will appear on every Zoom Level starting at 5m up to and including 3km. This is true in the Normal Detail Setting.

If your GPS is set to Less Detail, then the road will show up from 5m up to and including 1,2km.

In the second example you could modify the script a bit and use the syntax

mkgmap:autobahn=yes [0x07 road_class=4 resolution 20-22]

This will, on Normal Detail Settings, lead to a street shown at resolutions from 20-22. So transferred to Zoom Levels: The street is visible from and including 300m to 3km.

And the third setting would be

mkgmap:autobahn=yes [0x07 road_class=4 resolution 22-22]

Here the street would be visible only on resolution 22, which is from and including 300m to 800m.