Návod na tvorbu map a atlasů pro mobilní navigaci TrekBuddy pomocí programu Mobile Atlas Creator (MOBAC).

Datum vytvoření: 7.3.2011, aktualizace: 31.3.2011, 7.4.2011

7.4.2011: Nastala další změna, ke stažení je nyní jen verze 1.9 plain beta 2, která obsahuje jen Open Street Map. Autor uvádí, že další zdroje přidá, pokud bude mít souhlas vlastníka zdroje. Prosím sledujte stránky programu na http://mobac.sourceforge.net/ .

31.3.2011:
Po cca týdenní přestávce bylo obnoveno stahování programu MOBAC , odkaz je na http://mobac.sourceforge.net/ . V nové verzi 1.9 beta je omezeno stahování OSM Mapnik v nejpodrobnějším přiblížení (max 16), ale jsou tam zase přidány OpenStreetMap Bing layer (Mapnik powered by Microsoft), které vypadají stejně a toto omezení nemají.
Dále jsem doplnil tento návod v bodu 5. Tvorba velkého atlasu.


Úvod.
MOBAC (Mobile Atlas Creator, dříve nazývaný TrekBuddy Atlas Creator) je vynikající program pro tvorbu map a celých atlasů pro mobilní telefony a jiné přístroje. Mapy je možno vytvářet pro různé systémy a programy, zde bude popsán postup pro TrekBuddy. MOBAC a TrekBuddy tvoří ideální sestavu pro tvorbu a prohlížení map na mobilu, vše je zdarma včetně mnoha map z celého světa. Kromě známých Google maps jsou pro ČR a SR bezplatně dostupné turistické a cyklistické mapy v měřitku 1:50.000. Tyto mapy jsou ideální pro turisty i cykloturisty, jsou pravidelně aktualizované a proto v dalším uvádím postup pro ně.
Jediný problém jsem měl s dokumentací. Nápověda programu je stručná, nejvíce mě pomohlo české fórum na http://www.trekbuddy.net/forum/viewtopic.php?t=3486   V tomto textu popisuji své zkušenosti a postup, jak si vytvořit atlas map pro ČR a SR. Postup je vyzkoušen pro Windows XP a 7 a telefon Nokia 6710. Návod je psán pro úplné začátečníky a proto omluvte jeho upovídanost. Pokročilejším doporučuji přeskočit na bod 5. Tvorba velkého atlasu.

Poznámky 20.3.2011:


1. Staž
ení a instalace programu MOBAC (Mobile Atlas Creator).
Úvodní stránka projektu je na http://mobac.dnsalias.org/index.html , je tam i odkaz na stažení poslední stabilní verze. Pozor, současná stabilní verze 1.8. mě nepracovala s Cykloatlasem! Proto jsem si stáhl poslední Alfaverzi MOBAC 1.9 preview 11.zip z adresy - tato verze již není ke stažení, více viz Poznámky 20.3.2011.
Kromě programu Mobac ještě potřebujete mít instalováno JRE (Java Runtime Environment), což na většině počítačů je. Pokud si nejste jisti pak, vice v příloze: Instalace JRE. Na počítači si vytvořte nějakou složku, třeba TvorbaMap. Do té rozbalte stažený soubor . Po roybalení ve složce najdete jednak READ.ME a pak i spustitelný soubor Mobile Atlas Creator.exe. Spouští se tento .exe soubor (obrázek modré zeměkoule), podobně nazvaný Mobile_Atlas_Creator.jar nestartujte.

2. Vytvoření zkušební mapy.
Dobrý atlas map se nepodaří vytvořit napoprvé. Proto doporučuji nejprve vytvořit malý zkušební atlas, kde nebudou velké soubory a ušetří se čas stahování. Zde popíši vytvoření jednoduchého cyklo atlasu Okolí Prahy.
Při prvním startu Mobile Atlas Creator (dále MOBAC) se zobrazí okénko pro určení jména atlasu (napište např. OkoliPrahy) a pro určení formátu - pro TrekBuddy vyberte TrekBuddy tared atlas. Pak se zobrazí úvodní obrazovka.
Minimálně musíte nastavit:

Timto je zkušební mapa vytvořena a doporučuji cvičně ukončit i program MOBAC.



