Garmin POI (.gpi, .xcsv)

A .gpi file is a set of custom points of interest for a Garmin device — speed cameras, fuel stops, campsites, dealer networks. It is the Garmin counterpart to TomTom's OV2.

At a glance

Extension .gpi, .xcsv
Encoding binary
By Garmin

History

GPI is the format Garmin's POI Loader utility produces. POI Loader is the bridge rather than the source: it takes GPX, OV2, KML, LMX, CSV, ASV or ITN input and writes the .gpi the device actually loads. Garmin has never published a specification, so independent support — GPSBabel's included — comes from reverse engineering.

Where it is used

Custom POI sets are loaded onto Garmin automotive, motorcycle and handheld receivers. A whole cottage industry publishes them, and commercial POI vendors are the main reason people meet the extension at all.

Structure

GPI is a binary container. Beyond the coordinates and names it can carry the extras a device shows at the point — a bitmap icon, a proximity alert distance, a speed threshold, a phone number — which is why a POI set is one .gpi rather than a data file plus a folder of icons. Be warned that some commercial GPI files add their own encryption or compression on top, which makes their contents unreadable to any tool that is not the vendor's.

How widespread

Specific to Garmin hardware and widespread within it. Since POI Loader accepts GPX, the usual workflow is to build the list in a portable format first and let the loader produce the .gpi — which is exactly the job RouteConverter does the first half of.

RouteConverter support

Reads Garmin POI, Garmin POI Database
Writes Garmin POI, Garmin POI Database

RouteConverter handles both the .gpi POI files and the .xcsv POI database through the bundled GPSBabel rather than with its own parser, so gpsbabel must be present — the installer ships it. A GPI file that a commercial vendor has encrypted cannot be read by anything outside that vendor's own software.

Specifications and documentation