logo separator

[mkgmap-dev] Embedding raster maps

From Oliver Eichler oliver.eichler at gmx.de on Sat Jan 2 11:12:15 GMT 2021

Dear mailing list,

let me introduce myself. Some might recognize my name. I am the main author of QLandkarte/QMapShack. I have quite some experience in decoding the Garmin formats. But little knowledge in encoding the format. My main focus is on raster maps rather than vector maps as they provide more details in alpine areas.

Years ago I was in contact with Alex Whiter to decode and encode the Garmin Bird's Eye format that uses some kind of DRM. To make it work the DRM check on the devices had to be disabled. Alex provided a firmware patcher. That solution worked pretty well over the years. A couple of years ago we had another contact. This time it was decoding the raster maps embedded into the IMG format. At that time decoding was the goal. We never considered encoding the stuff as there is the JNX format as a much simpler solution.

However life is not a constant and Alex died a couple of moons ago. See for details:


And with him the knowledge about the firmware patcher. Right now it still works. But it's just a question of time that this will fail. Therefore I invested quite some days of spare time to consolidate my old decode code and to start encoding.

Alex wrote some documentation in Russian and Wolfgang taking care of the QMapShack Wiki translated it into English:


My current progress can be found here:


Let me explain why I started to write my own encoder rather than diving into the code of mkgmap

* I never wrote Java. And starting to learn Java with mkgmap is a bit frightening ;) Sorry :D
* My target users are everyday Garmin users that do have raster maps but very little experience with map creation. Therefore I need a simple solution that can be shipped with QMapShack/QMapTools
* All IMG files embedding raster maps that are available to me make use of the newer encoding via GMP part rather than the older format.

I do not know if the last point is necessary. From my understanding it shouldn't matter. But as I am not sure I started with new newer format.

The complete project reached the point, where I can create IMG files with a raster map embedded. And I can decode that map again. However - you surely guessed it -  the device refuses to list the map. This is kind of expected. There are many details to get right and a single one can make it fail.

Therefore I decided to reach out for help and inspiration contacting this list.

My first question would be:

What is the minimum data an IMG file has to contain to be listed on the device?

Right now I try to create a file with more or less empty GMP section. From the comments in mkgmap I already learned that it needs at least two copyright strings. But does a map require to have points/lines and areas to be listed on the device? In other words: How can I make sure my header, FAT table and MPS section is ok?

To have a map with no data listed on the device would be a huge step forward.



More information about the mkgmap-dev mailing list