3.Ověření funkčnosti zkušební mapy.
Vytvořená mapa je velmi malá, je uložena v podsložce Atlases (ve stejné složce jako MOBAC). Každý atlas má svoji vlastní složku se jménem atlasu doplněným datem a časem vytvoření. Pokud jste například vytvořili atlasy dva, budou tam 2 složky:
OkoliPrahy_2011-03-05_131005 a OkoliPrahy_2011-03-05_134324.
Mapu vyzkoušite tak, že celou složku nahrajete do mobilu ( je malá, asi jen 0,1 Mb).
Kdo ještě v mobilu TrekBuddy nemá, může si ho nahrát podle popisu v příloze, kde je i stručný popis ovládání.
Pokud už TrekBuddy v mobilu máte, pak do složky Maps nahrajte celou nově vytvořenou složku atlasu, např. podle příkladu jsem nahrál OkoliPrahy_2011-03-05_134324.
Mapu vyberete takto:


4. Přidání podrobných map.
Potřebná podrobnost záleží na způsobu použití a kvalitě Vašich očí. Zde si popíšeme přidání podrobných map v level=14.
Nastartuje MOBAC, klikněte pravým tlačitkem na minule vytvořenou vrstvu Prehledova a vyberte Display selected area, tím se označí minule vybraný rozsah mapy.
Nyní popíši vytvoření vrstvy Detailní, kde budou 4 mapy v podrobném zobrazení level 14:

Poznámky. Pokud dodržíte popsaný postup, budete moci mezi mapami plynule přecházet. Pokud nastavíte v mobilu mapy špatně, nemusí přecházení mezi listy map fungovat. Načtení nového listu mapy trvá na Nokii 6710 necelou vteřinu. Po mapě se dá pohybovat navigačními tlačitky nebo "křížem" z číslic 8462 na klávesnici. Mezi vrstvami se dá pohybovat pomocí číslice 7, která zobrazí dostupné vrstvy. To je vhodné pro hledání místa, kdy je dobré ho najít v Přehledové mapě a pak přepnout do detailní.
Pokud nová mapa v mobilu dobře funguje, starou smažte. Neměla by se ale mazat mapa, která je nastavena jako výchozí.

Popsaný postup slouží jako jednoduchý příklad a má některé nedostatky. Nepříjemné je, že při přechodu mezi listy Detailní mapy není vidět část předchozího listu. To je způsobeno tím, že listy byly vytvořeny bez překrytí. Také není ideální, že mapa má jen dvě vrstvy podrobnosti map. Tvorba dokonalejšího atlasu je proto popsána v dalším bodě.



5. Tvorba velkého atlasu.
Velký atlas by měl mít několik vrstev, jinak se člověk v mapách ztratí. Pro celkovou mapu se mě osvědčila ZoomLevel10, pro přehledovou 12 a pro detailní 14. Turistické značky jsou zobrazovány od Zoom level 13, level 14 je větší, level 15 už zabírá moc paměti. ČR+SR bez reliefu v level=14 zabere cca 1,6 GB paměti. Verze s reliefem pak zabrala cca 2,9 GB, což už nepříjemě zpomalovalo prohlížení na mobilu. Nejmenší soubory dosáhnete při výběru dvou vrstev, level=10 pro Prehled a level=13 pro Detail.

Stahování mapových podkladů zabralo pro level 14 téměř 2 hodiny. Generování dalších map je cca 2x rychlejší,
program pak požívá data  z Tile store, což je rychlejší než přes internet. Osvědčilo se mě nastavit v Settings TileUpdate na delší dobu (1 měsíc), datové podklady se tak často nemění.

Data se stahovala bez problémů a chyb. Určitě se vyplatí zaškrtnout v okně pro generování volbu Ignore download errors and continue automatically. U mě chyby vznikaly jen při nahrávání dat z přeshraničních oblastí, kde nebyly dostupné mapové údaje. Při této volbě není nutno přesně hledat mapové pokrytí v přeshraničí, data se prostě nestáhnou a výsledná část mapy zůstane černá. Nezabírá to významě místo, černý segment má jen 270 byte proti cca 10 kB u normálního segmentu.

Nejdůležitější při tvorbě velkého atlasu je určení velikosti segmetů mapy. Vyzkoušel jsem, že Nokia 6710 rozumě zvládá zazipované soubory .TAR do velikosti 10 MB. Větší se natahují znatelně pomalu, nad 50MB je to už nepřijatelné. Úplně nepoužitelná byla detailní mapa v level 14 když jsem vybral 1 čtverec pro celé Čechy. Tato mapa měla největší  zapakovaný soubor TAR velký 288 MB a mobil stále jen načítal a display byl černý. Zkoušel jsem také mapy nekomprimovamé - UntaredAtlas. Prohlížení s velkých Untared map je celkem rychlé (mobil nemusí nic rozbalovat), celková velikost souborů je prakticky stejná ale obsazují 2x více místa na kartě a 10x pomaleji se nahrávají do mobilu (způsobeno segmentací na malé soubory).

