Startseite > Android, GPSSend > Wie kann man OpenStreetMap in ‚map’-Dateien für GPSSend konvertieren?

Wie kann man OpenStreetMap in ‚map’-Dateien für GPSSend konvertieren?


[Update: Mittlerweile gibt es für GPSSend passende Karten direkt zum Download. Die Entwickler von ‚mapsforge‘ bieten einen entsprechenden Service an. Die Karten kann man von hier downloaden: http://download.mapsforge.org/maps/europe/]

Damit GPSSend für Android Karten darstellen kann, verwendet es eine Library namens ‚mapsforge’. Für interessierte Programmierer ist sie hier zu finden. Die Library kann sowohl Online – als auch Offline arbeiten. Verwendet man letzteres, so benötigt sie Kartenmaterial in Form eines besonderen Formats – ich nenne es der Einfachheit halber ‚map’-Datei.

Hier gibt es eine App mit der Bezeichnung ‚AdvancedMapViewer-0.2.1.apk‘, die als Demo für die mapsforge-Library und dem Kartenformat dient.

Leider gibt es im Moment noch recht wenige geografische Gebiete in diesem Format. Aktuell gibt es hier folgende drei Gebiete zum Download:

  • Bremen
  • Hamburg
  • Berlin

Lädt man sich eine dieser Dateien herunter, kopiert sie auf sein Android-Smartphone und stellt in GPSSend bei ‚Pfad zur ‚map’-Datei’ den Pfad entsprechend ein, so kann GPSSend mit diesen Dateien arbeiten.

Karten selbst konvertieren

Im nachfolgenden Text zeige ich Euch, wie man sich solche Dateien selbst unter Windows XP konvertieren kann!

Um es klar zu sagen, diese Anleitung ist nichts für ‚Weicheier’! Man muss einiges downloaden, installieren und konfigurieren um zum Ziel zu kommen. Wer sich davor scheut, sollte es besser gleich bleiben lassen.

Dazu gibt es zwei verschiedene Ansätze, denn das ‚Rohmaterial’ für die Konvertierung kann man sich auf verschiedene Weise downloaden oder erzeugen.

Erdteile, Länder

Größere Gebiete lädt man sich am besten bei der Geofabrik im Format ‚osm.pbf’ herunter. Man findet sie hier. Es ist nicht empfehlenswert, wenn man nicht gerade einen absoluten ‚Power’-Rechner besitzt, ein Land größer als ein Bundesland auszuwählen, da dann die Konvertierung sehr, sehr lange dauern kann. Ich habe den Versuch, ‚germany.osm.pbf’ zu konvertieren, abgebrochen, nachdem mein Rechner (Dual-Core mit 2 GByte) damit einen ganzen Samstag beschäftigt war!

Individuelle Gebiete

Kleinere Gebiete kann man direkt von openstreetmap.org downloaden. Dazu selektiert man einfach den in Frage kommenden Bereich, klickt oben im ‚Reiter’-Bereich auf ‚Export’, wählt anschließend ‚OpenStreetMap-XML-Daten’ und klickt dann noch einmal auf die Schaltfläche ‚Export’. Wenn der Bereich nicht zu groß war, kann man kurz darauf eine Datei ‚map.osm’ downloaden.

Es ist eine sehr gute Idee, wenn man sich die – nach dem Anklicken des ‚Reiters’ ‚Export’ erscheinenden Koordinaten des ausgewählten Bereichs – aufschreibt, denn diese braucht man noch!

Der so herunter geladene Bereich ist leider im Format ‚osm’ und muss noch ins Format ‚osm.pbf’ konvertiert werden.

Osmosis

Um die herunter geladenen Dateien zu konvertieren, benötigt man das Tool Osmosis. Osmosis dient dazu OpenStreetMap Daten zu verarbeiten. Uns braucht hier nicht zu interessieren, was man mit Osmosis im Einzelnen machen kann, auch wenn dies sicher für jene, die tiefer in OpenStreetMap und seine Möglichkeiten einsteigen wollen, sehr interessant ist.

Auf der Seite findet sich ein Verweis auf ‚osmosis-latest.zip’, der es einem ermöglicht Osmosis herunterzuladen. Nach dem Auspacken in einem beliebigen Verzeichnis findet man ein Verzeichnis ‚osmosis-0.38’ oder ähnlich, mit einigen Unterverzeichnissen. Dies nenne ich ab jetzt ‚Osmosis-Root’.

Osmosis benötigt Java! Java muss auf dem Rechner installiert sein!

Man benötigt aber noch mehr Tools:

mapsforge-mapfile-writer-0.2.1.jar

Trove

Vorbereitungen

In Osmosis-Root legt man ein Verzeichnis ‚plugins’ an und kopiert dort die Datei ‚mapsforge-mapfile-writer-0.2.1.jar’ hinein.

In das Verzeichnis ‚lib\default’ von Osmosis-Root kopiert man die Datei ‚trove-3.0.0rc1.jar’ aus der ‚Trove’-Zipdatei. Man findet sie in ‚lib’. Ich habe sie anschließend von ‚trove-3.0.0rc1.jar’ in ‚trove-3.x.jar’ umbenannt.

Anschließend habe ich mir noch die 2 Verzeichnisse ‚data’ und ‚tmp’ in Osmosis-Root angelegt. In ‚data’ kopiere ich mir die downgeloadeten Dateien wie ‚map.osm’ oder ‚hessen.osm.pbf’. ‚map.osm’ von openstreetmap.org nenne ich nach dem Download immer in einen Namen um, der das in OpenStreetMap markierte Gebiet beschreibt, also zum Beispiel ‚torbole.osm’ wenn ich einen Bereich um das Fischerdorf am Gardasee downgeloadet habe.

Konvertierung

Wie vermutlich schon aufgefallen ist, haben wir es mit zwei verschiedenen Dateiformaten zu tun: ‚osm’ und ‚osm.pbf’. Die ‚osm’-Dateien, die man bei einem Download direkt über openstreetmap.org bekommt, müssen darum erst in das Format ‚osm.pbf’ konvertiert werden. Auch das geht mit Osmosis. Im nachfolgenden Text gebe ich jetzt einige Kommandos an, die in einem Kommandozeilenfenster von Windows XP angegeben werden müssen. Damit sie funktionieren, muss man im Kommandozeilenfenster mit ‚cd’ das Verzeichnis Osmosis-Root ausgewählt haben!

Die Beispiel-Kommandos zeigen beispielhaft (fett markierte Dateinamen müssen entsprechend ersetzt werden) wie man eine Datei ‚hessen.osm.pbf’ in einen ‚map’-Datei, einen ‚torbole.osm’ in einen ‚osm.pbf’-Datei und diese anschließend in eine ‚map’-Datei konvertiert.

Beim letztem Schritt muss man im Kommando den geografischen Bereich angeben, den man zuvor von openstreetmap.org downgeloadet hat! Man beachte dabei die Reihenfolge der einzelnen Koordinatenwerte, erst kommt die obere linke Ecke, dann die untere rechte Ecke! Die Angabe, die bei ‚openstreetmap.org in Form eines Kreuzes dargestellt ist, zeigt oben den Wert für die rechte untere Ecke!!!

Für die Konvertierung von osm zu pbf:

bin\osmosis --rx data\torbole.osm --write-bin
  tmp\torbole.osm.pbf omitmetadata=true

Für die Konvertierung von pbf zu map mit Dateien von der Geofabrik:

bin\osmosis --rb file=data\hessen.osm.pbf
  --mapfile-writer file=tmp\hessen.map type=hd

Für Konvertierung von pbf zu map mit Dateien von openstreetmap.org:

bin\osmosis --rb file=data\torbole.osm.pbf    --mapfile-writer file=tmp\torbole.map bbox=45.8594,10.8402,45.8995,10.8986

Man beachte vor den Parametern den Bindestrich: Er besteht aus zwei einzelnen Bindestrichen! Es ist möglicherweise besser, diese Kommandos nicht mit Cut-und-copy aus diesem Text zu entnehmen, sondern wirklich selbst einzutippen!

Kategorien:Android, GPSSend
  1. Gerd
    Juni 11, 2011 um 11:30 am

    Moin aus Oldenburg
    vielen Dank für die umfangreichen Informationen, sehe ich das richtig, dass für Deutschland jetzt alle MAP-Dateien downloadbar sind?
    Grüße

    • Juni 11, 2011 um 3:45 pm

      Ja, mittlerweile gibt es die Bundesländer und Deutschland als ‚map‘-Datei zum Download.

      • Maddin
        Juli 6, 2011 um 5:00 am

        Und wo?

  2. Juli 6, 2011 um 5:06 am

    Ähhh, hast Du den Anfang dieses Artikels tatsächlich gelesen?

    Maddin :

    Und wo?

  3. Maddin
    Juli 6, 2011 um 6:09 am

    Habe sogar den ganzen Artikel gelesen! Hast du sehr verständlich geschrieben!
    Und bei mapsforge.org finde ich nur die erwähnten drei!

  4. Maddin
    Juli 6, 2011 um 6:20 am

    Sorry, mein Fehler!! Habe versucht den ftp-Server mit meinem Handy Browser zu öffnen!
    Und da war die Seite nicht erreichbar!
    Habe es eben nochmal am Rechner versucht und siehe da : die seit ist erreichbar!!
    Alles geklärt!
    Nochmal ein Lob für die super Arbeit!

  5. Christoph
    August 30, 2011 um 5:46 am

    Hello Pete,
    vielen Dank fuer den Artikel und die Software. Habe etwas Probleme the MAP Dateien zu produzieren. Die OSM.PBF Dateien werden erstellt, aber die MAP Dateien kann ich nicht finden obwohl, Osmosis keine Fehlermeldung gibt.
    Zuerst dachte ich, die Ordnernamen bei der Konvertierung von PBF zu MAP mit Dateien von openstreetmap.org waeren vertauscht (DATA vs TMP), weil nach dem ersten Schritt the OSM.PBF Dateien im TMP folder liegen. Ich hab den zweiten Schritt (fuer OSM-Dateien) also nochmal durchgefuehrt und dabei TMP und DATA vertauscht. Leider konnte ich danach die MAP Dateien immer noch nicht im DATA Ordner finden.
    Woran kann es nur liegen???
    Ausserdem, wohin muss ich die MAP Dateien im Android-Phone den ablegen? Und kann denn GPSSend auch auf der SD-Karte gespeichert werden??
    Herzlichen Dank, Christoph

    • August 30, 2011 um 7:16 am

      Hast Du den richtigen Koordinatenbereich angegeben?

      Sitze leider gerade nicht vor meinem Rechner und kann darum nicht nachsehen, was falsch gelaufen sein könnte. Wenn Du glaubst dass eine ‚map‘-Datei erzeugt worden ist, so suche doch über den Windows-Explorer nach einer aktuell erzeugten Datei, die ungefähr die erwartete Größe besitzt!?

      Die ‚map‘-Datei kann irgendwo auf der SD-Karte abgelegt werden. In GPSSend gibt es eine Einstellung, in der Du Pfad und Dateiname angeben kannst.

      Ob GPSSend auch auf der SD-Karte installiert werden kann, habe ich noch nie ausprobiert.

      • Christoph
        August 31, 2011 um 4:31 pm

        Jetzt hats geklappt die MAP Dateien zu erzeugen, ich hatte mich bei der Sequenz der Koordinaten vertan. Ist ein klasse Programm!
        Ich hab einen Evo4G, wo der Speicherplatz leider auf 1Gb beschränkt ist. Wäre echt klasse wenn GPSsend mit App2SD kompatibel wäre damit es auf der SD Karte laufen könnte!
        Außerdem, hast du schon mal daran gedacht, die System auf Englisch zu übersetzen um mehr Leute dafür zu interessieren. Ich könnte dir dabei vielleicht behilflich sein.
        Grüße

  6. Anonymous
    September 14, 2011 um 9:45 pm

    Ich bekomme leider immer die Fehlermeldung „http://svn.openstreetmap.org/applications/rendering“ auf meinem PC mit Win7(32bit). Google kann mir leider auch nicht helfen 😦 hab es mit berlin versucht, also einer kleinen karte… 😦

  7. Anonymous
    September 14, 2011 um 11:04 pm

    Sorry copy und paste Fehler 😉 die fehlermeldung sagt das der Speicher heap nicht ausreicht…

  8. Michaeö
    September 22, 2011 um 11:02 am

    Hi!

    Erstmal ein dickes Lob an dich!! Da hast du ein echt super Tool gemacht… Ein Frage zu den Kartenmaterial habe ich. Aktuell nutze ich die Saarland Karte.. da ich aber im Grenzgebiet zu Frankreich fahre kann ich ja nur Saarland oder die angrenzende Frankreich Karte auswählen. Kann ich das Kartenmaterial irgendwie zusammenfassen in eine Datei?? Ich habe versucht über den OpenStreetMap mein Gebiet auszuwählen und downloaden aber das Tool sagt mir dann immer das der Bereich zu groß wäre :-(. Hast du da vielleicht noch ein Tip für mich? Grüße

    • September 22, 2011 um 11:27 am

      Leider nicht. Es geht zwar schon, auf dem Weg über OpenStreetMap Bereiche auszuwählen, nur leider dürfen die nicht sonderlich groß sein.

      Vermutlich gibt es noch Möglichkeiten, die setzen aber sehr wahrscheinlich einen virtuosen Umgang mit Osmosis oder ähnlichen Tools voraus.

      • Michael
        September 22, 2011 um 12:18 pm

        Okay danke… mmh vielleicht mache ich dann kleinere Bereiche für die jeweilige Strecke…. ich tüfftel mal… DANKE!

  9. Anonymous
    September 22, 2011 um 7:11 pm

    Hallo

    kann man auch den Kartenstil irgendwie ändern? Nebenwege (Wanderwege) in einer anderen Farbe?

    • September 22, 2011 um 7:27 pm

      Momentan geht das nicht. Vielleicht später einmal.

  10. Anonymous
    Dezember 1, 2011 um 5:30 pm

    Hallo

    für das Wandern sind diese Karten nicht so vorteilhaft, da man „Nebenwege“ nicht von Hauptewgen unterscheiden kann.
    Gibts da ne Möglichkeit das abhängig vom Tracktype zu beeinflussen?

  11. Anonymous
    Dezember 1, 2011 um 5:32 pm

    …Entschuldigung, ich habe den vorhergehenden Beitrag erst jetzt gelesen….

    Schade, dass das nicht geht, deshalb nehme ich OSMAND…..

  12. Anonymous
    Mai 18, 2012 um 10:01 am

    Hallo zusammen,
    ich habe mir die aktuellen Dateien „downloaded“ mapsforge-map-writer-0.3.0-jar-with-dependencies.jar und niedersachsen.osm.pbf. Leider bekomme ich nach Eingabe des DOS-Befehls „bin\osmosis –rb file=data\niedersachsen.osm.pbf –mapfile-writer file=tmp\niedersachsen.map type=hd“ imer die Fehlermeldung Der Befehl java ist entweder falsch geschreiben oder konnte nicht gefunden werden. Wie löse ich das Problem.

    • mp
      Mai 21, 2012 um 1:20 pm

      Ich vermute mal schwer, dass die JRE zwar installiert ist, aber keine entsprechende Umgebungsvariable im System gesetzt ist. Das erkennst du ganz leicht, wenn du einfach mal eine DOS-Eingabeaufforderung öffnest (cmd) und nur den Begriff java eingibst. Wenn da die gleiche Meldung kommt, dass java nicht gefunden wurde, dann mach folgendes:
      Such den bin-Pfad deiner JRE raus (z.B. C:\Program Files (x86)\Java\jre6\bin unter Win7 64-Bit oder C:\Programme\Java\jre6\bin unter WinXP). Kopier den kompletten Pfadnamen inkl. \bin in die Zwischenablage. Öffne die Verwaltung der Umgebungsvariablen (Rechtsklick auf Computer –> Eigenschaften –> Erweiterte Systemeinstellungen –> Umgebungsvariablen –> Systemvariablen). Suche die Systemvariable mit dem Namen „PATH“ und bearbeite sie. Hänge den Pfad aus der Zwischenablage an die bereits vorhandenen Werte mit einem vorangestellten Semikolon ; an. Grüße

  13. Mai 18, 2012 um 10:15 am

    Hast Du denn Java richtig installiert? Hast Du das Ende meines Artikels exakt beachtet?

  14. Anonymous
    Mai 18, 2012 um 10:28 am

    Ja es sind zwei Einzelstriche. Ebenso habe ich in die DOS-Zeile den fertigen Befehl hineinkopiert und dann hessen durch niedersachsen ergänzt. Man hat es als „normal-user“ mit Sonderwünschen leider nicht so leicht. Toll, dass du direkt gewortet hast. Ich weiß, Ferndiagnose ist immer schwierig, aber Ideen sind sehr willkommen 🙂

  15. Mai 18, 2012 um 10:31 am

    Ebene habe ich Deinen Eintrag noch einmal gelesen. Es sieht so aus, als ob Du Java nicht oder nicht richtig installiert hast. Kann das sein?

  16. Anonymous
    Mai 18, 2012 um 10:34 am

    Ne java rzuntime enviroment ist drauf und funktioniert auch mM. auch.
    Habe win7, aber das dürfte doch auch damit gehen, in deiner Dos-Zeile steht „–mapfile-writer“ das neue Programm heißt „map-writer“ habe dieses als weiteren Versuch schon umbenannt, hat aber auch die gleiche Meldung zur Folge.

  17. Mai 18, 2012 um 10:40 am

    Ja, aber Dein erster Kommentator deutet darauf hin, dass Java.exe nicht gefunden werden kann! Es muss im Suchpfad sein!

  18. Anonymous
    Mai 18, 2012 um 10:49 am

    Java ist bei mir „ganz normal“ in c:/program files (86)/java/jre7 installiert
    🙂 Hilft aber wohl nicht oder ?

  19. Mai 18, 2012 um 10:57 am

    Wie ich anfangs schon schrieb, hier muss man sich auskennen. Ich habe leider nicht genug Zeit, Dir hier weiter zu helfen. Der nächste Ansatzpunkt für Dich ist ‚Suchpfad‘! Weiter viel Erfolg!

  20. Wolfgang
    Februar 24, 2013 um 10:14 pm

    Hallo. Ich bin bis zur Umwandlung zur pbf datei gekommen. Beim letzten Schritt bekomme ich immer diese Fehlermeldung:

    C:\Android\my apps\map app\osmosis\osmosis>bin\osmosis –rb file=tmp\map.osm.pbf
    –mapfile-writer file=tmp\map.map bbox=42.1690,-8.6880,42.2650,-8.8290

    feb 24, 2013 11:03:57 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Osmosis Version 0.42

    feb 24, 2013 11:03:57 PM org.openstreetmap.osmosis.core.Osmosis run
    INFO: Preparing pipeline.

    feb 24, 2013 11:03:57 PM org.openstreetmap.osmosis.core.Osmosis main
    SEVERE: Execution aborted.

    java.lang.IllegalArgumentException: minLon is greater than maxLon

    Kannst Du damit etwas anfangen? Liegt das eventuell an den Koordinaten.
    Danke

  21. März 1, 2013 um 11:51 am

    Hallo Wolfgang! Ich habe das lange nicht mehr gemacht und auch momentan keine passende Software installiert, um irgendetwas ausprobieren zu können. Aber diese Meldung ist ja ziemlich eindeutig: minLon is greater than maxLon

    Versuch doch einmal die bbox anders zu setzen und achte auf meine entsprechende Bemerkung im Artikel!

    • Wolfgang
      März 1, 2013 um 3:05 pm

      Vielen Dank. Ich habe schon einiges ausprobiert. Mal sehen, ob ich das noch irgendwie hinbekomme. Dann sag hier bescheid…..

  22. GTSport1982
    April 12, 2013 um 9:50 am

    Hallo! Die Anleitung ist ja soweit verständlich – leider sagt der mir immer im DOS-Befehl immer folgendes: „Cannot load JPF-Plugin mapsforge/mapfilewriter for extensionpoint ‚Task'“. Hab alles haargenau nach Anleitung gemacht, Java läuft auch! Woran liegt’s? Bitte um kurze Hilfe! DANKE!!!

  23. April 12, 2013 um 10:31 am

    Bist Du sicher, dass Du den ‚mapfilewriter‘ downgeloadet und eingebunden hast?

  24. Anonymous
    Oktober 7, 2015 um 6:56 pm
  1. No trackbacks yet.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: