Ich verwende sehr gerne die Open-Source-Karten-App osmAnd, und darin die Offline-Karten-Funktion.
Die darin angebotenen Offline-Karten können ganz komfortabel heruntergeladen werden (Menü -> Kartenverwaltung).
Mich hat interessiert, WIE diese Offline-Karten zustande kommen … und habe mich eingelesen.
Hinweis: Wie erwähnt, kannst du einfach in der osmAnd-App die vom App-Hersteller vor-generierten Offline-Karten herunterladen. Die nachfolgende Beschreibung ist für alle IT-affinen-Geo-Nerds gedacht, die wissen wollen, WIE der App-Hersteller diese Offline-Karten erzeugt. Wenn du also nur die App nutzen willst, reicht die App mit ihren eingebauten Funktionen – und du bauchst diesen Blog-Artikel nicht!
Schritt 1/2: Offline-Vektor-Karte für osmAnd generieren
- Lade dir zunächst den OsmAndMapCreator herunter.
(Es handelt sich dabei um eine Java-Anwendung, du brauchst also auch eine Java-Runtime – siehe Wiki-Seite.) - Rufe den Geofabrik-Downloadbereich auf. Du findest dort OpenStreetMap Data Extracts für die ganze Welt, sei es auf Kontinent-Ebene, oder herunter gesplittet auf Länder-Ebene.
- Ich wähle als Beispiel für diesen Blog-Post im Europe-Bereich die Sub-Region Austria aus. Dort lade ich mir das [.osm.pbf]-File herunter.
- Ich entpacke das OsmAndMapCreator-ZIP-File. Dort ist das
utilities.bat
-File enthalten. - Im
utilities.bat
-File ist die Java-Runtimejava.exe
verlinkt. Ich passe sie entsprechend zum Pfad meiner Java-Runtime an. - Ich starte eine Kommandozeile, und parametrisiere die
utilities.bat
:
- Variante 1: Generierung am Datenträger
Im Standard-Fall werden im Zuge der Generierung sehr viele temporäre Daten auf den Datenträger geschrieben. Das ist auch okay.utilities.bat
generate-obf austria-latest.osm.pbf
- Variante 2: Generierung im RAM-Speicher
Falls du jedoch zusätzlich viel RAM-Speicher zur Verfügung hast, kannst du die Karten-Erzeugung mit dem Parameter--ram-process
auch im RAM durchführen lassen.
Die Erzeugung erfolgt dann etwas schneller, und es kommt zu weniger Schreibvorgängen auf deinem Datenträger (… was mir z.B. wichtig ist, um meine SSD zu schonen).
- Schritt a.) Den Heap-Speicher im
utilities.bat
anpassen
(ich erhöhe hier den Max-Heap auf 32768 MB = 32,768 GB)java.exe -Djava.util.logging.config.file=logging.properties -Xms64M -Xmx32768M -cp "OsmAndMapCreator.jar;lib/.jar" net.osmand.MainUtilities %
- Schritt b.) Den Parameter
--ram-process
mitgeben:utilities.bat
generate-obf austria-latest.osm.pbf
--ram-process
- Schritt a.) Den Heap-Speicher im
- Variante 1: Generierung am Datenträger
- Daraufhin erfolgt die Offline-Karten-Generierung für osmAnd. Das dauert je nach Hardware-Ausstattung und zu verarbeitendem Geo-Bereich einige Zeit.
- Sobald
INFORMATION: Finish writing binary file
angezeigt wird, ist die Offline-Karten-Generierung abgeschlossen, und die Dateiaustria-latest.obf
befindet sich im OsmAndMapCreator-Verzeichnis. - Lade die Datei
austria-latest.obf
in ein beliebiges Verzeichnis (z. B. Downloads) auf deinem Smartphone.
Schritt 2/2: Die erzeugte Offline-Vektor-Karte in osmAnd einbinden
- Rufe osmAnd am Smartphone auf
- Menü -> Karten und Ressourcen
- Wechsle auf den Reiter Lokal
- Rufe Standardkarten auf
- Rufe das 3-Punkte-Menü rechts oben auf, und wähle dann Import aus.
- Wähle die
austria-latest.obf
aus, und lasse den Import beginnen. - Tipp: Deaktiviere dann ggf. die heruntergeladenen Karten, damit sich deine generierte Offline-Karte nicht mit einer heruntergeladenen Offline-Karte überlagert.
- Das war’s! Damit hast du selbst eine Offline-Vektor-Karte für osmAnd erzeugt und eingebunden.
Offline-Vektor-Karte für osmAnd: Quellen zum Einlesen
Der Blog-Post beschreibt einige Parametrisierungen, die für mich wichtig waren. Es gibt jedoch noch viel mehr Einstellungen. Du findest alle Möglichkeiten unter den nachfolgenden Quellen:
- https://osmand.net/docs/technical/map-creation/create-offline-maps-yourself/
- https://wiki.openstreetmap.org/wiki/OsmAndMapCreator
Image Credits: Geo icons created by Pixel Buddha Premium – Flaticon