osmAnd: Offline-Vektor-Karten selbst generieren

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

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

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

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


  4. Ich entpacke das OsmAndMapCreator-ZIP-File. Dort ist das utilities.bat-File enthalten.

  5. Im utilities.bat-File ist die Java-Runtime java.exe verlinkt. Ich passe sie entsprechend zum Pfad meiner Java-Runtime an.

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


  7. Daraufhin erfolgt die Offline-Karten-Generierung für osmAnd. Das dauert je nach Hardware-Ausstattung und zu verarbeitendem Geo-Bereich einige Zeit.

  8. Sobald INFORMATION: Finish writing binary file angezeigt wird, ist die Offline-Karten-Generierung abgeschlossen, und die Datei austria-latest.obf befindet sich im OsmAndMapCreator-Verzeichnis.

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

  1. Rufe osmAnd am Smartphone auf
  2. Menü -> Karten und Ressourcen
  3. Wechsle auf den Reiter Lokal
  4. Rufe Standardkarten auf
  5. Rufe das 3-Punkte-Menü rechts oben auf, und wähle dann Import aus.
  6. Wähle die austria-latest.obf aus, und lasse den Import beginnen.
  7. Tipp: Deaktiviere dann ggf. die heruntergeladenen Karten, damit sich deine generierte Offline-Karte nicht mit einer heruntergeladenen Offline-Karte überlagert.
  8. 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:

Image Credits: Geo icons created by Pixel Buddha Premium – Flaticon