1
Offline mapy pro a:Drake - ruční editace map-config.xml
Příspěvek od
Gelda
,
v
a:Drake
23 August 2014
·
6984 Zobrazení
android mapa návod
Na úvod Vás musím upozornit, že pro tento návod jsou nutné základní znalosti XML. Dále musíte být velmi obezřetní, abyste "nerozbili" původní soubor. Proto z bezpečnostních důvodů doporučuji před vlastní editací zálohu původního souboru! Je vhodné pracovat na PC, ačkoli lze konfiguraci provádět i na telefonu / tabletu (testoval jsem, ale není to úplně user-friendly). Jelikož jde o návod pro pokročilejší uživatele, tak předpokládám orientaci v problematice a nebudu popisovat, kde stáhnout mapy, témata, atd. To si přečtete nebo připravíte podle níže odkazovaného článku a potom už začneme...
Pro editaci doporučuji používat nějaký sofistikovaný editor, např. PSPad nebo NotePad++. Relativně dobrou možností je i klasický poznámkový blok ve Windowsech (kombinace kláves Windows + R, do panelu pro spuštění napíšete bez uvozovek slovo "notepad"). Rozhodně nedoporučuji MS Office a podobné výmysly.
V předchozím článku jsem se krátce zmínil o konfiguračním souboru map, který má a:Drake uložený přímo v systémovém adresáři - jmenuje se map-config.xml. V tomto souboru jsou uloženy všechny konfigurace map, tedy offline i online, rastrových i vektorových (Google Maps, OSM a MapsForge). Nás bude zajímat kód přibližně od řádku 60, kde končí definice rastrových map (platí pouze v případě, že jste doposud žádnou konfiguraci map neprováděli). Zájmový úsek pro definování offline map vypadá takto (tato definovaná mapa je prázdná):
Následují další, již důležitější, tagy třídy MapType. Každá třída MapType (celá třída má několik tagů, celkem 10 řádků se vším všudy) deklaruje jednu vrstvu s offline mapou. Hlavními tagy této třídy jsou name (definuje jméno vrstvy), file (definuje cestu k mapovému souboru), theme (definice cesty k mapovému tématu), url, defaultZoom (defaultní zoom, optimum je podle mě 12 nebo 13), minZoom (minimální zoom, min. je 1), maxAvailZoom (maximální možný zoom, od verze 4.07 jej tuším není nutné používat) a maxZoom (maximální možný zoom, max. je 21). Příklad vyplněné třídy MapType může vypadat následovně:
Osobně vidím největší výhodu v přenositelnosti XML - když konfiguraci map vytvořím na telefonu, tak stačí zkopírovat XML do tabletu (samozřejmě včetně map), upravit cesty k souborům (je-li to zapotřebí) a je hotovo.
Na závěr přikládám část XML s třídou MapSource a několika třídami MapType pouze pro offline mapy. Z této ukázky je patrné "vrstvení" třídy MapType podle počtu vrstev. Jestli chcete tento kód použít, tak dejte pozor, ať jej správně vložíte do svého konfiguračního souboru (tzn. ať nemáte vložené čísla řádků s kódem před tagy, jinou cestu k mapám a tématům, duplicitní vrstvy, atd.).
Za případné připomínky budu rád a doufám, že prominete moji ne úplně striktně terminologicky přesnou formulaci částí XML souboru.
Další články
Offline mapy pro a:Drake (podrobný návod, jak nastavit offline mapy)
a:Drake + GeoGet = DATABÁZE (návod jak pracovat s databází z GeoGetu)
a:Drake - logování (návod na úpravu obsahu logu)
Pro editaci doporučuji používat nějaký sofistikovaný editor, např. PSPad nebo NotePad++. Relativně dobrou možností je i klasický poznámkový blok ve Windowsech (kombinace kláves Windows + R, do panelu pro spuštění napíšete bez uvozovek slovo "notepad"). Rozhodně nedoporučuji MS Office a podobné výmysly.
V předchozím článku jsem se krátce zmínil o konfiguračním souboru map, který má a:Drake uložený přímo v systémovém adresáři - jmenuje se map-config.xml. V tomto souboru jsou uloženy všechny konfigurace map, tedy offline i online, rastrových i vektorových (Google Maps, OSM a MapsForge). Nás bude zajímat kód přibližně od řádku 60, kde končí definice rastrových map (platí pouze v případě, že jste doposud žádnou konfiguraci map neprováděli). Zájmový úsek pro definování offline map vypadá takto (tato definovaná mapa je prázdná):
<MapSource> <type>MapsForge</type> <name>MapsForge Vector maps</name> <storage>database</storage> <MapType mode="basic"> <name>Map</name> <file></file> <theme></theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>19</maxAvailZoom> <maxZoom>19</maxZoom> </MapType> </MapSource>Rámec konfiguračního XML je vymezen dvěma třídami: MapSource a MapType. První tři tagy deklarující třídu MapSource (type, name a storage) pro nás nejsou důležité - jsou deklarovány pouze jednou v hlavičce třídy MapSource a v případě nastavení offline map je není nutné editovat.
Následují další, již důležitější, tagy třídy MapType. Každá třída MapType (celá třída má několik tagů, celkem 10 řádků se vším všudy) deklaruje jednu vrstvu s offline mapou. Hlavními tagy této třídy jsou name (definuje jméno vrstvy), file (definuje cestu k mapovému souboru), theme (definice cesty k mapovému tématu), url, defaultZoom (defaultní zoom, optimum je podle mě 12 nebo 13), minZoom (minimální zoom, min. je 1), maxAvailZoom (maximální možný zoom, od verze 4.07 jej tuším není nutné používat) a maxZoom (maximální možný zoom, max. je 21). Příklad vyplněné třídy MapType může vypadat následovně:
<MapType mode="basic"> <name>CR</name> <file>/sdcard/adrake/maps/czech_republic_ee.map</file> <theme>/sdcard/adrake/maps/osmarender_gccz.map.xml</theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>1</maxAvailZoom> <maxZoom>20</maxZoom> </MapType>V čem je tedy výhoda editace XML? Můžete celou konfiguraci provést na PC během pár minut a nemusíte nic "vyklikávat" na telefonu. Nebo když nakonfigurujete jednu mapu, tak stačí zkopírovat celou třídu MapType (včetně počátečního i koncového tagu) tolikrát, kolik máte vrstev offline map a přepsat jména souborů s mapou. Uložíte a máte hotovo s celou konfigurací map.
Osobně vidím největší výhodu v přenositelnosti XML - když konfiguraci map vytvořím na telefonu, tak stačí zkopírovat XML do tabletu (samozřejmě včetně map), upravit cesty k souborům (je-li to zapotřebí) a je hotovo.
Na závěr přikládám část XML s třídou MapSource a několika třídami MapType pouze pro offline mapy. Z této ukázky je patrné "vrstvení" třídy MapType podle počtu vrstev. Jestli chcete tento kód použít, tak dejte pozor, ať jej správně vložíte do svého konfiguračního souboru (tzn. ať nemáte vložené čísla řádků s kódem před tagy, jinou cestu k mapám a tématům, duplicitní vrstvy, atd.).
<MapSource> <type>MapsForge</type> <name>MapsForge Vector maps</name> <storage>database</storage> <MapType mode="basic"> <name>CR</name> <file>/sdcard/adrake/maps/czech_republic_ee.map</file> <theme>/sdcard/adrake/maps/osmarender_gccz.map.xml</theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>1</maxAvailZoom> <maxZoom>20</maxZoom> </MapType> <MapType mode="basic"> <name>SK</name> <file>/sdcard/Locus/maps/slovakia_gccz.map</file> <theme>/sdcard/adrake/maps/osmarender_gccz.map.xml</theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>1</maxAvailZoom> <maxZoom>20</maxZoom> </MapType> <MapType mode="basic"> <name>AUT</name> <file>/sdcard/Locus/maps/austria_gccz.map</file> <theme>/sdcard/adrake/maps/osmarender_gccz.map.xml</theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>1</maxAvailZoom> <maxZoom>20</maxZoom> </MapType> <MapType mode="basic"> <name>PL</name> <file>/sdcard/adrake/maps/poland_gccz.map</file> <theme>/sdcard/adrake/maps/osmarender_gccz.map.xml</theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>1</maxAvailZoom> <maxZoom>20</maxZoom> </MapType> <MapType mode="basic"> <name>DE - Sasko</name> <file>/sdcard/adrake/maps/sachsen_gccz.map</file> <theme>/sdcard/adrake/maps/osmarender_gccz.map.xml</theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>1</maxAvailZoom> <maxZoom>20</maxZoom> </MapType> <MapType mode="basic"> <name>DE - Bavorsko</name> <file>/sdcard/adrake/maps/bayern_gccz.map</file> <theme>/sdcard/adrake/maps/osmarender_gccz.map.xml</theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>1</maxAvailZoom> <maxZoom>20</maxZoom> </MapType> <MapType mode="basic"> <name>CR - admin</name> <file>/sdcard/adrake/maps/czech_republic_admin.map</file> <theme>/sdcard/adrake/maps/osmarender_gccz.map.xml</theme> <url></url> <defaultZoom>12</defaultZoom> <minZoom>1</minZoom> <maxAvailZoom>1</maxAvailZoom> <maxZoom>20</maxZoom> </MapType> </MapSource>Před uložením ještě zkontrolujte, jestli jste náhodou nesmazali koncový tag na konci konfiguračního souboru:
</aDrake>Upravený XML soubor stačí nahrát zpět do zařízení a vyzkoušet, jestli to jede.
Za případné připomínky budu rád a doufám, že prominete moji ne úplně striktně terminologicky přesnou formulaci částí XML souboru.
Další články
Offline mapy pro a:Drake (podrobný návod, jak nastavit offline mapy)
a:Drake + GeoGet = DATABÁZE (návod jak pracovat s databází z GeoGetu)
a:Drake - logování (návod na úpravu obsahu logu)