Some time ago, I purchased a Garmin etrex Vista HCx. Certainly not the most sophisticated GPS system available, but still good fun. It works well in the car, the pocket and on the bike. The only real downside was that the maps that come with it are fairly limited, and it would work out expensive to purchase all the maps I may want to use with it.
That said, it still works very well for recording tracks. When I first had the device, Openstreetmap was still fairly incomplete in my area, so it was good fun uploading GPX traces to help add detail to the map.
Eventually, I found out how to create a map from the Openstreetmap data that can be loaded into the Garmin etrex Vista HCX device. It requires a number of steps, but these are easy in Linux.
Grab the data
The data that is used to build the Openstreetmap map is freely available. There are a number sources for the data, but it would not be normal to want the entire world database. The people at Geofabrik provide a usefull service where they maintain a selection of extracts. Please remember this is provided as a service, so be kind to their servers. The extract I get is the one for Great Britain.
wget http://download.geofabrik.de/openstreetmap/europe/great_britain.osm.pbf
Get the tools
A number of tools are required to process the data to make it useful for the Garmin. Following is a list of tools that I have found work for me.
- Splitter
- Used to split the map into manageable pieces.
- Mkgmap
- Converts the OSM data into format suitable for Garmin device
Use the tools
These tools can be used as follows. This is not a definitive guide. Best refer to the relevant sites for the tools, but this is how I am using the commands.
splitter
java -Xmx1536m -jar splitter.jar \
--max-nodes=1000000 \
--mapid=63240001 \
great_britain.osm.pbf
This will generate a series of files from the input.
mkgmap
CMD="java -Xmx1024m -jar mkgmap.jar \
--route --remove-short-arcs \
--add-pois-to-areas --index \
--location-autofill=bounds \
--generate-sea"
for f in 6324*.osm.pbf
do
echo $f
$CMD $f
done
After this is run, we should have a number of .img
files. At this point, it may be possible to use these tiles with the Garmin map tool for the PC. But why bother. Let us just bundle these all up into one large file.
java -Xmx1024m -jar mkgmap.jar \
--gmapsupp --family-id=50 --product-id=1 63*.img
This should result in a single map file named gmapsupp.img
. All we need to do now is copy this to the Garmin
directory on the SD card used by the Etrex Vista HCx.
Results