Reduced complexity of maps

Hi all,

sorry if this has been discussed earlier, I did not find it (actually I wasn´t sure which terms to look for).

Mostly I use the OSM-Maps on Garmin-devices and I am happy with it. Well, almost happy. Garmin does not spend too much money in processor performance, and therefore the devices are somewhat slow during navigation. This takes effect in situations where there is much to display, e.g. in cities.

I generate my maps and install them in Mapsource and the Garmins on our bikes, 220, 550, 400, 660.

So my idea would be to have a chance to select levels of complexity during map generation. Lets say maps for street navigation only or maps for hikers and so on. From my knowledge this would accelerate the garmins and make anything more useful. And more there woiuld be a chance to get whole Europe in one map.

So any idea is appreciated. Thx in advance,


The most popular tool used to convert OSM Maps to Garmin format is mkgmap
mkgmap uses a “style” to determine which OSM object ends up being which Garmin object
Here is the “style guide”, that allows you to customize any style:
The entire thing is a bit complex, more easy example:
Get mkgmap from their website, go to the “polygons” file in the default style it comes with under mkgmap/examples/styles/default, you can kill anything you want:
just remove for example the line

leisure=park [0x17 resolution 20]

and they are all gone from your Garmin map it creates

I’d start by killing buildings, POI you don’t need and landuse polygons like grass or farmland

This is just a short response, if you really want to get started on customizing this style, i can give you some more details on how the entire process from osm.pbf to gmapsupp.img works

If you want to see a really cut down to basics Garmin suitable map, try these ones designed to suit the Garmin Fenix

A bit old and not up-to-date but still an excellent tutorial:

You can go way higher on max-nodes and max-areas nowadays if you got some RAM. That generates smaller gmapsupp files, because less tiles means less duplicate data in overlap areas
Below is what I do

For Splitting

java -Xmx13000m -Xms4096m -jar ./splitter/splitter.jar --max-areas=9999 --keep-complete=true --precomp-sea=./preload/ --max-nodes=2500000 --polygon-file=./preload/europe_large.poly --max-threads=4 --resolution=15 --output-dir=./splitmap/ europe-latest.osm.pbf

Make more RAM available, assuming you have. Here 13GB, assuming you got16GB in your system or more


Way faster splitting with less passes. Again, only works with more RAM


Less tiles means less overlap areas, and smaller gmappsupp files. 2.5mio works just fine with the mkgmap default style, and even more if OP wants to drop things


Optionally. Drop this option if you don’t want to convert a custom area and it will convert the entire pbf file

For final map generation

java -Xmx13000m -Xms4096m -jar ./mkgmap/mkgmap.jar --style-file=style_lowpoi --gmapsupp --process-destination --process-exits --housenumbers --remove-ovm-work-files --max-jobs=4 --latin1 --index --poi-address --check-roundabouts --check-roundabout-flares --family-name=OpenStreetMap --area-name=DACH --route --add-pois-to-lines  --poi-address --link-pois-to-ways --add-pois-to-areas --bounds=./preload/ --precomp-sea=./preload/ ./splitmap/*osm.pbf

This points to a custom folder with style. In mine I drop many many POI I do not care about


We really want that option, it makes sure that something barriers or gates blocking the way are used in routing


We also want that file from the mkgmap website and housenumbers, otherwise the address search is not working on the device