No Description
gerd 0b3858095e defaultStyleTidy2.patch by Ticker Berkin. His comments: 2 months ago
.idea Fix for expression bug introduced in r4158 10 months ago
.settings Change eclipse javac settings to 1.8. 2 years ago
doc - implement and document new option add-boundary-nodes-at-admin-boundaries 6 months ago
extra New code for CollationRules helper to produce unicode sort file. 4 years ago
resources defaultStyleTidy2.patch by Ticker Berkin. His comments: The changes are: 2 months ago
scripts Clarify usage of 'brackets' in documentation. 2 years ago
src Line pixmap width check, and unicode typ files 2 months ago
test tags5.patch: Improve the RuleIndex. 9 months ago
.classpath change jre settings to java 1.8 2 years ago
.gitignore Version number fallback to git. 7 years ago
.project (modified) eclipse.patch by Brian Egge: 4 years ago
ChangeLog Misc: documentation updates. 10 years ago
LICENCE Add GPL 12 years ago
Makefile Make the top directory a .gmap and not .gmapi. 2 years ago
README Beginning adding the documentation to the build. 6 years ago
build.xml Improve handling of missing hgt files. 1 year ago
ivy.xml (modified) eclipse.patch by Brian Egge: 4 years ago
ivysettings.xml (modified) eclipse.patch by Brian Egge: 4 years ago
mkgmap.iml Ignore zero length street names when creating the global index. 3 years ago


Making maps for Garmin GPS units

The goal of the project is to take the map data from
OpenStreetMap <>
and to generate a map in the Garmin file format so
that it can be loaded onto Garmin GPS units.

The original motivation was to help plan mapping sessions,
but now the maps are becoming useful in their own right.


This program requires Java 1.6 or above to run.

Producing a map is simple. Save OpenStreetMap data from JOSM
or by any other method to a file and copy it to the mkgmap
directory. In the following examples this file is called data.osm.

Run the command:

java -jar mkgmap.jar data.osm

This will produce a file called 63240001.img.

You can copy the map to your Garmin GPS unit in any way you know how.
It is best to use a SD card, since then if anything goes wrong you
can remove it from the unit and all should be well again.

Copy it to the file "Garmin/gmapsupp.img" on the card.
On many modern Garmin devices, you can use a different
name so that you can have more than one set of maps.

*NOTE* this will overwrite any other map you have on
there, make sure that you are not overwriting a valuable map.

Another way would be to use a USB memory card writer and
for a large map this is quicker as many GPS's have a slow USB

There are also various programs that can send a map to the

You should (depending on the particular Garmin model) see a OSM
copyright message on starting up, and the map name 'OSM Street map'
should appear in the map setup section.

For more help see:

Invoking mkgmap

Most of the default names mentioned in the previous section can be altered
by suitable options. Run

java -jar mkgmap.jar --help=options

to obtain an up to date and complete listing of options.

Processing more than one file at a time

The Garmin map format was designed so that a map is made of a number
of tiles, and if your map has more data than can fit into a single
tile, you will have to split the map.

See: for a program that
can do this.

You can compile all of the map tiles that are created by splitter
all at once, by simply listing them all on the command line.


This project is almost entirely based on the file format specification
document written by John Mechalas at the SourceForge project at The 'imgdecode' program
from the same source was also very important in checking that I was
on the right lines to producing a good file. Thanks.