Jak vytvořit vlastní mapu pro Magellan?
Na tvorbu map slouží program MobileMapper Office (dále jen MMO). Jde o software přímo od firmy Thales Navigation. Byl (je?) k dispozici ke stažení přímo na jejich FTP serveru, ale bohužel je tam jen nová verze, která pro naše účely není vhodná. Tato standardní verze totiž umí vytvářet jen mapy ve formátu, který bez konverze není použitelný v GPS Sportrak/Meridian, a navíc generuje jen jednoduché mapy bez rozdělení vrstev do skupin atd.
Chytří lidé z www.msh-tools.com ale objevili, že součástí MMO jsou i DLL, která obsahují funkce na tvorbu rozšířených map. Také zjistili že výstupy z MMO se dají zkonvertovat, aby je akceptovaly GPS Sportrak/Meridian. A tím se otevřela cesta k tvorbě map, které jsou co se funkčnosti týče od těch originálních k nerozeznání.
Pro tvorbu map proto vřele doporučuji nejstarší verzi MMO, tedy verzi 1.0. Firma Thales si totiž zřejmě všimla co se děje, a v MMO verze 2.0 (aktuálně dostupná verze) už funkce pro tvorbu rozšířených map vůbec nejsou. Verze 1.1 je sice teoreticky také použitelná, ale zatím neexistuje způsob jak v ní tyto pokročilé funkce aktivovat. Odkaz na stažení MMO verze 1.0 je v sekci "download".
Budu předpokládat, že máte nainstalován MMO 1.0, a že jste si aspoň zběžně přečetli postupy z www.msh-tools.com (obzvlášť "Advanced maps"). To je základ, bez kterého nemá příliš smysl se do map pouštět.
Princip tvorby map pro Magellan je zhruba tento:
- získání geografických dat (ESRI, Garmin IMG, MP, MIF, WPT, ...)
- konverze dat do jednotného formátu (ESRI, alias SHP)
- volitelně: případná úprava dat (změna názvů silnic, přepočet výšky u vrcholů ze stop na metry, doplnění dalších vypočítaných geografických údajů jako jsou třeba nejbližší města, atd. ...)
- definice mapy v MobileMapper Office, tzn. rozdělení mapových objektů do skupin (silnice, železnice, vodstvo, ...) a vrstev (vodstvo = vodní plochy, řeky, potoky; silnice = dálnice, silnice 1. třídy, ...), a nastavení správného vzhledu pro všechny typy objektů (vodstvo = modrá barva, turistické značení = tenká čárkovaná linka v odpovídající barvě, ...)
- samotné vygenerování mapy v MobileMapper Office
- volitelně: závěrečné doladění parametrů pro export mapy, tzn. úprava viditelnosti vrstev, definice skupin ve kterých se dá vyhledávat, ...
- upload mapy do GPS
Příprava dat:
Musíme mít k dispozici nějaká data ve formátu SHP (alias ESRI). Ta získáme buď z veřejně dostupných zdrojů, nebo si je zkonvertujeme z formátu Garmin.
Konverze z formátu Garmin IMG
Ideálním programem je cGPSmapper. Nám bohatě stačí free verze. Použití je triviální:
cGPSmapper soubor.img
Vznikne soubor s příponou .MP, což je takzvaný "polský formát". Následně tento soubor zkonvertujeme do formátu SHP:
cGPSmapper SHP soubor.mp
Výsledkem budou čtyři sady souborů (point, line, polygon a poi), a v každé z nich
tři soubory s příponami .dbf, .shp a .shx. S těmi budeme dále pracovat. Sady
"point" a "poi" obsahují body (města, kopce, ...), sada "line" obsahuje
čáry (silnice, řeky, ...) a v sadě "polygon" jsou plochy (parky, města,
vodní plochy, ...). Soubory si můžeme libovolně přejmenovat, je jen důležité aby celá sada (.dbf+.shx+.shp)měla stejný název.
Pozor, cGPSmapper vyrábí DBF soubory, ve kterých jsou názvy sloupečků malými písmeny. To se nelíbí MMO, který pak při generování mapy padá se zavádějící chybovou zprávou. Možností nápravy je několik:
- Upravit hexeditorem program cGPSmapper.exe, a změnit v něm texty 'label', 'type', atd. na velká písmena. Pokud víte co je to hexeditor, je úprava triviální :).
- Upravit hexeditorem názvy sloupečků ve vytvořených DBF souborech.
- Načíst DBF soubor do Excelu, změnit název sloupečků, a opět uložit.
Oproti strašnému programu TXT2SHP, který spousta lidí doporučuje, je použití cGPSmapperu bezproblémové a hlavně velice rychlé.
Samotná tvorba mapy
Použijte program "MMOfficeGRP.EXE" namísto "MMOffice.EXE". Pouze MMOfficeGRP umí vytvářet rozšířené mapy, ve kterých jsou objekty dělené do skupin.
Na serveru www.msh-tools.com doporučují použít program "addSTDgrp.exe", který do MMO zavede standardní skupiny vrstev (silnice, vodstvo, železnice, parky). Původně jsem ho také používal, ale pak jsem narazil na několik chyb které má, a nakonec jsem zjistil že používat standardní skupiny je naprosto zbytečné. Mnohem lepší je vytvořit si skupiny vlastní, a to proto že:
- Standardní skupiny se nedají měnit, což je docela hloupé když si chcete třeba do skupiny "železnice" přidat i bodovou vrstvu "zastávky".
- Vrstvám ve standardní skupině se nedají měnit parametry zobrazení. Nemůžete tedy jednoduše nastavit, že se třeba železnice mají vykreslovat hnědou barvou.
- MMO o standardních skupinách nic neví, a proto po každém generování mapy budete muset znovu a znovu spouštět addSTDGRP.exe, který navíc občas pokazí to co jste v souboru EXPORT.CFG ručně opravili.
Nadefinujte si tedy skupiny podle vlastního uvážení, v nich vytvořte vrstvy, a propojte všechno se SHP soubory. Nezapomeňte u DBF souborů vybrat sloupeček ve kterém se vyskytují názvy objektů, jinak se názvy nebudou nikde zobrazovat.
Význam jednotlivých položek je následující:
- Project/Map Name
Název (identifikátor) mapy, tak jak se bude zobrazovat v GPS. Také použije jako název adresáře do kterého se mapa ukládá. Doporučuji tedy nepoužívat mezery a diakritiku.
- Project/Map Scale
Měřítko mapy pro zobrazování v PC. Samo o sobě nemá žádný význam, určuje
pouze maximální měřítko, které můžete nastavit u jednotlivých vrstev.
Chcete-li tedy, aby mapa byla na PC viditelná už od měřítka 1:2500000, nestačí
změnit ho jen zde, ale je pak nutné alespoň jedné vrstvě nastavit měřítko na stejnou hodnotu. Pak se zmíněná vrstva bude zobrazovat od zvoleného měřítka.
Doporučuji aspoň jednou použít hodnotu 1:2500000 nebo vyšší, protože pak nebudete muset zoomovat do zblbnutí, abyste viděli aspoň část mapy :).
- Project/Merge objects with equal names
To je trochu oříšek. Těžko říct, jak tento parametr nastavit. Po jeho
zaškrtnutí totiž dojde k tomu, že MMO jakoby spojí všechny linové a plošné
objekty se stejným názvem, a bude je v databázi zobrazovat jen jednou.
Kupříkladu silnice: Taková dálnice D1 se skládá ze spousty úseků, a každý
se jmenuje "D1". Při nezaškrtnutém "Merge" se nám tedy dálnice v databázi GPS
zobrazí asi padesátkrát, a hledání konkrétní silnice bude tedy velice
nepohodlné. Zdálo by se tedy, že "Merge" by byl ideální.
Ale: co třeba rybníky? V ČR je několik rybníků které se jmenují "Malý",
"Suchý", apod. Bez zapnutého "Merge" budou v databázi vidět hned tři rybníky
s názevem "Suchý", což je v pořádku. Se zapnutým "Merge" bude ale v databázi
jen jeden z nich, neznámo který. Nijak se tedy nedozvíme, že hledaný rybník je
nejen na druhém konci republiky, ale vyskytuje se třeba i 5 km od nás, protože
GPSka nám jako naschvál nabídne jen ten na hony vzdálený.
Těžko tedy říct, která varianta je lepší.
- Group name
Názvy skupin se zobrazují v GPS (menu "Database"), takže si je nazvěte jak
uznáte za vhodné. Neměly by ale obsahovat diakritiku, a neměly vy překročit délku 15 znaků.
- Layer name
Názvy vrstev se nikde nezobrazují, ale použijí jako základ pro název souborů,
takže nesmí obsahovat mezery, a doporučuji vynechat diakritiku.
- <Název_skupiny>/<Název_vrstvy>/Type name
Na typu vrstvy celkem nezáleží. Zobrazuje se jen v MMO, ve chvíli když najedete myší na nějaký objekt. Pak se ve stavovém řádku ukáže i jeho typ. V GPS se nevyužívá.
Je dobré mít pod kontrolou pořadí vrstev. Vrstvy se totiž vykreslují postupně, od nejnižšího pořadí k nejvyššímu. A pokud byste měli třeba plochy měst úplně nahoře, tak překryjí vše co je pod nimi (silnice, ulice, ...). Pořadí vrstev se sice přímo v MMO měnit nedá, ale ruční oprava je naštěstí triviální:
-
Po uložení projektu do MMP souboru si soubor otevřte v libovolném editoru, a změnou parametru "ORDER=" u jednotlivých
vrstev pořadí snadno změníte. Vrstvy se na PC i v GPS vykreslují od nejnižšího
pořadí k nejvyššímu. Bude-li vám vadit že třeba vrstva s plochami měst překrývá
silnice, stačí této vrstvě přiřadit co nejnižší pořadí, a bude po problémech.
-
Možná jste si všimli, že pořadí vrstev se dá měnit přímo v MMO, a to v dialogu "Operations/Setup attached maps".
Má to drobnou nevýhodu: tato změna platí pouze pro momentálně připojenou mapu. Jakmile v projektu cokoli změníte a mapu znovu vygenerujete, budete muset pořadí nastavovat znovu. Po desátém pokusu vás to přestane bavit. Přijde mi jednodušší jednou si pohrát s MMP souborem, a pak už být bez starostí.
Před exportem mapy (tzn. jejím skutečným generováním) je potřeba odpojit
aktuálni background mapu v menu "Operations/Setup Attached maps/Detach
map", jinak bude MMO hlásit že mapa není kompatibilní s připojenou mapou.
Po exportu mapy doporučuji ukončit MMOfficeGRP, spustit standardní MMOffice, a v menu "Tools/Background maps" čerstvě vygenerovanou mapu odpojit (detach) a hned znovu připojit (attach). Pokud to neuděláte, MMO si bude chybně pamatovat název regionu a jeho hranice, a do GPSky pak může poslat jiné údaje než chcete. Název vaší mapy by po této operaci měl být vidět v toolbaru, na konci seznamu u tlačítka s ikonkou zeměkoule.
Aby v GPS fungovalo vyhledávání, ukončete MMO, otevřte si v editoru soubor MAP\EXPORT.CFG, a do sekce [GROUPS] doplňte parametr SEARCH_GROUPS. Ten říká GPSce, které skupiny se mají nabízet v menu "Database", tzn. ve kterých skupinách bude fungovat vyhledávání. Formát parametru SEARCH_GROUPS je tento:
SEARCH_GROUPS = pocet_skupin skupina1 skupina2 ... skupinaN
Sekce [GROUPS] tedy může vypadat například takto:
[GROUPS]
NUMBER=6
0=Mesta 0
1=Vodstvo 0
2=Letiste 0
3=Parky 0
4=Zeleznice 0
SEARCH_GROUPS=3 0 1 4
a znamená to že pro hledání se v GPS mají nabízet skupiny č. 0, 1 a 4 (v tomto pořadí), tzn. "Města", "Vodstvo" a "Zeleznice".
Autorouting
Zní to dobře, že? GPS Magellan v posledních verzích firmwaru podporují routovatelné mapy, tzn. mapy na kterých si řeknete "chci jet z bodu A do bodu B", a samo vás to donaviguje po cestách necestách, a nikoli jen vzdušnou čarou.
Výroba vlastní routovatelné mapy ale naráží na tři překážky:
- Legální: součástí routovatelné mapy musí být soubor routing.dat, který zřejmě obsahuje ikonky pro navigaci. Bez něj se GPS i k routovatelné mapě chová jako by to byla mapa obyčejná. Jenže tenhle soubor se nedá nikde sehnat, a dá se buď vyextrahovat z existujícího IMG souboru, nebo prostě zkopírovat třeba z MapSend Direct Route. Takový soubor ale nemůžu dát do volně šiřitelných map :(.
- Dopravní: bez doplňujících informací typu "tohle je jednosměrka", "tady se nesmí odbočovat vlevo", případně "tady je mimoúruvňové křížení, takže silnice nejsou propojené" je routování k ničemu. Ty informace by do mapy musel někdo doplnit a aktualizovat je.
- Technickou: myslel jsem si že vím jak vyrobit routovatelnou mapu, ale při
bližším zkoumání se ukázalo, že GPS tvrdošíjně odmítá k navigaci využít dálnice
a silnice 1. třídy, a naviguje jen po okreskách a ulicích. Ve free mapě pak
routování nefungovalo vůbec :(, GPS se pořád tvářila že jsem mimo dosah
silniční sitě. Originální mapy využívají k routování kromě běžných vrstev se
silnicemi i 3 další speciální vrstvy (typu 17, tzn. nikde nedokumentovaného),
a kromě LAY+CLT souborů ještě využívají soubory s příponami CAR+CCT. CCT je
evidentně pouze něco jako CLT, a dal by se snadno vygenerovat. Ale CAR je kdoví
co (zřejmě obsahuje právě informace o zákazech a přikázaných směrech), a nemám bohužel čas ani chuť zjišťovat jeho strukturu. Za ušetřené peníze
si raději koupím Garmin :(((.
U volně šiřitelných map tedy autorouting nečekejte.
Řešení známých chyb
- MMO spadne hned při pokusu o spuštění (a tím myslím že skutečně SPADNE, ne že vypíše nějakou zprávu a pak v něm něco funguje a něco ne).
Zřejmě jste si hráli s POI.CFG, EXPORT.CFG, atd., nebo má některý ze spousty konfiguračních souborů chybný obsah.
Náprava: stačí přeinstalovat MMO. Nemusíte mít obavy, všechny projekty a mapy zůstanou na svém místě, a reinstalace je poměrně rychlá.
- MMO při spouštění hlásí "cannot initialize export"
V souboru MAP\EXPORT.CFG je chyba, pravděpodobně v sekci [LAYERS] nebo [GROUPS]. Nic se neděje, pouze nebude možné vygenerovat IMG soubor k nahrání do GPS.
Náprava: většinou pomůže, když spustíme "addSTDGRP.exe". Nebo můžeme soubor zkontrolovat ručně, a opravit "díry" v číslech vrstev, skupin, atd.
- MMO při uploadu mapy do GPS hlásí "regions converting failed"
Změňte řádek "Write_Export_Log=0" v souboru "MMOffice.ini" na "Write_Export_Log=1", a zkuste provést upload znovu. Až MMO zahlásí chybu, podívejte se do souboru Export\Logs\log.txt, na konci by měl být poměrně přesně identifikován zdroj chyby (vrstva, databáze POI, ...).
Pokud je problém způsoben databází POI, je každá rada drahá :(. Zatím vím o těchto důvodech, které vedou k chybám:
- Název POI nesmí začínat mezerou.
- Název POI nesmí obsahovat znaky "[", "]", "(", ")", "+", "/" a "'".
Občas je sice MMO akceptuje, ale většinou kvůli nim zahlásí chybu.
Například v názvu geocache se občas závorky vyskytnou a MMO proti
nim nic nenamítá, ale závorky v názvu kopce "Vysoky (73 m)" mu už
vadí. Nerozumím tomu.
- Kategorie POI nesmí mít na začátku dvě stejná velká písmena.
- Update: Název POI musí začínat písmenem nebo číslicí. To je asi hlavní důvod, proč občas POI nešly zkonvertovat.
V každém případě nezbývá než experimentovat, zkusit třeba vypnout databázi POI nebo zrušit problematickou vrstvu, a pokusit se o export znovu :(.
- Jakákoli zvláštní chyba při generování mapy
může mít několik příčin:
- v názvu vrstvy máte mezeru (častá chyba, a přitom velice nenápadná)
- název vrstvy nebo skupiny je příliš dlouhý
- sada souborů DBF+SHP+SHX je poskládaná z různých zdrojů, a soubory nejsou kompatibilní (příklad: smazali jste v DBF souboru některé řádky, a teď je počet údajů v DBF jiný než v SHP a SHX).
Doporučuji prozkoumat soubor "main_ini.log", většinou z něj poznáte co se MMO nelíbí.
- GPS se zasekne/vypne při pokusu o vstup do menu "Database" a dál
Zapoměli jste doplnit SEARCH_GROUPS do MAP\EXPORT.CFG.
- GPS místo názvu mapy zobrazuje "&World" nebo podobný nesmysl
Zapoměli jste mapu v MMO odpojit (detach) a znovu připojit (attach).
- Objekty jsou na PC v pořádku, ale v GPS jsou všechny černé
Vzhled objektů v GPS je definován v souborem EXPORT.CFG, a to na dvou místech:
- Vytvořil jsem databázi POI pomocí POIdbcreator z msh-tools.com. V MMO se POI zobrazují správně, ale v GPS mají všechny body stejnou (univerzální) ikonku.
Zřejmě jste po vygenerování POI znovu zkoušeli odpojit a připojit mapu, nebo jste ji vygenerovali znovu. Stačí pomocí POIdbcreatoru znovu vygenerovat i databázi POI, a v GPS bude vše OK.
- Během uploadu mapy do GPS se něco stalo, a GPS teď odmítá naběhnout. Hlásí jen "Unit contains no maps" a hned se vypne.
Nemějte obavy, nejde o nic vážného. Pravděpodobně došlo pouze k tomu, že GPS teď obsahuje nekompletní mapu, a protože se jí takovýto porušený soubor nelíbí, odmítne s ním pracovat a dá to najevo takovouto matoucí zprávou.
Našel jsem 3 způsoby jak z toho ven:
- V 99 % případů pomůže, když tuto vadnou mapu ve skrytém menu VYPNETE, a následně ji po úspěšném zapnutí GPS zkusíte nahrát znovu:
- Vypněte GPS.
- Stiskněte tlačítka "Nav" (ikonka zeměkoule) + "Goto" (ikonka panáčka -- "Johny walker" :)), držte je stisknuté, a k tomu stiskněte ještě "Power" (červené tlačítko).
- Po chvíli se objeví malé okno se číslicemi "00".
- Šipkami změňte číslice na "92", a potvrďte změnu Enterem.
- Na obrazovce se objeví známé menu "Map Select". Vypněte v něm mapu kterou jste uploadovali (bude to detailní mapa), a potvrďte změnu pomocí "Save".
- Pokud se teď GPS sama nevypnula, zkuste ji vypnout. Nepůjde-li vypnout tlačítkem "Power", zkuste to trojkombinací "Zoom+" + "Goto" + "Enter".
- Po zapnutí by měla být GPS v pořádku. Pak můžete mapu uploadnout znovu, nebo ji z GPS v menu "Map Utilities" smazat.
- Pokud jste uploadovali primární basemapu, nepůjde výše uvedeným způsobem vypnout, protože GPS v menu nenabídne přepnutí na "BASEMAP.MGN", ale nabídne jen "default", což je právě ta poškozená primární basemapa. Nevadí, i z toho se dá snadno vybruslit:
- Vypněte GPS.
- Stiskněte tlačítka "Nav" (ikonka zeměkoule) + "Goto" (ikonka panáčka -- "Johny walker" :)), držte je stisknuté, a k tomu stiskněte ještě "Power" (červené tlačítko).
- Po chvíli se objeví malé okno se číslicemi "00".
- Šipkami změňte číslice na "03", a potvrďte změnu Enterem.
- Objeví se okno s korekcemi WAAS. Nevšímejte si ho, stiskněte "Menu", a v něm si vyberte "Map Utilities".
- Na obrazovce se objeví známé menu "Map Select". Vypněte v něm mapu kterou jste uploadovali (tzn. basemapu přepněte na "BASEMAP.MGN"), a potvrďte změnu pomocí "Save".
- Pokud se teď GPS sama nevypnula, zkuste ji vypnout. Nepůjde-li vypnout tlačítkem "Power", zkuste to trojkombinací "Zoom+" + "Goto" + "Enter".
- Po zapnutí by měla být GPS v pořádku. Pak můžete mapu uploadnout znovu, nebo ji z GPS v menu "Map Utilities" smazat.
- Existuje ještě třetí metoda, doporučovaná v nápovědě pro
uploadGPSserial. Viz také http://gpsinformation.net/MeridianFAQv2_0.pdf.
Spočívá v tom, že GPS přepnete do speciálního režimu, ve kterém bude
ochotná přijmout novou mapu i bez toho aby předtím regulérně naběhla.
Výhodou je, že takto můžete uploadnout i primární basemapu (tu, která
teoreticky nejde smazat), a že se tímto způsobem dá GPS oživit i když
opravdu neobsahuje žádné mapy.
Nevýhodou této metody je, že vyžaduje připojení k počítači. Pokud se
vám někdy stane to co mě (že si do GPS uploadnete mapu, nezkontrolujete ji,
a až venku zjistíte že ji GPS odmítá přijmout a resetuje se), budete určitě
rádi že výše uvedené dvě metody fungují i bez PC.
V pohodlí domova se tato třetí metoda ale hodí.
[zpět na úvodní stranu]