Send Maps to GPS with Mkgmap (Cross-Platform)


Create gmapsupp.img using the create batches - Windows only

Windows users will find in the map installation folder several batch files - which automatically generate a gmapsupp.img file. You can place this on your GPS device to see the maps. Maps can never be installed directly on your GPS device - gut you need to place the gmapsupp.img on the device or better the microSD memory card. Creating/placing the gmapsupp.img file is usually called sending maps to your GPS device.

Note - there are two create_gmapsupp.img batch files - However I recommend you to use the create_gmapsupp_img_with_mkgmap.bat batch file - Only this can create the address index for the map. If you use the create_gmapsupp_img.bat batch file - your map will not have an address index on your GPS device. You can still search for POI  - Places of Interest - but not for addresses.

Only advanced Garmin users should use the batch files, they are handy because they are very quick. But you should know the basics about how to use Garmin GPS devices very well. You also cannot select the region you want to send - so it is useful for quickly sending e.g. a map of Germany - or Austria. It's not possible to send the full map of Europe this way (Garmin GPS devices only accept FAT32 - so 4GB max filesize). Also note - the allowed number of maptiles on your Device is 2025 or 4096 depending on the model. I do not recommend to have more than 2-8GB of maps installed on your device MicroSD card - first the boot times will get slow - second you might hit the tile limit - third the POI search will get slow - forth you might get confused and activate more than one routeable map...


Use Mkgmap to send maps to your GPS (useful for advanced Linux users)

I know that many of you dislike closed source programs, I do that too (with the exception that for now I still dualboot to windows because of Garmin Mapsource and some other programs, otherwise I am on the good Ubuntu side of the world)!

However you can also use mkgmap for sending the maps.

1. Get and install mkgmap . Note that Java is required (Sun Java JDK is recommended). I would advise to go with the latest release or compile from source with ANT.

2. a) Now combine all .img and  One  .TYP (decide on only one of them - .TYP has to be in UPPERCASE.)  with the following command from the folder where the maps are extracted to:

(Of course you could also define the .img files by folder, and you probably have to add the path wo mkgmap) This will create a gmapsupp.img file, that you can upload to your GPS in USB mode (place it into /garmin folder on GPS internal memory or memory card)

Note that all 6*.img have to be from the same openmtbmap country file - otherwise only one "country" will show in proper colours. You can instead of deleting all but one typfile replace *.TYP with e.g. clas*.TYP or the full name like clasde.TYP.

-–family-id should be the same number as the first 4 digits of the maps (if you use a different number, you have to adjust the FID inside the .TYP-file). Note every map on your gps needs a different family-id (else they won't be shown).

-–family-name can be set to any value (only use letters and numbers, no Umlauts or symbols) and will be shown as mapname on the GPS maplist.

2 b) if you want to have contourlines (altitude lines) included too, just change the above command from "6*.img" to "6*.img 7*.img" and put the *.img from the contourline download into the same folder before running the above command.


It is now also possible to include several maps with different .TYP files at the same time with mkgmap - the command will get more complex however (read mkgmap mailinglist/docs on how to do this as I have never tried it)!

Alternatively run 2. for each mapset (e.g. "openmtbmap austria", or "Garmin City Navigator" on its own, and then combine the maps with gmaptool


Alternatives for Linux / Mac OSX users

0. You can use gmt (gmaptool) instead.

1. You could also try to use Qlandkarte GT to send the maps to your GPS. Note you may have to compile drivers for your GPS by hand.

2. Alternatively use Mapsource from inside WINE, To send maps put a symbolic link for the driver:
ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1
you will need admin rights.


18 comments to Send Maps to GPS with Mkgmap (Cross-Platform)

  • angy54

    I was wondering if there are android apps where to use the maps.
    Thank you.

  • solitone

    I need to make a Garmin .IMG file from a small set of .IMG tiles. Is there a way other than BaseCamp or MapSource to figure out the tiles I need? With Qlandkarte GT I can’t open a single .IMG file. I’m under Linux and I’d rather avoid the aforementioned applications. Thanks and Regard

    • extremecarver

      you don’t need to open a single .img with Qlandkarte GT – just open a full map (load map –> select tdb, then select mapset(c).img) –> then use the map select tool to select the area you want. Then you directly create the gmapsupp.img with Qlandakarte GT . On the map window in the sidebar – you can also see which tiles are selected – then click onto export maps and send them you your mass storage device or hdd and transfer them onwards.
      Maybe I should write a tutorial for this with pics…. – I’ll put it onto my todo list. (won’t happen in the next 2-3 weeks however).

      • solitone

        Thanks very much, I was unaware of that option in Qlandkarte. To tell the truth, it’s suggested in “information for Linux_MacOSX_or_QlandkarteGT_users.txt”. The nice thing is now I may even avoid using mkgmap.jar.

        Just one thing, though. What is the MRD file that Qlandkarte copies into the output .img file (see attached pic)? It increases the output file by almost 46 MB. Is there a way to not include it?

        I have also an unrelated curiosity. What are the mapset*.mdx files for? I didn’t find any info on them.

        • extremecarver

          mdx files are about address search. mrd does not exist – you mean mdr. And that too relates to address search.

          • solitone

            Yes, I meant MDR. In order to reduce the output map size, I need to exclude the MDR file–I don’t need address search on my Garmin device, by the way. However, there is no way in Qlandkarte GT to exclude it. Nevertheless, it’s enough to rename it in a way that Qlandkarte doesn’t recognise it.

            • extremecarver

              Yes – if you need to cut down on map size – why??? then you can remove mdr and mdx files. They are not used by Qlandkarte GT anyhow (except when sending the maps). The most radical way to reduce map size would be to remove routing data with gmaptool (not so easy) – or send the maps with good old Mapsource (runs in Wine) and untick the send routing data button. Then both address search and routing data is not sent (thats about another 10-20% size reduction).

      • solitone

        Only today I managed to upload to my Garmin the .img mapfile I created with Qlandkarte. When I start the device, it complains that “Cannot Unlock Maps”. I also tried to unite tiles manually with mkgmap, but I get the same error. The source .img tiles are from the Europe map.

        The strange thing is that I did a quick test some days ago, using the Italy map, and it worked perfectly well. Do you have any idea on this lock?


    Ich habe mit create_gmapsupp_img_with_mkgmap.bat eine gmapsupp.img – Datei erstellt, den Namen individualisiert und diese auf meine Micro-SD-Karte vom Oregon 550t übertragen (von der Region Brandenburg). Jetzt ist es so, dass ich auf dem Oregon bei ´Einstellung-Karte-Karteninformationen Karte wählen´ auf einmal zwei Brandenburg-Karten sehe. Beide heißen omtbmap_srtm_brandenburg_29.10.2015 . Es besteht in der Anzeige kein Unterschied. Sie heißen wirklich beide gleich. Auch wenn ich mal die eine, mal die andere aktiviere bzw. deaktiviere, kann ich in der Kartendarstellung keinen Unterschied sehen. Wenn ich Basecamp starte, erschein in der Kartenauswahl lediglich die karte openmtbmap_brandenburg_27.10.2015. Wenn ich dann den Oregon 550t anschließe, erscheinen zwei Karten in der Basecamp-Kartenauswahl. openmtbmap_brandenburg_27.10.2015 und openmtbmap_srtm_brandenburg_29.10.2015.
    Die Karten unterscheiden sich in der Darstellung marginal. Zu Versuchszwecken hatte ich mal das change_layout-Programm ausprobiert. Ich weiß aber nicht mehr, was ich da tat.
    Jetzt wäre mein Wunsch, dass auf dem Oregon nur noch eine Brandenburgkarte erscheint und, dass in Basecamp ebenfalls nur noch eine erscheint, wenn das Gerät angeschlossen ist (idealer Weise die gleichen Karten, also z.B. omtbmap_brandenburg_27.10.2015 ).
    Wie geht das? Und wie kann ich sowas künftig vermeiden? Vielen Dank für die Antwort im Voraus, Patrick

    • extremecarver

      Es sind zwei – weil die eine Karte die Höhenlinie ist die andere die Karte an sich. Du kannst im Skript bei der Auswahl der Höhenkonturlinien statt Option 0 Option 4 wählen – dann sollte es als eine auftauchen. Oder du sendest die Karten mit Mapinstall aus Basecamp raus – dann sollte es auch als nur eine erscheinen.
      Change Layout wirkt sich auf die Darstellung in Basecamp aus (ident zu anderer Auswahl beim installieren) – das ist komplett unabhängig vom Layout welches du mit den create batch Skript auswählst.

      • Patrick

        Hi, vielen Dank für Deine Antwort. Inzwischen habe ich mich besser eingearbeitet und eingelesen. Viele Nutzer haben ja ähnliche Probleme. Mit dem Wissen von heute ist es mir eigentlich völlig schnuppe, ob da 2 Karten im Karten-Menü erscheinen oder nur eine, weil es ja an der Funktionalität gar nichts ändert. War mehr so mein Ordnungssinn, der wollte, dass da nur eine Karte auftaucht. Ich freue mich total über die Karten, weil nun endlich auch Wald- und Feldwege auf meinem Garmin angezeigt werden. Die Routingfunktion funktioniert prima und ich konnte schon einige neue Strecken gezielt nach Planung am PC abfaren. 1A! 🙂

  • Christian Anton

    May it be this page is not up to date anymore? I am trying to build the gmapsupp with mkgmap, but the package for mtbalps does not contain any *.img files anymore. Instead, there are a bunch of subdirectories with some files in them each, all under the Product1 folder. Could you explain how to use mkgmap now with this new structure?

Leave a Reply