Make your own downloadable maps for Garmin Mapping GPS
(For New Zealand) with GPSMapEdit and cGPSMapper
![]() |
|
![]() |
| Auckland City - with about 2 minutes of editing with GPSMapEdit (to mark the motorways) using downloaded NZTOPOOnline data. | Christchurch City - no editing, just shown with South Island Highways loaded (SH1 next to the airport shows as a highway) using downloaded NZTOPOOnline data. |
Requirements:
Data:
LINZ data (topographic, roads, streets, rivers etc) from http://www.nztopoonline.linz.govt.nz/website/nzgd2000topo/terms_cond.htm
Software:
| GPSMapEdit from www.geopainting.com |
| cGPSMapper from http://cgpsmapper.com |
| IMG2GPS from http://homepage.ntlworld.com/mdipol/img2gps |
| SendMap from http://gps.chrisb.org/en/download.htm |
Install all the above software on your PC - note that Windows 98 has limitations to the number of polygons and polylines with GPSMapEdit - XP and 2000 have no problems. Note that GPSMapEdit is shareware and should only be used for evaluation.
For demonstration purposes we will make a street map of Auckland Central with GPSMapEdit.
1.
Go to the
LINZ
website and locate the NZGD2000
series of online maps:
2. http://www.nztopoonline.linz.govt.nz/website/nzgd2000topo/terms_cond.htm
3. Set your monitor size with the onscreen prompts and enter the map
4. Select the rough area of Auckland city on the map with the cross
hairs - the map will zoom in on the location. Slow over dial-up
connections.
5. Select the Zoom to user specified scale (the magnifying glass with
the S) and select 1:50,000. This is the maximum size for the data
extract from the LINZ site.
6. The map will zoom to the correct scale. You may have to scroll the
map slightly to get a good coverage of central Auckland.
7. Click on the Custom Extract icon (the disk drive with the red arrow)
8. A new window will popup - if you are not at a scale of 1:50,000 or
better the dialogue will ask you to re-size. If you are at a
downloadable scale, the dialogue will ask you to choose the layers to
be exported. Click on the 'Layers to be extracted' link to do this.
9. A long list of radio buttons appear - for this map choose
'Coastline', and 'Roads'. If you are intending to build a map for
tramping, get the tracks, contour lines, rivers and whatever else takes
your fancy. Scroll all the way to the bottom of the list and click on
the 'Extract' button.
10. Within a short period of time (depending on the server load and
amount of data chosen for extraction) a download dialogue will appear -
click on the 'Download' link to download the data to your PC. A ZIP
file will be downloaded.
11. Open the ZIP file and extract the contents to a new directory.
12. Start GPSMapEdit
13. Follow the menu path File | Import | ESRI Shape (*.shp)
14. Navigate to the directory where the contents of the downloaded ZIP
file were extracted to
15. Choose Coastline.shp
16. The first import dialogue screen will appear - choose the
shoreline.
17. The second dialogue screen will appear - in the case of a shoreline
there is no names associated with the feature. Take the tick out of the
tick box 'Select Field for Labels'. Click 'Next'
18. The third dialogue allows you to select the coordinate system and
Datum system for the map. Select Latitude / Longitude for the
coordinate system and WGS 84 for the datum system. Click 'Next'
19. The final dialogue asks for the layer to import to - it will be
layer 0 as this is the first layer of the new map. Click 'Finish'
20. The coastline will be imported into GPSMapEdit.
21. Follow the menu path File | Import | ESRI Shape (*.shp)
22. Navigate to the directory where the contents of the downloaded ZIP
file were extracted to
23. Choose Road_cl.shp
24. The first import dialogue screen will appear - choose the
Residential Street.
25. The second dialogue screen will appear - click on the column
showing the street names. Click 'Next'
26. The third dialogue will have the values from the initial import
still populated, no changes needed. Click 'Next'
27. The final dialogue asks for the layer to import to - layer 0 will
be selected. Click 'Finish'
28. The roads are now imported into GPSMapEdit.
29. Follow the menu path File | Map Properties
30. In the first tab 'Header' you need to give the map a unique ID
number. Garmin have different Ids for each map they produce, as well as
all the third parties developing maps (which now includes you!) For the
map ID code I use the first 6 digits of my telephone number in
international format: 649411… I then add on another two
digits
for the
specific map. This gives me a number range of 100 potential maps
without having to dream up an ultra complex numbering scheme.
31. Give the map a meaningful name e.g. Auckland Streets
32. The 'Levels' tab allows you to set up levels for the map. Default
for level 0 is 24 bits | 0-120m | MapSource Zoom 0. The second level is
'blank' no map data must be in there.
33. The 'cGPSMapper' tab has some set up details for the program, which
compiles the map. The only thing to select here at this stage is the
'map is transparent' option which allows the GPS to display multiple
maps stacked on top of each other. If you have the world basemap, leave
the transparent option off, or if you have your own coastline or a
MapSource coastline, set as transparent. See notes at end.
34. The other tabs are informational.
35. Save the map as a Polish format (*.mp, *.txt)
36. Follow the menu path File | Export | Garmin IMG / cGPSMapper.exe
37. A dialogue box will popup and ask for the name to save the IMG as.
Choose something like Auckland Streets
38. The export dialogue box will appear. The path to cGPSMapper.exe
must be set here as the first step.
39. Click on the 'Run' button.
40. Depending on the speed of your PC the map build should finish
within 10 seconds for this example. More complex maps take much longer
to generate, sometimes in excess of 30 minutes.
41. There will be a new file called "Auckland Streets.img" saved. The
file should be about 58kb in size.
42. Exit GPSMapEdit
43. Fire up IMG2GPS - you may have to have to have this installed in
the same directory as SendMap.
44. Click on the 'Load Folder' button and navigate to the directory
where you saved the IMG file.
45. A list of IMG files will appear. Put a tick next to Auckland
Streets and then make sure your GPS is plugged in to the serial port,
and turned on.
46. Click on 'Upload to GPS' button, and the transfer will start. Note
that this will overwrite any other maps that have been uploaded to the
GPS.
47. Once the upload is complete, the GPS will 'reboot' and the map
should be available. If the new map does not show, check that the ID is
not being used by another map you uploaded - conflicting ID's will
cause no maps to display.
Make your own downloadable maps for Garmin Mapping GPS
(For New Zealand) with GPSTrackmaker and MapDekode
![]() |
|
![]() |
| Auckland City - with about 2 minutes of editing with GPSMapEdit (to mark the motorways) using downloaded NZTOPOOnline data. | Christchurch City - no editing, just shown with South Island Highways loaded (SH1 next to the airport shows as a highway) using downloaded NZTOPOOnline data. |
Requirements:
Data:
LINZ data (topographic, roads, streets, rivers etc) from http://www.nztopoonline.linz.govt.nz/website/nzgd2000topo/terms_cond.htm
Software:
| GPSTrackMaker from www.gpstm.com |
| MapDekode from http://www.gpstm.com/eng/dekode_eng.htm |
| IMG2GPS from http://homepage.ntlworld.com/mdipol/img2gps |
| SendMap from http://gps.chrisb.org/en/download.htm |
Install all the above software on your PC - all of this software is free, though GPSTrackmaker has some licence restrictions - you may not use the software if you are not environmentally minded.
For demonstration purposes we will make a street map of Hamilton city with GPSTrackMaker and MapDekode.
1.
Go to the
LINZ website and locate the NZGD2000 series of online maps: http://www.nztopoonline.linz.govt.nz/website/nzgd2000topo/terms_cond.htm
2. Set your monitor size with the on-screen prompts and enter the map
3. Select the rough area of Hamilton on the map with the cross hairs -
the map will zoom in on the location. Slow over dial-up connections.
4. Select the Zoom to user specified scale (the magnifying glass with
the S) and select 1:50,000. This is the maximum size for the data
extract from the LINZ site.
5. The map will zoom to the correct scale. You may have to scroll the
map slightly to get a good coverage of the northern half of Hamilton.
6. Click on the Custom Extract icon (the disk drive with the red arrow)
7. A new window will pop-up - if you are not at a scale of 1:50,000 or
better the dialogue will ask you to re-size. If you are at a
down-loadable scale, the dialogue will ask you to choose the layers to
be exported. Click on the 'Layers to be extracted' link to do this.
8. A long list of radio buttons appear - for this map choose 'Roads'.
If you are intending to build a map for tramping, get the tracks,
contour lines, rivers and whatever else takes your fancy. Scroll all
the way to the bottom of the list and click on the 'Extract' button.
9. Within a short period of time (depending on the server load and
amount of data chosen for extraction) a download dialogue will appear -
click on the 'Download' link to download the data to your PC. A ZIP
file will be downloaded.
10. Go back to step 5 and scroll the map to the southern half of
Hamilton - aim to get a small overlap with the first map. Extract
another file with the same selection of 'Roads'. You have now finished
with the LINZ website - the rest takes place in GPSTrackmaker and
MapDekode.
11. Open the first ZIP file and extract the contents to a new working
directory.
12. Start GPSTrackmaker
13. Follow the menu path File | Open | and change the file type to ESRI
Shape (*.shp)
14. Navigate to the working directory where the contents of the
downloaded ZIP file were extracted to
15. Choose Road_cl.shp
16. The import dialogue screen will appear - in the right hand section
choose 'Name' - this will give each imported track it's name from the
LINZ extract.
17. Also in the right hand section click on the 'Track' button and
choose Paved street as the style of line.
18. Click on the 'OK' button. All the streets will be imported.
19. Unzip the contents of the second file into the working directory.
20. This time use the menu path File | Marge | and change the file type
to ESRI Shape (*.shp)
21. Follow the menu path File | Import | ESRI Shape (*.shp)
22. Navigate to the working directory where the contents of the
downloaded ZIP file were extracted to
Choose Road_cl.shp
23. The import dialogue screen will appear - in the right hand section
choose 'Name' - this will give each imported track it's name from the
LINZ extract.
24. Also in the right hand section click on the 'Track' button and
choose Paved street as the style of line.
25. Click on the 'OK' button. All the streets will be imported. You
should now have all the streets in Hamilton on screen.
26. Use the draw rectangle tool (the white box on the left hand
toolbar) to draw a box around Hamilton. This creates a new tracklog.
27. Once you have drawn the box, change back to the arrow selection
tool.
28. Right click the box you have just drawn - a properties dialogue
will pop-up.
29. Change the tracklog name to 'Hamilton Streets'. This name will be
used on the uploaded map in the GPS, and in the upload list of IMG2GPS.
30. In the tracklog properties dialogue, click on the polygons tab, and
select 'Yellow map background', then click 'OK'
The area of your map will turn yellow and the streets will disappear.
31. Left click the box tracklog that you just named in step 29 and then
click on the 'Send to back' button on the left hand toolbar. The
streets will appear again on a yellow background. This process defines
the are of the map.
Save the file as a MapDekode Text file (*.DBX) - name it nnnnnnnn.DBX
where nnnnnnnn is a unique 8 digit number. Garmin have different Ids
for each map they produce, as well as all the third parties developing
maps (which now includes you!) For the map ID code I use the first 6
digits of my telephone number in international format:
649411… I
then
add on another two digits for the specific map. This gives me a number
range of 100 potential maps without having to dream up an ultra complex
numbering scheme. For this example I'll use 64941200.DBX
32. You may get an error at this point saying there there are more than
255 points in a tracklog. Use the menu path Edit | Select all, then
Tools | Tracklogs / Routes | Tracklog Reducer. In the pop-up dialogue,
select the 'Cut tracklog if it exceeds...' and enter 230 as the limit.
Click the 'Reduce' button. This will cut any excessively long tracklog
down. You may need to re-edit some of the cut tracklogs to make them
less 'angular'. Go back to the previous step once complete and save the
file as a DBX.
33. Now we are going to reload the file we have just saved - yes - even
though it is on screen.... Follow the menu path File | Open.
34. Change the file type to MapDekode Text file (*.DBX) and open the
file you just saved.
35. A dialogue box will pop-up and ask "Importing 64941200.dbx Do you
want to add the parameters of symbol, zoom and style to the waypoint
comments and tracklog names". Choose 'yes'
36. The streets will appear on screen with some code tacked onto the
ends on their names, this is where GPSTrackmaker is very powerful and
quick in manipulating objects....
37. Select one of the roads and look at it's properties... it will have
a name like "GREENHILL
ROAD<S=&H5><Z=5>". The
<S=&H5> is a special code that determines the
type of line to
display on the GPS screen, while the <Z=5> is another
special
code that determines how far zoomed out the object will appear on the
GPS screen. Close the properties dialogue once you have had a look.
38. Follow the menu path Edit | Replace.
39. In the 'Find what' field, enter <S=&H5>
40. In the 'Replace with' field, enter <S=&H6>
41. Click 'Replace all' (takes less than a second for Hamilton)
42. In the 'Find what' field, enter <Z=5>
43. In the 'Replace with' field, enter <Z=0>
44. Click 'Replace all' and then exit once it has finished (takes less
than a second for Hamilton) Exit the search and replace dialogue.
What we have done with the <S=&H5> is to change
the line type
to residential street <S=&H6>. H5 is a thicker
arterial road
type that doesn't look so good when used for dense city streets. The
<Z=5> was changed to <Z=0> to set the zoom
level for the
streets.
45. Select the background box tracklog and change it's
<Z=n> to
<Z=2>
46. Save the file again as a DBX - it's OK to overwrite the file.
47. Start MapDekode.
48. Follow the menu path Map Create | Detail map from DB (*.DBX
->
*.img)
49. Leave all the parameters in the pop-up dialog as they are except
for the zf - change it to zf=15 (19m) - experiment later... (OK, Block
= 512 should be changed to a higher number if you are creating a img
file bigger than 1 meg. The zf=17 sets the best zoom detail range for
the map. zf = 17,16,15 are fine for city maps, you may have to
experiment with the zf if the maps get too big and you need to cut some
detail.)
50. Click on 'OK' and choose the 64941200.dbx file. Within about 15-20
seconds MapDekode will build a file called 64941200.img in your working
directory. This map is now ready to upload to your GPS.
51. Start IMG2GPS - you may have to have to have this installed in the
same directory as SendMap.
52. Click on the 'Load Folder' button and navigate to the directory
where you saved the IMG file.
53. A list of IMG files will appear. Put a tick next to Hamilton
Streets and then make sure your GPS is plugged in to the serial port,
and turned on.
54. Click on 'Upload to GPS' button, and the transfer will start. Note
that this will overwrite any other maps that have been uploaded to the
GPS.
55. Once the upload is complete, the GPS will 'reboot' and the map
should be available. If the new map does not show, check that the ID is
not being used by another map you uploaded - conflicting ID's will
cause no maps to display.
![]() |
![]() |
|
|
The
finished
map should look like this on your GPS. Note that
you can zoom in much closer!
|
A
bit jaggy
here and there but who cares?
|
This would have to be repeated for the islands off the coast. It's a bit of a dog of a process to say the least! |
|
GPSMapEdit With GPSMapEdit you add layers between the base the the last layer (the last layer must remain empty - don't import or transport any objects into it). I suggest you have a look at the coastline maps to see the levels I have used and maybe use the same level bits and mapsource zoom levels in your map as an experiment to see how the levels work. With levels, objects will appear at the highest level it is in as you zoom in. Say you have four levels of a city map in GPSMapEdit: level0=21
bits 800m-1.2km zoom0=0 - the most detailed level level0 will hold the streets. They will appear on the GPS screen (with the map detail option on the GPS set to normal) at the scale of 1.2km as you zoom in from 2km and above. They will stay on the screen as you zoom in closer. Once you get to the 800m scale 'overzoom' will appear on your GPS screen at the bottom, but the map detail will still be ok and readable as you zoom right in to 200m or less. level1 will hold, say, a few main roads. They will appear on the GPS screen (with the map detail option on the GPS set to normal) at the scale of 3km as you zoom in from 5km and above. Like the streets in level0 they will stay on screen as you zoom closer. level2 will hold motorways. They will appear on the GPS screen (with the map detail option on the GPS set to normal) at the scale of 12km as you zoom in from 20km and above. Like the streets in level0 and main roads in level1 they will stay on screen as you zoom closer. level3 may hold something like a coastline or river. They will appear on the GPS screen (with the map detail option on the GPS set to normal) at the scale of 30km as you zoom in from 50km and above. Same as the above as regards the behavious with zooming in. level4 must be empty with nothing in it. You can copy objects up to the layer above by selecting them and then right clicking and using the contect menu Modify | Entend all elements up to level.... and then entering the destination level number. MapDekode / Trackmaker The tag on the object name controlls the level where it will appear along with the level of the map when you compile it.... eg a city map will have streets with z=0 - the map will be compiled in MapDekode with zf=15 - this combination makes the streets appear at 1.2km as you zoom in. See step 40 of the TrackMaker / MapDekode section above. The main roads may have a level of z=1 and they will appear from 3km etc, the same logic as GPSMapEdit |
GPSTrackMaker | MapDekode *.dbx files are plain text so can be edited with MS Word etc. I use MS Word to remove the track names (where GPSTrackMaker doesn't find a name associated with an imported shape file). The macro I use is:
Sub Remove_Tracks()
'
' Remove_Tracks Macro
' Macro recorded 29/09/04 by Graeme Williams
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "Track *"""
.Replacement.Text = """"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
![]() |
![]() |
![]() |
![]() |
| Auckland City - with about 2 minutes of editing with GPSMapEdit (to mark the motorways) using downloaded NZTOPOOnline data. | Christchurch City - no editing, just shown with South Island Highways loaded (SH1 next to the airport shows as a highway) using downloaded NZTOPOOnline data. | Hamilton City - no editing other than changing the road types and setting the zoom in GPSTrackMaker. |
Hamilton
City - no editing other than
changing the
road types and setting the zoom in GPSTrackMaker. A bit jaggy here and
there but who cares?
|