Vektorové mapy pro Locus

Z Milan Kerslager
Verze z 22. 5. 2013, 10:54, kterou vytvořil Milan.Kerslager (diskuse | příspěvky) (OSM do Locusu: fix)
Přejít na: navigace, hledání

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).

Vektorové OSM mapy

Projekt http://OpenStreetMap.org (dále OSM) 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 například digitalizovaný katastr (tj. půdorysy a adresy budov).

OSM do Locusu

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.

Postup generování

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 verze je 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.

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 lib/default. V Osmosis adresáři vytvořte konfigurační soubor config/osmosis-plugins.conf s řádkem:

org.mapsforge.map.writer.osmosis.MapFileWriterPluginLoader

Výslednou mapu pro Locus je potřeba vložit do boxu, jehož definice není součástí standardního PBF exportu z OSM. Koordináty lze zjistit pomocí skriptu poly2bb.pl (https://trac.openstreetmap.org/browser/applications/utils/osm-extract/polygons/poly2bb.pl) ze souboru http://downloads.cloudmade.com/europe/eastern_europe/czech_republic/czech_republic.poly a jeho poslední řádek nahraďte tímto:

printf "%f,%f,%f,%f\n", $miny, $minx, $maxy, $maxx;

Spusťte a výsledné souřadnice použijte při generování:

poly2bb.pl czech_republic.poly
48.540841,12.085860,51.054381,18.862533

Stáhněte si export dat z OSM z adresy http://download.geofabrik.de (pro ČR je to nyní http://download.geofabrik.de/europe/czech-republic-latest.osm.pbf).

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