I have been figuring out how to make custom Garmin maps using the names from geonames.org for use on my Garmin eTrex Vista HCx GPS. This is useful for areas for which no Garmin maps exist.
I couldn’t find any software to convert the data, so I wrote my own software. I am sharing the software here under the GNU General Public License.
To make your own places map, follow these steps:
- Download and unzip Gn2mp
- Download and install Microsoft .NET Framework 3.5
- Download and unzip cGPSmapper (a version that supports indexing)
- Download and unzip MapSetToolKit
- Download and unzip names of your choice from geonames.org
- Start Gn2mp (double click the .exe file)
- Select the unzipped geonames text file
- Select the cGPSmapper executable
- Select the ‘Convert!’ button and have patience
- Create a directory to install the map into (usually C:\Garmin\…)
- Start MapSetToolKit (double click the .exe file)
- Select ‘Select IMG’ and select the folder where you unzipped the geonames text file
- Highlight the .img file and select the ‘Add –>’ button
- Select the ‘…’ button after ‘Mapset directory’ and select the install directory
- Type a ‘Mapset name’
- Type a ‘Family ID’ (don’t use product codes, else indexing want work!)
- Be sure ‘CodePage’ is 1252
- Select ‘cgpsmapper/cpreview folder’ and select the correct directory
- Check ‘Install in MapSource’
- Select the ‘START’ button and have some more patience
- Start MapSource, select the new map and transfer it like usual
The generated map is a POI only map and has two levels. The bigger places (marked administrative or capital) are on the second level. The default zoom levels should be okay for most cases.
Even if you don’t select the cGPSmapper executable, Gn2mp generates an intermediate .mp file. This file can conveniently be edited by GPSMapEdit. In this way you can add more information to the map (for example VMap0 data) or edit the zoom levels.
If your trial period has been expired and you don’t want to buy cGPSmapper, you can compile your maps online in Mapcenter2.
The provided file geonames.map translates the feature codes of geonames.org to Garmin object types (see the user manual of cGPSmapper, section 12.3.1). Gn2mp will show unmapped features in the messages box. Unmapped features are by default mapped as miscellaneous points (0×0700) with the feature code appended to the name (separated by a dash). If you add to or correct geonames.map, please let me know, so I can update it. The feature map is originally based on the information here.
Indexing works, but ‘Find Address’ on my GPS does not (‘Find Cities’ and other functions do work). If you know how to make ‘Find Address’ working, please let me know. This seems to be called global indexing.
To check if a map id (family id) is in use, check this list.
Gn2mp was written using Microsoft Visual Studio 2008 in the C# language. You can download the project here.
Comments, corrections and remarks are very welcome, also if you just succeeded making your own map.
Change log
Version 1.2
- Workaround WPF scroll bug
Version 1.1
- DOS window removed
- cGPSmapper runs at lower priority
- GUI layout improved
Version 1.0
- Initial version




thx for sharing the information on garmin contour.. will try to use it.