Creating 'IMG' maps (the basics)

Hi. I’m new here, and a new owner of a Garmin Etrex 30.

I’m a photographer who does a lot of travelling, so it started out I just wanted something I could use to create GPX tracklogs which Adobe Lightroom can use to automatically assign co-ordinates to photographs based on the time-stamp compared to the time in the GPX. It saves me from forgetting where places are when I go on a longer trip, and even just shooting in places that are familiar to me, it saves a lot of time in placing photographs on the map.

I’m not a massive fan of condensing everything into my phone, I prefer to have dedicated gadgets for specialist functions, I know these days people cream themselves over the idea that their phone is the only technology they need in their lives, but that’s just not me also I didn’t fancy buying an app for a phone which I might only have for a couple of years. Also, I’m a bit of a map nerd so the idea of having a device I could load maps onto, and generally do more than just create a tracklog appealed to me, and after initially looking at things that record tracklogs and then the Etrex 10 and 20, I ended up stumping up the extra for a new-over-hauled Extrex 30 since it didn’t seem like a huge amount more over a new Etrex 20 and still comes from Garmin as-new and with a warranty.

It didn’t come with topo installed but then I didn’t get it just to use topo, I installed a map from TalkyToaster onto it as soon as it arrived and then set about looking into how I could create my own maps.

Now I know this forum is about OSM, and I don’t intend to use OSM exclusively, but there didn’t seem to be too many suitable forums around for discussing the creation of Garmin Vector-maps and this was the most-active. I may use some OSM data but if I do then I’ll be acquiring shapefiles from somewhere like and then extract the data I want from it, and make any necessary adjustments to the projection before saving my own shapefile. Most of the data I plan on using is from OS Opendata I will probably look to OSM for footpath data, while I also have some data I have created myself, such as possible locations to photograph. I’m using ArcGIS for handling and editing shapefiles, a piece of software I was trained to use at university and have enjoyed using ever since.

I’ve been looking to find out what I can about creating IMG maps, but the information is a bit piecemeal. It seems that either I find something that’s tough to get into without knowing a few basics, or I find step by step instructions to achieve a particular thing (usually creating an IMG from OSM data) that are tricky to reverse-engineer into instructions to create maps in general. I hoped I could pick up a few pointers here.

So far I’ve gotten hold of three pieces of software:

The free version of GPSMapEdit which allows me to import shapefiles, assign a TYP code to each shapefile as I import it and save the results as an .mp file.
MapTK which allows me to create TYP files for my own symbology, which I can then embed into the .mp file in GPSMapEdit. It can also potentially compile the .mp file into an .img map.
The free version of cGPSmapper which compiles .mp files into .img maps but is command-line based. MapTK however can export .mp files directly into cgpsmapper so that I don’t have to get my hands dirty with the command-line interface.

I’ve been busily creating a map of Cumbria, my home county, from the data I mentioned above. I have an .mp file in GPSMapEdit that seems to do the trick on the computer screen at least, however the problem comes when I try to compile it. Either with cGPSmapper or MapTK, I get error messages. In MapTK it is something about levels not being in descending order (though I think I have them in the order GPSMapEdit wants them, higher level numbers for smaller scales), while in cGPSmapper it is something about some region needing split, and it was compiling for 2 hours before it finally belched out an error and failed to create an IMG file. I’m not familiar with the language of Garmin mapping yet, and I think both applications were written by people for whom English isn’t a first language, so I’m a little in the dark about what it is I need to know to create maps.

I’m sorry I’ve written so much, because what I was wanting to ask is really fairly simple. I’m having difficulty looking up information on how to compile IMG maps because at the moment I don’t know what it is that I’m supposed to know, that I need to search for information on. What would be really helpful is some kind of checklist from people who to create IMG maps, of what things I need to run through in order to compile an .IMG; for example, quality X is Y - check, quality M is N - check… etc. Or more generally, what are the common reasons why an .mp file created ham-fistedly by someone who doesn’t know what they’re doing won’t complile.


Just some thoughts, maybe you will find them helpful.

For creating maps form OSM data, the best tools are splitter and mkgmap:

You take data form, split it into tiles with splitter and compile with mkgmap. I think if you run both tools at default settings you will get a usable map.
Next stage would be to create own style for mkgmap. You can base on default style included in mkgmap package. Good documentation is included too.

IMO the most reliable 3-rd party compiler is cgpsmapper. Unfortunately it is no longer developed and I’m not sure if you can buy it anymore. Mkgmap is developed fast and is very competitive, better at some features but still lacking at others. Some years ago I have tested MapTK but found it inferior for my purpose. Maybe it is better today.

