Allgemein
Karten herunterladen
POI und OSM Notes ab Version 2
Kartenzoom
OSM Notes offline nutzen
Eigene POI verwenden
Tracks aufzeichnen
Orte und Straßen finden
Eigene Karte bauen

OsmAnd

Allgemein

OsmAnd ist eine Karten und Navigationssoftware. Als Kartenmaterial dient die freie Weltkarte von Openstreetmap. Ich nutze OsmAnd haupsächlich zum mappen, da es auch mit offline Kartenmaterial funktioniert.

Die Installation kann aus dem App Market deiner Wahl erfolgen. Ich finde den F-Droid ganz nett, da hier nur freie Software mit Lizenzangabe zu finden ist. Auf der OsmAnd Hompage findet man hier die einzelnen Versionen zum Download. Oder du nutzt den aktuellen Nightbuild. Dieser kann aber auch schon mal Fehler enthalten.

Zum erstellen eigener Karten und POI nutze ich das dazugehörige Java Tool OsmAndMapCreator. Es läuft bei mir mit dem freien OpenJDK Version 6 aus dem Debian Squeeze Paket bzw. OpenJDK 7 aus Debian Wheezy und Jessie.

Karten herunterladen

Wer die freie OSMAND nutzt kann nur begrenzt Karten downloaden. Wer trotzdem mehr Karten benötigt, kann sich hier weltweit aktuelle Karten downloaden, diese entpacken und die .obf Datei in den osmand Ordner auf seinem Andoid Gerät legen. Alte Karten sollten zuvor auf dem Andoid Gerät gelöscht werden.

POI und OSM Notes ab Version 2

Ab OSMAnd Version 2 kann man unter POI nicht mehr den Geocache aktivieren. Um eigene Notes bzw. POI weiterhin anzuzeigen, gibt es zwei Varianten:

Variante I

Man editiert die Datei poi_types.xml im osmand Verzeichnis auf seinem Smartphone und fügt ganz am Ende unter user_defined_other folgende zwei Zeilen hinzu:

<poi_category name="user_defined_other" default_tag="amenity">
   <poi_type name="hotel" tag="tourism" value="hotel"/>
   <poi_type name="found" tag="geocache" value="found"/>
</poi_category>

Das Hinzufügen von zwei Zeilen ist notwendig, da beim Hinzufügen von nur einem Eintrag die Anzeige falsch ist. Mit der von mir genutzten Version werden sonst auch noch WLAN Access Points angezeigt.

Variante II

Man nimmt statt geocache einen POI der in der Auswahlliste ist. Eine Liste möglicher POI kann der Datei poi_types.xml im osmand Verzeichnis auf seinem Smartphone entnommen werden. Um z.B. die POI als Silo anzeigen zu lassen ruft man gpsbabel wie folgt auf:

gpsbabel -i gpx -f myfile.gpx -o osm,tagnd="man_made:silo",created_by= -F mypoi.osm

Kartenzoom

Wer wie ich Problem mit der Schriftgröße bei OsmAnd hat, kann diese recht einfach vergößern.

1. Lange auf + oder - drücken

2. Es öffnet sich das Fenster mit der aktuellen Zoomstufe.

3. Hier nun eine größere Zoomstufe auswälen.

4. Von nun an werden die Schriften größer angezeigt.

Schritt 1 Schritt 2

Schritt 3 Schritt 4

OSM Notes (Hinweise) offline nutzen

Bitte auch die Änderungen und Ergänzungen zu POI und Notes mit OSMAnd Version 2 beachten

Die OSM Notes bzw Hinweise lassen sich einfach unter Linux herunterladen und zur Nutzung unter OsmAnd konvertieren. Mehr zu den Notes findet man im OSM Wiki.

Wer möchte, kann sich auch aus dem Download-Bereich ein kleines Script runterladen, in dem die Befehle automatisch ausgeführt werden. Dort sind dann auch am Anfang alle Bundesländer zu finden.

1. Wir laden uns die Daten von dem gewünschten Bereich vom OSM Server herunter. In unserem Beispiel sind es alle offenen Notes von Brandenburg.

wget -O myfile01.tmp "http://api.openstreetmap.org/api/0.6/notes.gpx?bbox=11.268,51.360,14.764,53.557&limit=9999&closed=0"

2. Wir filtern nur die für uns relevanten Zeilen raus um später alles besser auf dem Handy lesen zu können. Sonst wird die die Sache etwas unübersichtlich.

grep -iE "(</\desc>|<desc>|note-comment-text|wpt)" myfile01.tmp > myfile02.tmp

