
New insight into Garmin's NT POI file structure
NT Extended POIs
Currently, nothing is documented about these pois:
In its basic form an extended poi , as with non NT ones, has 6 bytes: type number, subtype number, 2 bytes for longitude and latitude.
The second byte (subtype) is used as follows:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
has LBL pointers | unknown | includes label text | |||||
3 bytes | variable 3+bytes | variable + 3 bytes |
Extra Data bytes
5th bit set
if 5th bit is set then 3 LBL bytes follow long and lat bytes.
6th bit
When 6th bit is set and not 7th bit an extra 3 bytes are added followed by a data stream.; the length of this stream is variable and can contain chunks of the same size + and extra byte. If 7th bit is set then the end has been reached. Chunks are clearly separated and may contain pointers.
The 3 bytes determine the length of the stream and the structure of its contents, ie 43,33,41 using an understood algo define the stream length as 26 bytes.
As an added complication, extra bytes can be added based on the data that follows these three bytes. ie
82 10 37 can signify a length of 8 or 12 bytes
Various combinations of 3 bytes give the same length,implying that these bytes also provide information about the data stream itself.
7th bit
3 bits are added when 7th bit is set. This feature is quite common.
Although it mostly contains text , other data can be included as well.
If 7th bit is set and the LBL is not set ,then 2 or 3 bytes are used - ie F1 27 - to provide length & other information about the label.
This does not apply to non NT imgs - where the seventh bit when set follows an entirely different algorithm and all labels are stored in the LBL etc.
This block has a definite length calculated using 2nd (+3rd if even) byte(s) - the algorithm is fully understood.
The first byte seems to be some pointer to its length - if the length <16 (?) we get &f0
The second or 3rd byte (if length >255) signifies the length of the stream - the algorithm is understood.
Extra POIs
CN TYP files contain additional label information essential for the correct display of the icon.
Example: Poi type number 11017 (bus stop) might refer to & display an extra POI, ie Ski Lift
example
type & length | label | data stream | |||||||||||
0e | 87 | 4d | 01 | ee | ff | f0 | 0d | B8 | 1D | 00 | a8 | 5a | 07 |
Type 10E07 with label A and length 0d , ie 3
More on extra pois here
For more information on the IMG structure see our 'Exploring IMG Format' pdf
JCV File Structure
For more information check out JCV File structure