Osvědčilo se mě nejprve vyzkoušet co mobil zvládne. Doporučuji vyzkoušet několik velikostí listů - například vyjít z výše uvedeného obrázku OkolíPrahy, zvětšovat velikost listů a zkoušet co mobil snese. Mě z toho vyšlo, že pro základní mapy v level=14 bez reliefu může být největší velikost segmetu(listu) mapy 24x20 čtverečků (grid) v level 14. Ukázka kladu listů je vidět na obrázku níže. Zoom je nastaven na 10, jinak jsem se v mapě ztrácel. Nastavení zoomu nemá na nic vliv, je to pouze pomůcka pro práci s obrazovkou.

Dále jsem vybral překrytí listů mapy. Listy bez překrytí nejsou vhodné pro prohlížení na mobilu. Když se načte nový list, tak kurzor zůstane na hraně okna, překrývající oblast se pochopitelně nezobrazuje. Zvolil jsem překrytí 2 čtverečky level 14, což je něco přes 3 km. Překrytí znamená větší soubory listů mapy o duplicitní části map, v mém případě o 16%. Pokud bych zvolil překrytí jen 1 čtvereček levelu 14 (cca 1,5 km), tak to způsobí zvětšení souborů jen asi o 9%. Už jsem ale nechtěl předělávat rozložení mapy.

Pro zkoušení velikosti map a jejich překryti se mě osvědčil jednoduchý program OffRoadNAVI, který emuluje mobil/PDA na PC. Nemusíte pracně zkušební mapy stahovat do mobilu, prohlédnete si je přímo v PC a hned vidíte, zda vybrané levely jsou šikovné a zda se v mapách neztratíte. Popis OffRoadNAVI je uveden v samostatném bodu dále.

