New Zealand Open GPS Maps Project

for Garmin Mapping GPS

Tutorials

GPSMapEdit and cGPSMapper Tutorial
GPSTrackMaker and MapDekode Tutorial

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?


Notes

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
level1=19 bits 3km zoom1=1
level2=17 bits 12km zoom2=2
level3=16 bits 20km-30km zoom3=3
level4=15 bits 50km zoom4=4 - the empty 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

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?