3. Jetzt löschen wir noch ein paar Formatierungen raus da diese unseren Text später nur unleserlich machen.

sed "s/<div class=\"note-comment-text\">//" myfile02.tmp > myfile03.tmp

4. Nun noch kurz einen Header schreiben da sonst gpsbabel nur eine Fehlermeldung liefert.

echo "<gpx>" > myfile.gpx

5. Noch ein paar Formatierungen löschen.

sed "s/<\/div>//" myfile03.tmp >> myfile.gpx

6. Die GPX Datei ordentlich abschließen da sonst gpsbabel auch hier eine Fehlermeldung liefern würde.

echo "</gpx>" >> myfile.gpx

7. Und nun eine OSM Datei daraus machen um sie im Anschluss mit dem OsmAndMapCreator umwandeln zu können.

gpsbabel -i gpx -f myfile.gpx -o osm,tagnd="geocache:found",created_by= -F mypoi.osm

8. Nun starten wir den OsmAndMapCreator und nehmen alle Haken raus außer bei Build POI index und Build Address index. Über FileCreate .obf from .osm file laden wir nun unsere erstellte mypoi.osm Datei und lassen uns eine Datei Namens mypoi.obf erstellen.

9. Die neu erstelle Mypoi.obf Datei wird beim Erstellen in das osmand Verzeichnis auf unserem Rechner abgelegt. Von dort verschieben wir die Datei nun in den osmand Ordner auf unser Andoid Gerät. Bitte nicht in das POI Verzeichnis ablegen sondern direkt in das osmand Verzeichnis.

10. Als letztes schalten wir in OsmAnd unter Kartenebenen (früher Darstellung) noch Geocache ein. Nun werden die POI auf der Karte angezeigt angezeigt.

Schritt 1 Schritt 2

Eigene POI aus GPX Datei hinzufügen

Bitte auch die Änderungen und Ergänzungen zu POI und Notes mit OSMAnd Version 2 beachten

1. Zuerst wandeln wir mit gpsbabel unsere GPX Datei in eine OSM Datei um und legen fest, als was uns unsere POI angezeigt werden sollen. In dem Beispiel habe ich mich für geocache found entschieden.

gpsbabel -i gpx -f mypoi.gpx -o osm,tagnd="geocache:found",created_by= -F mypoi.osm

2. Nun starten wir den OsmAndMapCreator und nehmen alle Haken raus außer bei Build POI index und Build Address index. Über FileCreate .obf from .osm file laden wir nun unsere erstellte mypoi.osm Datei und lassen uns eine Datei Namens mypoi.obf erstellen.

3. Die neu erstelle mypoi.obf Datei wird beim Erstellen in das osmand Verzeichnis auf unserem Rechner abgelegt. Von dort verschieben wir die Datei nun in den osmand Ordner auf unser Andoid Gerät. Bitte nicht in das POI Verzeichnis ablegen sondern direkt in das osmand Verzeichnis.

4. Als letztes schalten wir in OsmAnd unter Kartenebenen (früher Darstellung) noch Geocache ein. Nun werden deine POI auf der Karte angezeigt.

Auf diese Weise können auch recht einfach die exportieren GPX-Daten von Keepright geladen und angezeigt werden.

Tracks aufzeichnen

Das Aktivieren der Trackaufzeichnung erfolgt in drei Schritten:
  1. Den Start/Stop Button auf der Oberfläche aktivieren.
  2. Nun kann über den Button die Aufzeichnung gestrtet und gestoppt werden.
  3. Zum scheiben des Tracks auf die SD Karte muss unter Einstellungen → Allgemein → aktuellen Track sichern der Track gespeichert werden.

Schritt 1 Schritt 2

Schritt 3 Schritt 4

Die Tracks sind dann auf der SD Karte unter osmand/tracks nach Datum und Zeit sortiert zu finden.

Orte und Straßen finden

Wenn Osmand einmal den Einen oder Anderen Ort bzw. die Eine oder Andere Straße nicht findet,kann die Suche ganz einfach erweitert werden.

Das Finden von Orten bei der Suchfunktion gestaltet sich ganz einfach:

  1. Den Ortsnamen oder einen Teil davon ins Suchfeld eingeben.
  2. Den Button Suche Dörfer oder Postleitzahlen betätigen.
  3. Weitere Orte die zu dem Suchbegriff passen werden angezeigt.

Orte finden Schritt 1 Orte finden Schritt 2

Auch das Finden von Straßen bei der Suchfunktion gestaltet sich ganz einfach:
  1. Den Straßennamen oder einen Teil davon ins Suchfeld eingeben.
  2. Den Button Search street in neighborhood cities betätigen.
  3. Weitere Straßen die zu dem Suchbegriff passen werden angezeigt.