Důležité jsou také vhodné názvy jednotlivých výběrů. Na rozdíl od automatického číslování popsaného v předchozím bodu jsem jednotlivé řady listů mapy označoval písmeny a pak číslicemi. Pokud má označení logiku, pak se snadno najde konkrétní list a může se případně opravit. Postup jsem zrychlil prostým přidáváním výběrů bez přesouvání do složky Detail. To jsem pak rychle udělal v programátorském editoru PSPad ( http://www.pspad.com/ ), lze také použít Poznámkový blok. Rychle naklikanou mřížku mapy jsem si uložil pod vhodně nazvaným profilem. Profil jsem otevřel a upravil tak, aby vypadal takto:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atlas outputFormat="TaredAtlas" name="CZ" version="1">
    <Layer name="CZ_SK">
        <Map name="a 10" zoom="10" mapSource="Cykloatlas" minTileCoordinate="139776/87296" maxTileCoordinate="143615/88575"/>
        <Map name="b1 10" zoom="10" mapSource="Cykloatlas" minTileCoordinate="139264/88320" maxTileCoordinate="141823/89855"/>
        <Map name="b2 10" zoom="10" mapSource="Cykloatlas" minTileCoordinate="141568/88320" maxTileCoordinate="145151/89855"/>
......... atd ..........
    </Layer>
    <Layer name="Prehled">
        <Map name="a1 12" zoom="12" mapSource="Cykloatlas" minTileCoordinate="559104/349184" maxTileCoordinate="562175/353279"/>
        <Map name="a2 12" zoom="12" mapSource="Cykloatlas" minTileCoordinate="561920/349184" maxTileCoordinate="566783/353279"/>
        <Map name="a3 12" zoom="12" mapSource="Cykloatlas" minTileCoordinate="566528/349184" maxTileCoordinate="571135/353279"/>
        <Map name="a4 12" zoom="12" mapSource="Cykloatlas" minTileCoordinate="570880/349952" maxTileCoordinate="574975/353279"/>
        <Map name="b1 12" zoom="12" mapSource="Cykloatlas" minTileCoordinate="557824/353024" maxTileCoordinate="562175/357631"/>
........ atd .......
    </Layer>
    <Layer name="Detail">
        <Map name="b01 14" zoom="14" mapSource="Cykloatlas" minTileCoordinate="2258432/1400320" maxTileCoordinate="2267647/1402879"/>
        <Map name="b02 14" zoom="14" mapSource="Cykloatlas" minTileCoordinate="2267136/1400320" maxTileCoordinate="2275327/1402879"/>
        <Map name="c01 14" zoom="14" mapSource="Cykloatlas" minTileCoordinate="2252800/1402368" maxTileCoordinate="2258943/1406975"/>
        <Map name="c02 14" zoom="14" mapSource="Cykloatlas" minTileCoordinate="2258432/1402368" maxTileCoordinate="2264575/1406975"/>
        <Map name="c03 14" zoom="14" mapSource="Cykloatlas" minTileCoordinate="2264064/1402368" maxTileCoordinate="2269695/1406975"/>
        <Map name="c04 14" zoom="14" mapSource="Cykloatlas" minTileCoordinate="2269184/1402368" maxTileCoordinate="2275327/1406975"/>
        <Map name="c05 14" zoom="14" mapSource="Cykloatlas" minTileCoordinate="2274816/1402368" maxTileCoordinate="2280959/1406975"/>
        <Map name="d01 14" zoom="14" mapSource="Cykloatlas" minTileCoordinate="2242048/1406464" maxTileCoordinate="2247679/1411071"/>
................ atd ........
    </Layer>
</atlas>

Je to jednoduchý xml soubor, kde můžete přehazovat podle potřeby řádky, měnit jejich jména a pod. Podstané informace jsou vlastně jen TileCoordinate ve vazbě na zoom. Na oststatní v zásadě nezáleží. Upravený soubor se znova načte pomocí Load. Pravým klikem na jméno levelu a výběrem Display selected areas  se vše zobrazí a  uvidíte  případné chyby.

Koordináty jdou zadávat přímo číselně. Nechtělo se mě s tím ale počítat. Klikání čtverečků trvalo asi hodinu, viděl jsem co vlastně vybírám a mohl jsem si přidat zájmové oblasti i mimo ČR (Drážďany). Profil má dlouhodobé využití při tvorbě aktualizovaných map.Na závěr tohoto bodu přidávám ukázku naklikaného pokrytí Brna a okolí.



Kdybych atlas dělal znova, tak bych asi použil 4 vrstvy s Zoom levels 8, 10, 12, 14 a koupil bych si 16GB kartu s usb adaptorem pro rychlejší nahrávání. Dále bych pořádně vyzkoušel dvě varianty:
- velké listy uložené jako Untared = rychlé naklikání mapy, pomalejší nahrávání do mobilu, větší obsazené místo, celkem rychlé prohlížení v mobilu
- menší listy uložené jako Tared = pomalé naklikání mapy, rychlejší nahrávání do mobilu, menší obsazené místo, pomalejší přecházení mezi listy mapy

Doplněno 31.3.2011: To, zda je nutné mapu dělit na menší listy závisí na typu mobilu a použitém navigačním programu. Mám informaci, že například pro RMaps  (Android) to není zapotřebí, stačí data uložit do formátu SQLite a mobil je schopen s databází pracovat. Pro TrekBuddy na Nokia 6710 musí být ale mapa rozdělena na listy  tak, aby  TAR archivy  nebyly větší  než  20 MB, jinak se mobil zasekává. Jde to dělat jednak jak jsem popsal výše, ale jde to zjednodušit nastavením parametru Settings - Map size. Jeho výchozí hodnota je 32767, pokud se nastaví menší hodnota, například 8192, tak MOBAC automaticky vytváří menší listy. Velikost výsledných archivů závisí na složitosti mapy, jednoduchá mapa pro velikost 8192 pak nepřesáhne 10 MB, fotomapa se vejde do 20 MB. Velikost listu je možno upravit dle konkrétního mobilu, doporučuji aby to byl násobek 256 (velikost dlaždice). Dále uvádím příklad výpisu profilu, kde jsou pro Google Hybrid generovány listy o velikosti 8192:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atlas outputFormat="TaredAtlas" name="KladnoGoogle" version="1">
    <Layer name="Det12">
        <Map name="Det12 12" zoom="12" mapSource="Google Hybrid" minTileCoordinate="564224/353792" maxTileCoordinate="566527/356095"/>
    </Layer>
    <Layer name="Det14">
        <Map name="Det14 14 (0)" zoom="14" mapSource="Google Hybrid" minTileCoordinate="2256896/1415424" maxTileCoordinate="2265087/1423614"/>
        <Map name="Det14 14 (1)" zoom="14" mapSource="Google Hybrid" minTileCoordinate="2265088/1415424" maxTileCoordinate="2265342/1423614"/>
    </Layer>
    <Layer name="Det16">
        <Map name="Det16 16 (00)" zoom="16" mapSource="Google Hybrid" minTileCoordinate="9027584/5661696" maxTileCoordinate="9035775/5669887"/>
        <Map name="Det16 16 (01)" zoom="16" mapSource="Google Hybrid" minTileCoordinate="9027584/5669888" maxTileCoordinate="9035775/5678079"/>
        <Map name="Det16 16 (02)" zoom="16" mapSource="Google Hybrid" minTileCoordinate="9027584/5678080" maxTileCoordinate="9035775/5686271"/>
        <Map name="Det16 16 (03)" zoom="16" mapSource="Google Hybrid" minTileCoordinate="9027584/5686272" maxTileCoordinate="9035775/5694462"/>
        <Map name="Det16 16 (04)" zoom="16" mapSource="Google Hybrid" minTileCoordinate="9035776/5661696" maxTileCoordinate="9043967/5669887"/>
... atd
Změna Map size se musí udělat před označením a uložením vrstvy, MOBAC to pak sám rozdělí na listy mapy. Tyto listy se pochopitelně nepřekrývají, při prohlížení v mobilu to pak "přeskakuje", což se dá snést.



6. OffRoadNAVI - emulátor prohlížení map na počítačí.
Pokud vytváříte velké atlasy je nešikovné je zkoušet v mobilu, nahrávání je pomalé. Lepší je použít šikovný bezplatný emulátor OffRoadNAVI viz http://www.offroadnavi.cz/cz/o-aplikaci . Program rozbalíte, do složky Maps zkopirujete vytvořené mapy. Program emuluje dotykovou obrazovku, umí pracovat s TrekBuddy mapami, umožňuje přepínání vrstev. Velikost okénka se mění myší jako obvykle a lze tak přizpůsobit konkrétnímu mobilu.


7. Layer settinds: custom tile processing.

Tato část slouží k nastavení formátu generovaných mapových segmentů. Aby se to dalo používat, je nutné do složky MOBAC nahrát  jai_codec.jar a jai_core.jar. V README.HTM je uvedena adresa pro stažení íhttps://jai.dev.java.net/binary-builds.html , která však není funkční. Našel jsem ale na internetu složku zdrojů pro JAI a to na adrese http://download.java.net/media/jai/builds/release/1_1_3/ , konkrétně jsem stáhl soubor jai-1_1_3-lib.zip. Archiv obsahuje soubory jai_codec.jar a jai_core.jar s datem 11.9.2006 a MOBAC s nimi funguje. Zkoušel jsem generovat jak PNG s 16-ti barvami, tak snížit kvalitu JPEG na příkladu z GoogleMaps, ale nezjistil jsem  zlepšení. PNG16 docela zabral více místa, nevím, jestli jsem ale neudělal někde chybu.


Poděkování a závěr.
Závěrem bych chtěl poděkovat autorům programů TrekBuddy, MOBAC, OffRoadNAVI, komunitám projektů SourceForge ( http://sourceforge.net/ ) a společnostem podporujícím příslušné platformy, v tomto případě společnosti ORACLE ( http://www.oracle.com/index.html )..
Doufám, že tento návod alespoň trochu pomůže uživatelům uvedených programů. Pokud najdete v popisu nějaké chyby nebo budete mít náměty na rozšíření, napište mě.


Přemysl Svoboda, http://www.infodata.cz/ , mail : premsvo (zavináč) iol (tečka) cz




Přílohy


Stručný popis instalace a ovládání programu TrekBuddy
Postup je popsán pro mobily Nokia se Symbianem, lonkrétně pro Nokia 6710.
Domovská stránka programu je na fóru http://www.trekbuddy.net/forum/  kde v 1 tématu jsou informace o dostupných verzích. Já jsem stáhl poslední stabilní, což v únoru 2011 byla verze 1.0.11 na adrese http://www.trekbuddy.net/releases/1.0.11/index.html .
Postupoval jsem takto:

Ovládání TrekBuddy je popsáno například česky na http://www.trekbuddy.net/forum/viewtopic.php?t=9 nebo anglicky na http://wiki.trekbuddy.net/index.php/Main_Page .
Velmi stručný popis ovládání mapy:

Pokud by neungovalo GPS, zkontrolujte nastavení: Settings - Location: zakliknuto Internal a Asisted GPS.
Lze toho nastavit a ovládat daleko více, ale to už se dá vzykoušet a naučit praxí.


Instalace JRE.
Na většině počítačů je JRE (Java Runtime Environment) už instalováno. Ověříte to tak, že kliknete ve Windows na Start, pak Ovládací panely a tam by měla být známá ikonka Java. Proklikáním na About zjistíte verzi.
Pokud JRE nemáte, tak si o to počítač sám řekne po spuštění Mobac. Pokud si to chcete předem připravit, tak navštívte stránku: http://www.oracle.com/technetwork/java/javase/downloads/index.html kde klikněte na tlačítko Download JRE a postupujte podle návodu. Postup downloadu se časem mění, když omylem stáknete verzi JDK (Java Development Kit), tak se nic nestane, ten v sobě JRE obsahuje také.