OSM Tools
dutch german en francais spanish spanish polish russian

Garmin GPI file structure

Introduction

This page will be updated when more data becomes available. Feel free to contact us.

The GPI file structure has not been documented but the following information should be sufficient to extract labels and coordinates from a gpi file and convert them to GPX,CSV etc

The gpi file ,similar to a tdb file, consists of a short header and a series of blocks each beginning with a type number.

The numbers generally reflect order of importance or categories,ie street name, name of town, telephone number etc

Most blocks contain a label, which is always found at the end of the block.

Current editors of GPI files do not reveal all the data ( ie labels) contained in a gpi file and are also subject to crashing out when they encounter an 'error' - 'Wrong or unsupported GPI file!' (gpsbabel).

Not all data can be read if a file has been encrypted.

Blocks

Two bytes make up the type number, always at the start of a block.

Most blocks have 0x45,0x4E as the start of a text sub block; some do not when the start of a label is fixed. Such labels often represent less important categories, like telephone numbers etc.

Text does not have to be terminated by a zero as we can ascertain its length by a two byte number.

Type data pointer to next block text flags length of text Text
2 number of bytes depends on type 4 2 2 variable length

Latitude & Longitude

These are located in the data section ,each requiring 4 bytes; they are converted to degrees using Garmin's standard map unit.Off set from text block appears to be fixed.

Speed Limit

4 bytes are used to calculate the speed limit.

It also tells you if speed is calculated in metres or miles.