DŮLEŽITÉ UPOZORNĚNÍ: autor tohoto textu ani autoři programů nenesou žádnou odpovědnost za škody způsobené používáním vytvořených vektorových map v GPS přijímačích společnosti Garmin. Tento text ani žádnou jeho část nelze spojovat se společností Garmin Ltd. ani s jejími představiteli.
K vytvoření vlastní vektorové mapy ve formátu Garmin IMG budete potřebovat :
Kompilátor cGpsMapper existuje ve třech verzích:
Dalším velmi užitečným programem je OziExplorer, který umožňuje pohodlnou práci s trasami (tracks) a body (waypoints). Soubory v Ozi formátu (PLT, WPT) je možno importovat do již vytvořených IMG souborů a nebo z nich pomocí programu cGpsMapper vytvářet nové mapy.
1. Základem je zkalibrovaná mapa do OziExploreru.
2. Na zkalibrované mapě vytvoříme trasy (tracks) a body (waypoints), případně můžeme použít trasy a body stažené z GPS. Z tras se ve vektorové mapě vytváří linie (RgnType=0x40) a plochy (RgnType=0x80), z bodů potom POI (RgnType=0x10) a symboly (RgnType=0x20). Pokud těmto číslům nerozumíte, přečtěte si stručný popis formátu vektorových map Garmin IMG.
Poznámka: v GPS přijímačích, které nepodporují zobrazování map ale umožňují nahrávat POI, je možné používat mapy zbavené objektů Rgn typu 0x20, 0x40 a 0x80.
3. Vytvořili jsme si soubory s trasami (PLT) a body (WPT), např.
silnice_e50.plt silnice_55.plt ulice_letecka.plt maly_les.plt POI_parkoviste.wpt POI_restaurace.wpt symbol_telefon.wpt
4. Vytvoříme si zdrojový soubor pro kompilaci, např. moje_mapa.txt. Tento soubor se skládá
z jednotlivých sekcí, které jsou odděleny identifikátorem v hranatých závorkách.
Nejdříve definujeme základní parametry mapy v sekci [IMG ID]:
[IMG ID] ID=04307845 Name=Moje mapa, CZE Datum=W84 BlockSize=512 PreProcess=N TreSize=6000 TreMargin=0 RgnLimit=1024 POIIndex=Y POINumberFirst=N POIZipFirst=N Elevation=m Levels=4 Level0=24 Level1=21 Level2=19 Level3=18 Zoom0=0 Zoom1=1 Zoom2=2 Zoom3=3 [END-IMG ID]
ID = identifikátor mapy . Pro detailní mapy musí být tento identifikátor složen z osmi číslic (případně může být i hexdecimální, ale musí začínat znakem "I") a musí být jedinečný. Identifikátor se vytváří tak, že první tři čísla udávají mapové dílo a zbylých pět číslic je pořadové číslo mapy v rámci díla. Číselné řady některých mapových produktů najdete v tabulce 1. (v tomto příkladě je použit identifikátor mapy části České Republiky z produktu Mapsource WorldMap) Name = název mapy, pod jakým bude v seznamu v GPS. V názvu, ani v jakémkoliv jiném parametru či objektu, nepoužívejte zásadně české znaky. GPS tyto znaky interpretuje chybně a mapa může být nepoužitelná (i GPS). Datum = datum mapy, standardně WGS84. cGpsMapper ale podporuje dalších 222 datumů (včetně S-42) BlockSize = velikost bloku dat:
512 - standardně
1024 - pokud je mapa po kompilaci větší než 1MB
2048 - pokud je mapa po kompilaci větší než 2MBPreProcess = způsob kompilace mapy:
F - plná optimalizace kompilátorem (standardně)
G - částečná optimalizace
N - bez optimalizace
TreSize = maximální velikost regionu (v bodech). Větší hodnota znamená, že nově vytvářený region bude větší, ale sníží se rychlost vykreslování mapy v GPS. Menší hodnota znamená, že je nutno vytvořit více regionů. Doporučená hodnota je 6000 - 10000. TreMargin = okraj přidaný k nové mapě (ve stupních). Doporučuje se nechat hodnotu 0. RgnLimit = omezení počtu objektů v regionu. Hodnota může být v rozmezí 50 - 1024. Doporučená hodnota je 700. Tento parametr může ovlivňovat rychlost vykreslování mapy v GPS. POIIndex = indexování bodů POI (funguje pouze u Shareware a FULL verze cGpsMapperu)
Y - všechny body typu Rgn 0x10 budou při kompilaci indexované. Toto umožní vyhledávání POI v GPS pomocí tlačítka FIND.
N - POI nebudou indexované a je nutné zadat doplňující informace (např. ulici)POINumberFirst = parametry POI:
Y - nejprve číslo domu a poté název ulice
N - nejprve ulice a poté číslo domuPOIZipFirst = parametry POI:
Y - nejprve PSČ a poté název uliceElevation = jednotky výšky a hloubky:
m - metry
f - stopyLevels = počet vrstev mapy LevelX = přesnost jednotlivých vrstev mapy - podrobnosti viz. tabulka 2. Level0 je nejpodrobnější mapa, Level4 (v tomto příkladě) je poslední vrstva mapy a musí být prázdná. V tabulce 3 je ukázka nastavení přesnosti u některých mapových produktu Garmin Mapsource. ZoomX = nastavení zobrazení pro jednotlivé mapové vrstvy. Tento parametr je nutný pouze pro mapy integrované do MapSource. Aby bylo zobrazení funkční, musí být hodnoty uspořádány vzestupně. Dále následuje sekce [FILE], ve které se definují textové soubory s popisy jednotlivých objektů. Tyto popisy je možné samozřejmě zadat i v definičním souboru, ale následná úprava by byla dost nepřehledná. Takto si definujeme pro každý typ objektů samostatný soubor a ten potom upravujeme.
[FILE] Name=poi.txt Name=symboly.txt Name=cesty.txt Name=plochy.txt [END-FILE]
5. Nyní vytvoříme soubory definované v sekci [FILE].
Jednotlivé prvky mapy můžeme popisovat dvěma způsoby:
Výhodnější je používat objekty z WPT a PLT souborů (pohodlně upravujeme v OziExploreru), při definici objektu v sekci [RGNxx] musímě zadat zeměpisné souřadnice.
- sekce [WPT] nebo [PLT] - vlastní objekty (POI, symboly, linie a plochy) jsou uloženy ve WPT a PLT souborech
- sekce [RGN10], [RGN20], [RGN40] nebo [RGN80] - definujeme pouze jeden objekt
Soubor bodů zájmu POI : poi.txt
[WPT] Type=0x2A00 RgnType=0x10 File0=poi_restaurace.wpt [END-WPT] [RGN10] Type=0x2F0B Label=PARKOVISTE Origin0=(49.04726,17.43185) [END-RGN10]
Type = typ POI (body zájmu - Point of Interest) - viz. tabulka 4. Pokud použijeme WPT soubor, budou pro názvy POI použity popisy bodů z WPT souboru (nepoužívat češtinu!), jinak definujeme název parametrem Label. Pouze u POI s hexadecimálním kódem v rozsahu 2a00 - 30ff lze zadávat do detailních .IMG souborů další doplňující informace: název, číslo popisné, ulici, město, směrovací číslo, telefonní číslo. K tomu je ale nutná FULL verze cGpsMapperu. RgnType = pro všechny body zájmu POI musí být 0x10 File = soubor typu WPT. Číslo za "File" udává vrstvu, ve které budou POI zobrazeny (např. File0=..). POI by měly být pouze ve vrstvě 0. Label = název POI. V názvech objektů (POI, symboly, linie i plochy) je možno používat kódy, které upravují zobrazení objektu v závislosti na zvětšení/zmenšení mapy - viz. tabulka 10. Origin = zeměpisné souřadnice POI. Číslo za "Origin" udává vrstvu, ve které bude POI zobrazen. Soubor symbolů : symboly.txt
[WPT] Type=0x51 RgnType=0x20 File0=symbol_telefon.wpt [END-WPT] [RGN20] Type=0x43 Label=PUJCOVNA LODI Origin0=(49.01739,17.42702) [END-RGN20]
Type = typ symbolu - viz. tabulka 5. Pokud použijeme WPT soubor, budou pro názvy symbolů použity popisy bodů z WPT souboru.
RgnType = pro všechny symboly musí být 0x20 File = soubor typu WPT Label = název symbolu Origin = zeměpisné souřadnice symbolu. Číslo za "Origin" udává vrstvu, ve které bude symbol zobrazen. Soubor silnic, ulic a železnic: cesty.txt
[PLT] Type=0x02 RgnType=0x40 Label=~[0x2d]e50 Levels=2 File0=silnice_e50.plt [END-PLT] [PLT] Type=0x06 RgnType=0x40 Label=Letecka DirIndicator=1 Levels=0 File0=ulice_letecka.plt [END-PLT] [RGN40] Type=0x14 Label=340 BRNO-UH Data2=(49.05052,17.46277),(49.05258,17.46346),(49.05327,17.46346) [END-RGN40]
Type = typ linie - viz. tabulka 6 RgnType = pro všechny linie musí být 0x40 Label = název linie. Před název silnice/dálnice je možno zadat kód (v ukázce je to ~[0x2d]), který bude na mapě nahrazen grafickým symbolem - viz. tabulka 7. DirIndicator = pokud je hodnota 1, ukáže GPS na křižovatce směr cesty (platí pouze pro ulice) Levels = nejvyšší vrstva, ve které bude linie zobrazena File = soubor typu PLT Data = zeměpisné souřadnice bodů trasy. Číslo za "Data" udává vrstvu, ve které bude linie zobrazena. Soubor ploch: plochy.txt
[PLT] Type=0x50 RgnType=0x80 Label=koprivniky Levels=1 File0=maly_les.plt [END-PLT] [RGN80] Type=0x19 Label=FOTBALOVE HRISTE Data0=(49.04876,17.48367),(49.04795,17.48343),(49.04857,17.48215),(49.04915,17.48225) [END-RGN80]
Type = typ plochy - viz. tabulka 8 RgnType = pro všechny plochy musí být 0x80 Label = název plochy Levels = nejvyšší vrstva, ve které bude plocha zobrazena File = soubor typu PLT Data = zeměpisné souřadnice definující plochu. Číslo za "Data" udává vrstvu, ve které bude plocha zobrazena.
6. Zdrojové soubory máme hotové, takže můžeme přikročit ke kompilaci mapy. K tomu slouží program cGpsMapper, který se spouští v příkazové řádce:
![]()
Spustíme kompilaci a počkáme na vytvoření IMG souboru:
![]()
Pokud vše proběhlo v pořádku, je kompilace ukončena hlášením "File : 04307845.img is written".
7. Mapa je hotová, nyní stačí nahrát vytvořenou mapu do Garmin GPS. K tomu použijeme program sendmap, který stejně jako cGpsMapper běží v příkazové řádce:
Upozornění! Nahráním vytvořené mapy do GPS vymažete všechny mapy, které byly v GPS uloženy (kromě základní mapy, samozřejmě, ta je uložena v paměti ROM).