It is worth to read cgpsmapper documentation, it will give you many clues about Garmin maps:

GPSMapEdit is a very good tool. There exist open source clone called MapEdit++, you can switch to it, if you aren’t going to buy GPSMapEdit.

You probably would like to tweak map view. This is done by adding a TYP file to a mapset. Good TYP editor is TYPViewer:

I have looked at free OS data, they are very interesting. Pity they aren’t real vector maps but rather vector picture of a map. It is difficult to convert them into good Garmin map.

No they have plenty of vector maps on that OS site I linked to, are you referring to the rasterised vectors they have there, because they have shapefiles too. I had looked at MKGMap, but as I said above, most of the data I’m using isn’t from OSM… really only footpaths and tracks that I can think off I will obtain from OSM.

I’m already using GPSMapEdit and cGPSmapper, I had a look at the cGPSmapper manual, and if I’m honest, most of the stuff written in command-line format goes right over my head, but I get the idea from it that how you set up your levels is important, and could be why my map isn’t compiling. I just don’t know what the requirements are that need to be met before you compile. Is there a minimum number of levels or a maximum number, or do they have to be set up in a certain way? I’ll check out that MapEdit++ though. I’d not heard of it.

MapTK is fairly obtuse, although perfectly usable as a TYP editor, but I’ll check out that TYPviewer out too, I had heard of it but because it was called ‘TYPviewer’ I just presumed it would have no editing capability and didn’t give it a second look. Thanks for your tips.

I mean OS VectorMap District in shapefiles. I would convert it to Garmin format, but this data is bad, not a vector database but a vector drawing. Objects have no names but there are separate points with labels instead. River lines are river banks not main rivers. Rivers are broken when they go under a road. There is a layer named “Ornament” with this function (maybe these are shallows?).

You can use these data to draw a map in predefined scale, but it would need a lot of work to make a decent map for Garmin from it. Meridian data are better, but then they are much less precise.

These are good and flexible tools. Mkgmap can compile maps in *.mp format too, but I’m not sure if it is fully compatible yet. I suggest you learn them to get full access to OSM data. Shapefiles form contain quite limited set of attributes. For example you probably won’t get marked trails in this format.

You can create maps in shapefiles, convert them to OSM with ogr2osm script and use spliter/mkgmap/style to convert into Garmin format.
Ogr2osm is not an easy tool and has its quirks but probably it is the only tool, that really works for conversion.

Ggpsmapper manual explains the structure of Garmin map. See for example lists of object types or possible attributes for any object class. Levels are explained in section 4.4.
You should have at least 2 levels. Usually detailed maps contain 5-7 levels. Last level in *.mp format is always empty, it is kind of marker, up to which zoom out map should be visible.

Thanks, well I do prefer the OS maps from a cartographic perspective even though they don’t contain as much data as the OSM maps. I’m more interested in how it looks than how it works… though I do also like maps that encode data… in this case I prefer the OS ones. The ‘surface water lines’ layer is both outlines of lakes and rivers and also single lines to represent streams and drains, whereas the ‘surface water regions’ layer is the lakes, ponds and also rivers and right down to some fairly small streams represented as regions, for which the lines layer provides the outlines. I think there’s probably more detail in it that the OSM variant… or at least there is for Cumbria, which isn’t particularly intensively mapped by OSM, in particular lacking buildings. The ‘ornament’ layer contains mostly crags and embankments and other features which are represented on OS maps by hand-crafted sketching, since these features can’t be represented in the same way by simply assigning a symbol to them. I may use the roads from OSM since it has street names right down to the smallest street, whereas OSVM only names classified roads and selected unclassified ones, but will impose the OS typology that I’m familar with ‘motorway-trunk-primary-a-b-yellow unclassified-white unclassified’ which OSM contributors haven’t always agreed with.

I did have some success after reading your post and the cGPS manual though, so thanks for your help. It turns out the reason the map wasn’t exporting was the TRE and REGION settings. I’d just left these settings on the defaults in GPSMapEdit, but it turns out that those defaults aren’t the same as cGPS’ recommended settings. Altering these allowed the map to export, it’s just a work in progress but so far so good. I need to look further at the TYP file and how to make sure that it’s compiling the map with my TYP file, as it doesn’t seem to have done so on this occasion. Also the levels could do with some work, as on my Etrex, it shows Level 1 at all scales and at no point goes to Level 0 where most of the juicy stuff is. That might just be a bit of trial and error… we shall see.