Cs:OSM Map On Garmin/IMG File Format

From OpenStreetMap Wiki
Jump to navigation Jump to search

OSM Map On Garmin

Reverzní inženýring formátu mapového IMG souboru používaný na navigacích Garmin

Soubor IMG obsahuje všechny informace potřebné k vykreslení map na GPS přístrojích Garmin, může podporovat také informace pro trasování pro GPS přístroje, které umožňují navigaci (např. automobilové GPS a nějaké přístroje určené pro turistiku).

Soubor .img je v podstatě obraz disku (včetně partition table) obsahuje souborový systém, který obsahuje pod-soubory (subfiles), které zajišťují funkce GPS přístroje. Souborový systém se zdá být 'přímý': to znamená že nejsou přímo podporované podadresáře. Nicméně soubory .GMP poskytují jistý druh podadresářové struktury. Níže najdete více podrobností.

Here is source code for a simple Linux/Unix command-line program to take an .IMG file and to create a directory of files corresponding to its contents. It would be simple to modify this to run on DOS/Windows... help yourselves!

Hlavička IMG souboru

Byte Offset Délka (bytes) Popis
0x00 1 Je li tato hodnota nenulová, je celý obsah .img souboru XOR-ovaný touto hodnotou
0x01 7 Obsah všech těchto bytů je roven 0x00?
0x08 1 Hlavní verze mapy
0x09 1 Podverze mapy
0x0A 1 Měsíc aktualizace mapy (0-11)
0x0B 1 Rok aktualizace mapy (+1900 pro hodnoty >= 0x63, +2000 pro hodnoty <= 0x62)
0x0C 2 Obsah všech těchto bytů je roven 0x00?
0x0E 1 Mapsource flag, 1 - soubor vytvořený v programu Mapsource, 0 - mapa Garmin pro Basecamp a Homeport
0x0F 1 kontrolní součet, suma všech bytů modulo 256 by měla být 0
0x10 7 Signature: DSKIMG 0x00 or DSDIMG 0x00 for demo map, 0x44 0x53 0x4b 0x49 0x4d 0x47 0x00
0x17 1 ??? 0x02

The Filestore

A simple 'flat' filestore based on File Allocation Tables (FATs) though there is no serious resemblance between the format of a FAT used here and the more (in)famous FAT used in Microsoft's DOS and early Windows filestores.

The File Allocation Table starts at offset 0x600. Each sequence is 0x200 Bytes (512 B) long. It is terminated by a sequence of zeros. Example:

00000600   01 30 30 30 31 30 30 30 30 52 47 4E 45 E8 2B 00   .00010000RGNE.+. (first entry)
00000800   01 30 30 30 31 30 30 30 30 52 47 4E 00 00 00 00   .00010000RGN.... (second entry)
(...)
00007400   01 30 30 30 31 30 30 30 30 4E 4F 44 00 00 00 00   .00010000NOD.... (last entry)
00007600   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................ (end of FAT)

sub soubory

každý sub soubor má svojí vlastní stránku, ale pro rychlý přehled známé sub soubory jsou:

sub soubor TRE

informace o tomto sub souboru mohou být nalezeny zde.

sub soubor RGN

Obsahuje mapové elementy jako polylines, polygons a points. Nějaké informace o tomto souboru mohou být naleze nalezeny zde.

The NOD Subfile

This contains the routing information, unused by those GPS units that don't offer routing. Fill in here ..

The MDR Subfile

This contains the searchable address table used for finding routing destinations. See here for details.

The SRT Subfile

This is a fairly short file, containing a lookup table that categorises the characters in the map's codepage, and defines their collating sequence. Details are here ..

The GMP Subfile

This appears to represent a subtile of the larger area covered by the .IMG file. Its filename is of the form IXXXXXXX.GMP (where the 'X' characters are uppercase hexadecimal digits). Inside the .GMP file is a copyright message and the contents of a .TRE file, an .RGN file, an .LBL file, a .NET file and a .NOD file corresponding to that subtile. See here for details.

The DEM Subfile

The DEM (Digital Elevation Model) subfile contains elevation data used by Mapsource (shading, height profiles of routes) and Basecamp (3D view, height profiles of routes). Unfortunately, it seems that not much information is available right now. GMapTool can create "empty" DEM files and can also be used to extract DEM subfiles from IMG files with DEM information. See here for some preliminary results.

Odkazy