Straßen finden Schritt 1 Straßen finden Schritt 2

Die Beispiele sind übrigens mit einer selbst gebauten Karte von Brandenburg gemacht worden.

Wir bauen uns eine eigene Karte

Mit grafischer Oberfläche

An dem Beispiel von Berlin möchte ich zeigen, wie man sich recht einfach für OsmAnd eine routingfähige Karte bauen kann. Als Rohdaten nutzen wir die tagesaktuellen Daten von der Geofabrik

1. Zuerst laden wir uns mit wget aus dem Download-Bereich der Geofabrik die OSM-Rohdaten für Berlin herunter. Alternativ kann die Datei auch direkt mit dem Browser herunter geladen werden.

wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.bz2

2. Nun starten wir den OsmAndMapCreator und setzen alle Hake außer bei Use offline. Über FileCreate .obf from .osm file laden wir die Rohdatendatei berlin.osm.bz2. Die Datei muss dazu nicht entpackt werden. Das Bauen der Karte kann jetzt je nach Rechnerleisung und Größe der Rohdaten einige Stunden dauern.

3. Die neu erstelle Karte Names berlin.obf wird beim Erstellen in das osmand Verzeichnis auf unserem Rechner abgelegt. Von dort verschieben wir die Datei nun in den osmand Ordner auf unser Andoid Gerät. Beim nächsten Start von OsmAnd wird diese nun automtisch geladen.

Auf der Kommandozeile

ACHTUNG! Es scheint hier Unterschiede bei den einzelnen Versionen zu geben. Das hier beschriebene wurde mit OsmAndMapCreator Version 1.1. #889M getestet.

1. Zuerst legen wir uns zwei neue Verzeichnisse an. In unseren Beispiel lege ich diese in dem temporären Verzeichnis an. Das Verzeichnis for_osm_files ist für die Rohdaten und in dem Verzeichnis for_index_files finden wir später unsere Karte wieder.

mkdir /tmp/for_osm_files
mkdir /tmp/for_index_files

2. Nun wechseln wir in das Verzeichnis, in dem wir unsere tagesaktuellen Rohdaten von der Geofabrik ablegen. Es können dort mehrere Rohfiles abgelegt werden.

cd /tmp/for_osm_files

3. Jetzt werden die Rohdaten mit wget von dem Server der Geofabrik runtergeladen. In diesem Beispiel ist das Berlin und Bremen.

wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.bz2
wget http://download.geofabrik.de/europe/germany/bremen-latest.osm.bz2

4. So, nun wechsleln wir in das Verzeichnis, in dem wir den OsmAndMapCreator entpackt haben. Bei mir ist das: ~/bin/OsmAndMapCreator-development Dort gibt es eine Datei mit dem Namen: batch.xml. In dieser Datei müssen wir die rot gekennzeichneten Einträge anpassen. Alternativ kann auch eine neue Datei angelegt werden in der der xml Code hinein kopiert wird. Dann muss aber auch in Schritt 5 diese Datei beim Aufruf mit angegeben werden.

<?xml version="1.0" encoding="utf-8"?>
  <batch_process>
    <process_attributes
      mapZooms="10-20"
      renderingTypesFile=""
      zoomWaySmoothness="2"
      osmDbDialect="sqlite"
      mapDbDialect="sqlite"/>
    <process
      directory_for_osm_files="/tmp/for_osm_files/"
      directory_for_index_files="/tmp/for_index_files/"
      directory_for_generation="/home/..."
      skipExistingIndexesAt="/home/..."
      indexPOI="true"
      indexRouting="true"
      indexMap="true"
      indexTransport="true"
      indexAddress="true">
    </process>
  </batch_process>

5. Nun stoßen wird das eigentliche Bauen der Karte an. Wenn in Schritt 4 ein neues xml File erstellt wurde, muss batch.xml durch dieses ersetzt werden.

java -Djava.util.logging.config.file=logging.properties -Xms256M -Xmx1024M -cp "./OsmAndMapCreator.jar:./lib/OsmAnd-core.jar:./lib/*.jar" net.osmand.data.index.IndexBatchCreator ./batch.xml

6. Die neu erstellen Karten mit der Endung .obf liegen nun in dem Ordner /tmp/for_index_files Von dort verschieben wir die Datei in den osmand Ordner auf unser Andoid Gerät. Beim nächsten Start von OsmAnd wird diese nun automtisch geladen.

Weitere Informationen und wie man das Ganze in einen Shellscript verwendet findes du hier