Garmin POI Loader
Overview
The scope of this page has been expanded beyond just the POI Loader as a I learn more about the POI format.
You can download "POI Loader" from the Garmin site. Then you can create simple GPX or CSV text files containing point data, and load them into a Garmin handheld like a Garmin ETrex Vista HCX or PND like a Garmin nuvi 855 with POI Loader.
File formats
Garmin's official file format site
CSV format
Here is the format of the file, cribbed from Garmin's docs
<Lon>,<Lat>,["]<Name>[@<Alert Speed>]["],["] [comment]["] Longitude and latitude must appear in WGS84 decimal degrees format (ddd.ddddd; negative numbers indicate West and South). If you include quotes around the name or comment, you can include line breaks in the text. The following are examples of Custom POIs in the proper format: -94.81549,38.80390,Bonita -94.79731,38.81099,Ridgeview@25 -94.74240,38.81952,Heritage Park,Perfect site for a picnic -94.76416,38.81227,Garmin,"1200 E. 151st Street Olathe,KS 66062 913/397.8300"
I don't use CSV but you can download POI loader and refer to its internal docs for more information.
GPX format
GPX is an open format for exchanging data between GPS/GIS apps, not just POIs. Generic information GPX format
GPX POI files
Rather than an extensive specification I just show an example of what I use. Sample POI file in GPX format consists of a header, metadata, POI's, and a closing tag. There is a lot of flexibility in what fields can be used. Look up the official specs. This is what I settled on.
Header section, put anything you want for the "creator" attribute
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <gpx xmlns="http://www.topografix.com/GPX/1/1" creator="Wildsong" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd"
Metadata section, this tells about the POI file. Most everything here is optional, just helps keep things organized. I put the time that the GPX file was generated into the TIME field. The bounds is a bounding box enclosing all POIs in the list, I just threw that line in there.
<metadata> <name>San Francisco</name> <desc>San Francisco Points of Interest</desc> <author> <name>Brian Wilson</name> <link href="http://wildsong.biz/index.php?title=Garmin_POI_loader"> <text>POI Loader Information</text> </link> </author> <link href="http://wildsong.biz/index.php?title=San_Francisco_POI"> <text>San Francisco POI download page</text> </link> <keywords>Cliff House, SF Zoo, SF Botanical Garden, California Academy of Science, Transamerica pyramid, Union Square <bounds maxlat="44.0933480" maxlon="-123.0636833" minlat="44.0269667" minlon="-123.1179900"/>
</metadata>
Here is a sample poi entry; there can be many.
<wpt lat="37.7685" lon="-122.4697"> <ele>74.0</ele> <name>San Francisco Someplace</name> <cmt>This short description shows up in the Garmin.</cmt> <desc>This long description shows up in the Garmin. Some people put the exact same text in both the cmt and desc fields.</desc> <link href="Data/Location3649-3"/> <sym>Waypoint</sym> <extensions> <gpxx:WaypointExtension xmlns:gpxx="http://www.garmin.com/xmlschemas/GpxExtensions/v3"> <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode> </gpxx:WaypointExtension> </extensions> </wpt>
Closing tag, after the list of POIs you need to close the file with this.
</gpx>
What can I use for the sym tag???
- Waypoint
- Flag, Blue
What can I use for the gpxx:DisplayMode tag?
- SymbolAndName
GPI format
You can convert the GPX/CSV files into GPI format and upload them to the GPSr in one step with Garmin's POI Loader, or you can use gpsbabel to convert the POIs to a GPI file and then just work with that file. (Copy it to device either via SD card or via mass storage mode.)
Using many POI files
I just ran across this page, which discusses having many different POI databases. http://forums.groundspeak.com/GC/index.php?showtopic=140808
Basically the trick is to rename the generic poi file on the device so that when you upload a new one via POI Loader it does not overwrite existing points.
- Create GPX file from point shapefile ("places.shp" => "places.gpx")
- Feed "places.gpx" to POI Loader, which generates "poi.gpi"
- Rename "poi.gpi" => "places.gpi"
The initial conversion can be done with a geoprocessing tool or with gpsbabel. Repeat the three steps for each point file.
Top level folder is /Garmin/Poi, and you can use subdirectories too...
Custom bit maps
Name the BMP file after the POI file and POI loader will use it for all points in that file, for example "restaurants.csv" and "restaurants.bmp".
Bitmaps should be 24x24 or smaller. Magenta is transparent by default.
Software Tools
GeePeeEx editor http://geepeeex.googlepages.com/