Generating Custom Garmin GPS Maps
The following article gives step by step instructions for generating a
map which is downloadable to the Garmin series of GPS receivers. Much of
this information is available in the help text files that come with the
GPSmapper utility used to generate these custom maps. Before I proceed
any further, I would like to take the opportunity to give these guys the
credit that they are due. Needless to say this is one of the most talked
about subjects with respect to the Garmin range of GPS receivers with someone
finally managing to "step up to the plate". (The utility may be downloaded
here and is called GPSmapper,
and has just recently been updated to version 0.0044 which includes an
I initially started looking for a utility to generate custom maps from
a desire to map local golf courses that I play regularly and I was getting
frustrated that no such function existed with MapSource or sold separately
by Garmin. I even tried to contact Garmin who indicated that they have
no intention of marketing one. After digging around I found the GPSmapper
utility and the following are instructions on how to generate your own
map. My example is for a golf course, but the process is the same regardless
The following is a list of requirements needed in order to generate custom
maps using this method as detailed below.
Accurate geographical data for the region that is being generated
OziExplorer - required if photographic
imagery is going to be used as a reference source
Method of downloading map to GPS receiver. This article was written with
the assumption that MapSource
would be the method of preference. Although a third party download utility
is available, I have not tested it and cannot verify that it will work.
(You could try GPSexplorer,
but I have not validated it)
Graphic file manipulation program (MS Paint, Photoshop, USAPhotoMap etc)
Finally....a Garmin GPS receiver.
In order to generate my custom map, I obtained accurate geographic readings
by using a combination of aerial photographs, actual tracks, way points
and cross reference's to street maps obtained from my GPS receivers base
For the aerial photographs, my preference was to use the Terra
Server, despite the images only being available in black and white,
I found that I was able to download single images that were bigger in size
and that adjacent pictures could be joined together with little lateral
adjustment (if you use USAPhotoMap,
the program will composite entire regions for you that can be saved as
a single jpeg. Thanks to Dave Patton for the tip). Alternatively a mixture
of black and white/color images are available from MapQuest,
but I found piecing the separate photographs together more difficult as
the images didn't align at the edges.
Install Ozi Explorer (if not already
Install the GPSmapper
utility and make sure that it works correctly.
Add the path to the GPSmapper utility (by default it will install at c:\Program
Generate/download/scan the necessary photographs for the area to be mapped,
collect way points etc.
Using OziExplorer, load the image
(File/Load and Calibrate Map)
Calibrate the photograph using a good point of reference (cross street,
landmark, coastline, way points etc) or if using Terra Server, click "image
info" and extrapolate the Lat/Long from the grid lines. Again, if you use
USAPhotoMap, way points can be entered directly onto the map/saved that
will be accurate and can be used to calibrate the image when imported into
OziExplorer. The calibration points should be as far apart as possible
in both Lat/Long. For the maps I used Lat/Long run horizontal/vertical
and therefore the calibration point are optimal being diagonally apart.
The accuracy of the calibration can be determined by enabling the grid
inside OziExplorer under Map/Grid Line Setup).
On the map, add points of reference that can be imported into GPSmapper
that will allow generation of the necessary map detail. I used a combination
of way points for marking the blue tee-boxes (BT-"hole number") and the
center of the greens (H-"hole number"), and tracks for marking the outline
of the fairways and hazards.
To generate the tracks click the "Show" icon with the blue line (just under
the Moving Map menu), and then click "track". Before drawing each track,
make sure that a clear box is at the top of the track list. When the track
has been drawn, save each track into a separate file (Ozi Explorer PLT
format). Likewise when you're happy with all of the positions for the way
points, save these as well (Ozi Explorer WPT format).
Modify the example text file given. My example has two files, one for each
of the example golf courses mission_trails_img.txt
and mt_woodson_img.txt. A final third
file brings in all of the individual maps together into a single group.
Included in each of these files is a list of all of the PLT and WPT files
generated and the symbol to assign to it. An explanation of the file format
is given in the GPSMapper SampleMap directory, but as a summary RGN10's
are Points Of Interest, RGN20's are simple points/cities, RGN40's are streets,
railroads, streams etc, RGN80's are regions such as lakes and reservations.
Each region has it's own set of codes that can be used. In my example I
declared the fairways as RGN80, with a hex number of 0x18, i.e. Golf. Likewise
for the Way Points I used RGN10 and 0x2d05 for the holes and tee boxes.
Also declared in these text files is the grid resolution. The defaults
in the example SampleMap file generated a very jagged golf course map that
I had to modify to get the look you see below. (A list of all of the codes
is listed in the GPSmapper directory as a file called RGNtype.csv and a
text file version called RGNtype.txt)
Modify the GenerateMaps.bat file. This
will invoke the command line version of the GPS Mapper utility. As some
point in the future I will probably turn this into a Makefile as I intend
to build up a library of maps and I don't want to have to rebuild all of
them each time I change a PLT or WPT file. At the same time, a Perl script
that automatically generates both the text control file and Makefile from
the list of PLT anf WPT file would also be a worthy addition. But for now,
lets keep things simple.My batch file doesn't automatically invoke GPS
Mapper. But you can run the program by hand and then load the image that
your are interested in modifying. This will also allow labels/TRE's to
be modified. I'm currently trying to work out how to make a patch file,
I'll update this "How To" when I've worked it out!
The batch file creates two image files 10000012/13 respectively and a top
level GOLFCOURSE.img/tdb. It is these two top level files that are used
inside MapSource to navigate which maps needs to be downloaded without
having to insert a CD.
If you haven't done so already, you will need to modify the registry. The
GPS Mapper web site has a utility that will generate a template for you.
It is useful to use this as a starting point as if the order is wrong/data
is invalid, MapSource will fail to start. This script generates a registry
entry under product code 66.
Make sure that the maps just generated correspond to the location in the
registry. If they do not agree modify either the registry or the path where
the maps are stored..
Start MapSource. If it barfs, go back to the registry and check your settings
until MapSource starts without complaint..
For my example, a title should exist called "GOLF COURSES". When you navigate
to this, (they are in the San Diego, CA area of the map) you will see two
region boxes. By zooming in on these boxes additional details will become
visible. For your map, play with the zoom and grid scale settings until
the desired amount of detail is seen in the preview.
In MapSource highlight the region you wish to download to your GPS receiver.
If you have other MapSource products such as Topo/US R&R etc, highlight
the desired regions as well.
Connect you're GPS device to your PC and click "File/Send To Device".
Navigate to the approximate location of the maps on your GPS receiver and
you should be rewarded with customs maps!
High Level Zoom
Medium Level Zoom
Low Level Zoom