Vektorové mapy pro Locus: Porovnání verzí
(Po přejmenování) |
(→Vlastní výroba OSM mapy pro Locus: vrstevnice - doplnění) |
||
Řádka 9: | Řádka 9: | ||
== Vlastní výroba OSM mapy pro Locus == | == Vlastní výroba OSM mapy pro Locus == | ||
− | |||
− | Pro zajištění výstupu do formátu používaného programem Locus je potřeba program mapsforge-map-writer ze stránky https://code.google.com/p/mapsforge/. Zde je použita verze 0.3.0. Stažený JAR soubor vložte do Osmosis adresáře <code>lib/default</code>. V Osmosis adresáři vytvořte konfigurační soubor <code>config/osmosis-plugins.conf</code> s řádkem: | + | 1) Pro konverzi OSM dat do formátu používaného programem Locus je potřeba program Osmosis (http://wiki.openstreetmap.org/wiki/Osmosis). Zde je použita verze 0.40.1, kterou lze stáhnout z adresy http://bretth.dev.openstreetmap.org/osmosis-build/. Novější verze 0.43.1 nefunguje. Osmosis rozbalte do vhodného adresáře. |
+ | |||
+ | 2) Pro zajištění výstupu do formátu používaného programem Locus je potřeba program mapsforge-map-writer ze stránky https://code.google.com/p/mapsforge/. Zde je použita verze 0.3.0 (soubor <code>mapsforge-map-writer-0.3.0-jar-with-dependencies.jar</code>). Stažený JAR soubor vložte do Osmosis adresáře <code>lib/default</code>. V Osmosis adresáři vytvořte konfigurační soubor <code>config/osmosis-plugins.conf</code> s řádkem: | ||
org.mapsforge.map.writer.osmosis.MapFileWriterPluginLoader | org.mapsforge.map.writer.osmosis.MapFileWriterPluginLoader | ||
+ | |||
+ | 3) Stáhněte si XML soubor <code>tag-mapping.xml</code>, který řídí výběr a konverzi mapových dat z adresy https://mapsforge.googlecode.com/git/mapsforge-map-writer/src/main/config/tag-mapping.xml (bude potřeba ho mírně změnit). | ||
+ | |||
+ | 4) Do XML souboru <code>tag-mapping.xml</code> vložte následující řádky (v souboru je více sekcí <code><ways></code>, tuto sekci do XML souboru přidejte jako další <code><ways></code> sekci, tj. například na konec souboru před řádek se značkou <code></tag-mapping></code>): | ||
+ | |||
+ | <source lang=xml> | ||
+ | <!-- Elevation TAGS --> | ||
+ | <ways> | ||
+ | <osm-tag key="contour_ext" value="elevation_minor" zoom-appear="12" force-polygon-line="true" /> | ||
+ | <osm-tag key="contour_ext" value="elevation_medium" zoom-appear="12" force-polygon-line="true" /> | ||
+ | <osm-tag key="contour_ext" value="elevation_major" zoom-appear="12" force-polygon-line="true" /> | ||
+ | <osm-tag key="ele" value="100" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="200" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="300" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="400" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="500" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="600" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="700" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="800" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="900" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1000" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1100" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1200" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1300" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1400" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1500" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1600" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1700" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1800" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="1900" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2000" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2100" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2200" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2300" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2400" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2500" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2600" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2700" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2800" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="2900" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3000" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3100" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3200" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3300" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3400" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3500" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3600" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3700" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3800" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="3900" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4000" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4100" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4200" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4300" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4400" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4500" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4600" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4700" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4800" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="4900" zoom-appear="14" /> | ||
+ | <osm-tag key="ele" value="5000" zoom-appear="14" /> | ||
+ | <!-- .... etc .... --> | ||
+ | </ways> | ||
+ | </source> | ||
Stáhněte si export dat z OSM z adresy http://download.geofabrik.de, kde pro ČR stahujte z adresy http://download.geofabrik.de/europe/czech-republic.html: | Stáhněte si export dat z OSM z adresy http://download.geofabrik.de, kde pro ČR stahujte z adresy http://download.geofabrik.de/europe/czech-republic.html: |
Verze z 30. 7. 2013, 21:27
Locus je program pro Android, který umožňuje v terénu pracovat s různými mapovými podklady a používat další mapové funkce (navigace, body zájmu, zaznamenávání trasy atd.). Pro některé funkce je nutné on-line připojení (tj. Wi-Fi, v terénu pak GSM-data). Pro offline použití se hodí vektorové mapy, protože zabírají velmi málo místa. Projekt http://OpenStreetMap.org (dále OSM) volně poskytuje vektorové mapové podklady celého světa, které jsou vytvářeny z otevřených zdrojů dobrovolníky z celého světa. Pro Českou republiku obsahují OSM silnice, lesy, ale například i digitalizovaný katastr (tj. půdorysy a adresy budov) a turistické cesty (které zatím neumím zobrazit).
Hotové OSM mapy pro Locus
Data z OSM lze snadno konvertovat do formátu používaného programem Locus. Hotové jsou k dispozici jsou například zde:
Nainstalujte si do Androidu Locus (placenou Pro verzi nebo free verzi z adresy https://play.google.com/store/apps/details?id=menion.android.locus&hl=cs) a alespoň jednou ho spusťte. Locus si vytvoří adresářovou strukturu. Soubor s vektorovou mapou nahrajte do adresáře Locus/mapsVector
, který naleznete ve svém telefonu. Pak spusťe Locus a vyberte si nahranou vektorovou mapu.
Vlastní výroba OSM mapy pro Locus
1) Pro konverzi OSM dat do formátu používaného programem Locus je potřeba program Osmosis (http://wiki.openstreetmap.org/wiki/Osmosis). Zde je použita verze 0.40.1, kterou lze stáhnout z adresy http://bretth.dev.openstreetmap.org/osmosis-build/. Novější verze 0.43.1 nefunguje. Osmosis rozbalte do vhodného adresáře.
2) Pro zajištění výstupu do formátu používaného programem Locus je potřeba program mapsforge-map-writer ze stránky https://code.google.com/p/mapsforge/. Zde je použita verze 0.3.0 (soubor mapsforge-map-writer-0.3.0-jar-with-dependencies.jar
). Stažený JAR soubor vložte do Osmosis adresáře lib/default
. V Osmosis adresáři vytvořte konfigurační soubor config/osmosis-plugins.conf
s řádkem:
org.mapsforge.map.writer.osmosis.MapFileWriterPluginLoader
3) Stáhněte si XML soubor tag-mapping.xml
, který řídí výběr a konverzi mapových dat z adresy https://mapsforge.googlecode.com/git/mapsforge-map-writer/src/main/config/tag-mapping.xml (bude potřeba ho mírně změnit).
4) Do XML souboru tag-mapping.xml
vložte následující řádky (v souboru je více sekcí <ways>
, tuto sekci do XML souboru přidejte jako další <ways>
sekci, tj. například na konec souboru před řádek se značkou </tag-mapping>
):
<!-- Elevation TAGS -->
<ways>
<osm-tag key="contour_ext" value="elevation_minor" zoom-appear="12" force-polygon-line="true" />
<osm-tag key="contour_ext" value="elevation_medium" zoom-appear="12" force-polygon-line="true" />
<osm-tag key="contour_ext" value="elevation_major" zoom-appear="12" force-polygon-line="true" />
<osm-tag key="ele" value="100" zoom-appear="14" />
<osm-tag key="ele" value="200" zoom-appear="14" />
<osm-tag key="ele" value="300" zoom-appear="14" />
<osm-tag key="ele" value="400" zoom-appear="14" />
<osm-tag key="ele" value="500" zoom-appear="14" />
<osm-tag key="ele" value="600" zoom-appear="14" />
<osm-tag key="ele" value="700" zoom-appear="14" />
<osm-tag key="ele" value="800" zoom-appear="14" />
<osm-tag key="ele" value="900" zoom-appear="14" />
<osm-tag key="ele" value="1000" zoom-appear="14" />
<osm-tag key="ele" value="1100" zoom-appear="14" />
<osm-tag key="ele" value="1200" zoom-appear="14" />
<osm-tag key="ele" value="1300" zoom-appear="14" />
<osm-tag key="ele" value="1400" zoom-appear="14" />
<osm-tag key="ele" value="1500" zoom-appear="14" />
<osm-tag key="ele" value="1600" zoom-appear="14" />
<osm-tag key="ele" value="1700" zoom-appear="14" />
<osm-tag key="ele" value="1800" zoom-appear="14" />
<osm-tag key="ele" value="1900" zoom-appear="14" />
<osm-tag key="ele" value="2000" zoom-appear="14" />
<osm-tag key="ele" value="2100" zoom-appear="14" />
<osm-tag key="ele" value="2200" zoom-appear="14" />
<osm-tag key="ele" value="2300" zoom-appear="14" />
<osm-tag key="ele" value="2400" zoom-appear="14" />
<osm-tag key="ele" value="2500" zoom-appear="14" />
<osm-tag key="ele" value="2600" zoom-appear="14" />
<osm-tag key="ele" value="2700" zoom-appear="14" />
<osm-tag key="ele" value="2800" zoom-appear="14" />
<osm-tag key="ele" value="2900" zoom-appear="14" />
<osm-tag key="ele" value="3000" zoom-appear="14" />
<osm-tag key="ele" value="3100" zoom-appear="14" />
<osm-tag key="ele" value="3200" zoom-appear="14" />
<osm-tag key="ele" value="3300" zoom-appear="14" />
<osm-tag key="ele" value="3400" zoom-appear="14" />
<osm-tag key="ele" value="3500" zoom-appear="14" />
<osm-tag key="ele" value="3600" zoom-appear="14" />
<osm-tag key="ele" value="3700" zoom-appear="14" />
<osm-tag key="ele" value="3800" zoom-appear="14" />
<osm-tag key="ele" value="3900" zoom-appear="14" />
<osm-tag key="ele" value="4000" zoom-appear="14" />
<osm-tag key="ele" value="4100" zoom-appear="14" />
<osm-tag key="ele" value="4200" zoom-appear="14" />
<osm-tag key="ele" value="4300" zoom-appear="14" />
<osm-tag key="ele" value="4400" zoom-appear="14" />
<osm-tag key="ele" value="4500" zoom-appear="14" />
<osm-tag key="ele" value="4600" zoom-appear="14" />
<osm-tag key="ele" value="4700" zoom-appear="14" />
<osm-tag key="ele" value="4800" zoom-appear="14" />
<osm-tag key="ele" value="4900" zoom-appear="14" />
<osm-tag key="ele" value="5000" zoom-appear="14" />
<!-- .... etc .... -->
</ways>
Stáhněte si export dat z OSM z adresy http://download.geofabrik.de, kde pro ČR stahujte z adresy http://download.geofabrik.de/europe/czech-republic.html:
- PBF soubor http://download.geofabrik.de/europe/czech-republic-latest.osm.pbf
- POLY soubor http://download.geofabrik.de/europe/czech-republic.poly
Výslednou mapu pro Locus je potřeba vložit do boxu, jehož definice není součástí standardního PBF exportu z OSM. Správné koordináty lze zjistit z výše staženého POLY souboru pomocí skriptu poly2bb.pl
(https://trac.openstreetmap.org/browser/applications/utils/osm-extract/polygons/poly2bb.pl), ve kterém nahraďte poslední příkaz (na dvou řádcích) tímto příkazem:
printf "%f,%f,%f,%f\n", $miny, $minx, $maxy, $maxx;
Spusťte a výsledné souřadnice použijte dále při generování:
poly2bb.pl czech_republic.poly 48.540841,12.085860,51.054381,18.862533
Nadefinujte proměnné prostředí pro Javu, která zvětší alokovatelnou paměť Javy (zde je použita 64bitová Java, konkrétně jre-1.7.0-openjdk.x86_64).
export JAVACMD_OPTIONS=-Xmx6G
Podobu výstupní mapy je možné ovlivnit XML soubory. Standardní stáhněte z adresy http://osm.gpsfreemaps.net/config/locus/modded_style/osmarendermapsforge/ a smažte nepotřebné soubory index:
mkdir style cd style wget -e robots=off --wait 0.25 -np -r http://osm.gpsfreemaps.net/config/locus/modded_style/osmarendermapsforge/ mv osm.gpsfreemaps.net/config/locus/modded_style/osmarendermapsforge/* . find . -name index\* -exec rm {} \;
Spusťte konverzi (zde bez použití stylu):
osmosis --read-pbf czech-republic-latest.osm.pbf --buffer --mapfile-writer file=Czech.map bbox=48.540841,12.085860,51.054381,18.862533 type=hd
Podle rychlosti počítače bude výsledná mapa asi za hodinu vygenerována do souboru Czech.map
. Průběh vytváření mapy je programem Osmosis průběžně indikován.