DE:Mkgmap/help/usage

From OpenStreetMap Wiki
Jump to navigation Jump to search

an unequal sign

Dieser Artikel ist eine deutsche Übersetzung des Originals (in der Regel auf Englisch), aber der Inhalt scheint unvollständig oder nicht aktuell zu sein! Bitte aktualisiere diese Übersetzung, wenn möglich.

Übersetzung in Arbeit --elmada 11:50, 22 October 2011 (BST)

Eine Karte erstellen

Am einfachsten läßt sich eine Karte aus einer mit JOSM gespeicherten *.osm-Datei erstellen. Für diese Datei kannst Du einen beliebigen Namen mit der Dateierweiterung "osm" wählen. Ich benutze z.B. die Bezeichnung data.osm Um die Kartenerstellung zu starten, gebe in der cmd-Box folgenden Befehl ein:

java -jar mkgmap.jar data.osm

Dieser Befehl erzeugt eine Karte mit dem Namen 63240001.img (Garmin-Karten bestehen grundsätzlich aus 8 Ziffern mit der Dateierweiterung img. Natürlich kannst Du die Ziffern austauschen.) Welche Möglichkeiten es noch gibt, Änderungen an der Karte vorzunehmen, erfährst Du im nächsten Abschnitt.


Optionen aufrufen

Optionen können auf zweierlei Weise aufgerufen werden:

  • Direkteingabe in der Kommandozeile
  • in einer Kommando-Datei (z.B. *.args) abspeichern und diese dann wie einen Befehl aufrufen.

Es ist möglich mit mkgmap beide Methoden gleichzeitig zu verwenden.

Optionen werden in der Reihenfolge abgearbeitet, in der sie in der Kommandozeile bzw. in der Kommando-Datei eingetragen wurden. Options are processed in the order listed on the command line/in the arguments file. Daher ist es möglich, eine Option für eine bestimmte Karte einzusetzen und anschließend bei der Erstellung der nächsten Karte zu wechseln.


Kommandozeile

Liste die Optionen in der Kommandozeile in der Reihenfolge auf, in der sie abgearbeitet werden sollen. Beispiel:

java -jar mkgmap.jar --tdbfile --route data.osm

Mit folgender Kommandozeile können multible (?) Karten erzeugt werden:

java -jar mkgmap.jar --tdbfile data1.osm --route data2.osm

Kommando-Datei

Liste die Optionen in einer einfachen Textdatei auf (*.txt). Verwende für jede Option eine neue Zeile und formuliere nach folgendem Muster: "Bedingung:Wert" Falls für eine Option kein Wert eingesetzt wird, läßt man den Doppelpunkt weg. Beispiel für eine Kommando-Datei:

style-file: mystyle
family-name: My map
series-name: My map
transparent
tdbfile
draw-priority: 25
net
route
remove-short-arcs

Wenn diese Kommando-Datei abgespeichert wurde als "optionsfile.args", wird sie folgendermaßen aufgerufen:

java -jar mkgmap.jar -c optionsfile.args data.osm


In einer Kommando-Datei können mehrere Quell-Dateien mit der Option 'input-file' aufgerufen werden.


Optionen

Um eine individuell gestaltete Karte zu erstellen, ändert oder erweitert man durch das Setzen von Optionen die Grundeinstellungen, die die Standard-Karte erzeugen. Optionen ruft man in der Kommandozeile sets vor den Namen der Quelldatei auf. Beispiel:

java -jar mkgmap.jar [options] data.osm

Wenn mehrere Optionen gesetzt werden sollen, ist es unter Umständen einfacher, diese in einer Datei abzuspeichern und dann die -c Option zu nutzen. (siehe unten)


Standard Optionen

--help zeigt die Liste der verfügbaren Hilfethemen

java -jar mkgmap.jar --help

--help=topic zeigt die Hilfe für ein bestimmtes Thema. Hier für das Thema "options":

java -jar mkgmap.jar --help=options

-c filename Die angegebene Datei wird geöffnet. Jede Zeile entspricht einer Option im Format Option:Wert, so wie in der Kommandozeile. Allerdings fehlen die anführenden '--'.

java -jar mkgmap.jar -c options.args data.osm

Beispiel für eine Optionen-Datei:

style-file: meinKartenstil
family-name: meineKarte
series-name: meineKarte
transparent
tdbfile
draw-priority: 25
net
route
remove-short-arcs

--input-file=filename Eine andere Möglichkeit die Input-Datei aufzurufen. Sehr hilfreich in einer Optionen-Datei. (siehe oben -c )

java -jar mkgmap.jar --input-file=data.osm

--tdbfile filename erstellt eine *.TDB-Datei, mit deren Hilfe die Karte in MapSource installiert wird.

java -jar mkgmap.jar --tdbfile data.osm

-n name ?

--mapname=name ändert den Kartennamen (in der Regel den Namen der Ausgabe-Datei). Garmin-Karten werden mit 8 Ziffern benannt. Jede Kartenkachel benötigt einen eigenen unverwechselbaren Namen. Die Standardeinstellung in Mkgmap ist 63240001.img. Gib nur die Ziffernfolge ein und lasse die Erweiterung (img) weg. Ansonsten erzeugt Mkgmap eine Fehlermeldung. Es ist immer gut, diesen Standard-Namen zu ändern, wenn man für andere Nutzer Karten erstellt. Nur wenn der Kartenname einmalig ist, kollidiert er bei der Installation nicht mit anderen Karten des Nutzers.

java -jar mkgmap.jar --mapname=12345678 data.osm

--family-name=Ihr Name

Gibt einen Namen aus. Der Name wird im Garmin Gerät in der Liste der Karten angezeigt. Ein Beispiel " --family-name=LKW_Karte " Ergibt im Garmin Gerät die Anzeige " LKW-Karte ".

--description=text erzeugt einen beschreibenden Text für die Karte. Dieser wird z.B. in QLandkarte, MapSource oder im GPS-Gerät angezeigt. Im GPS-Gerät kann man im Karten-Setup sehen, daß jede einzelne Kartenkachel mit dem Text beschriftet ist, der in der Option --description eingegeben wurde.

java -jar mkgmap.jar --description="Meine Garminkarte" data.osm

--gmapsupp erzeugt eine gmapsupp.img-Datei, die gegebenenfalls mit einer vorher erzeugten gmapsupp.img-Datei zusammengefügt wird. Wenn das gewünscht ist, muß diese Datei im Mkgmap-Arbeitsverzeichnis stehen. Schließt man das Garmin-Gerät im USB-Massenspeicher-Modus an den PC an, läßt sich eine gmapsupp.img-Datei im Windows-Explorer des Rechners per drag&drop auf das GPS-Gerät schieben. Abhängig von der Unit-Software ist dabei gegebenenfalls zu beachten, daß (insbesondere ältere Geräte) nur eine gmapsupp.img-Datei verwalten können. Diese darf allerdings *.img-Daten aus verschiedenen Kartensätzen beinhalten, so daß trotzdem mehrere Karten auf dem Gerät angezeigt werden können. Der Befehl zur Erzeugung einer gmapsupp.img faßt im nachfolgenden Beispiel eine Corsica-, Zypern-, Mallorca- und Teneriffa-Karte zusammen.

java -jar mkgmap.jar --gmapsupp corsica.img cyprus.img mallorca.img malta.img tenerife.img

--ignore-osm-bounds Beim Auslesen der OSM-Datei alle "bounds" Elemente (Grenzen) ignorieren. (?)

--draw-priority=Number' Wenn zwei Karten dasselbe Gebiet überdecken, kontrolliert diese Option die Reihenfolge, in der die Karten übereinander gezeichnet werden. Je höher die mit "--draw-prority" vergebene Zahl ist, um so weiter oben liegt die Karte. Dadurch erhält man die Möglichkeit, mehrere Kartenlayer mit sich ergänzenden Informationen aufeinander abzustimmen, die im GPS-Gerät nach Bedarf ein- und ausgeblendet werden können.

--transparent Diese Option macht die Karte transparent, so daß man durch sich überlagernde Karten hindurch sehen kann. Das ist sehr nützlich, wenn eine nur aus Linien (Höhenlinien, Bus-, Rad-, Wander-Routen, Grenzen oder ....) bestehende Karte über andere Dinge gelegt werden soll. .

--version Die Version des Ausgabe-Programms.

Beschriftungs Optionen

Die Gerätesoftware der verschiedenen Garmingeräte ist teilweise nicht in der Lage, im Englischen unübliche Buchstaben wie Umlaute oder ß darzustellen. Deshalb werden alle betroffenen Buchstaben standardmäßig nach Möglichkeit in ASCII-Zeichen umgewandelt. Das sorgt dafür, daß die erzeugte Karte in möglichst vielen Anwendungen nutzbar ist. Diese Einstellung kann mit bestimmten Optionen geändert werden. Details hierzu sind auf der Seite Internationalisation nachzulesen.


--latin1 Diese Option erlaubt die Anzeige von Non-ASCII-Zeichen in Straßennamen (beispielsweise ä, ó). Es ist ein verkürzter Aufruf der --code-page=1252. Welcher Zeichensatz auf dem GPS-Gerät erkannt wird, ist von der Unit-Software abhängig. Manche Geräte können z.B. nur die ASCII-Zeichen anzeigen. Ohne Aufruf dieser Option konvertiert Mkgmap daher standardmäßig nach Möglichkeit die nicht anzeigbaren Zeichen in ASCII-Zeichen.

java -jar mkgmap.jar --latin1 data.osm

--code-page=number setzt die vorgegebene Code-Seite in den LBL-Header der erzeugten Karte. (siehe auch OSM Map On Garmin/LBL Subfile Format )

java -jar mkgmap.jar --code-page=1252 data.osm

--lower-case erlaubt die Verwendung von Kleinbuchstaben. Beachte bitte, daß dies vor allem in vielen älteren Garmin-Geräten nicht funktioniert.

java -jar mkgmap.jar --latin1 --lower-case data.osm

Adress-Suche konfigurieren

--index erzeugt einen globalen Index für die Adress-Suche, der mit MapSource genutzt werden kann (MDR index files). Durch den Einsatz dieser Option erzeugt man den Zugriff auf die "Find Place"-Funktionen in MapSource. Der Index besteht standardmäßig aus zwei Dateien mit den Namen osmmap.mdx und osmmap_mdr.img. Wenn Du diese Standardeinstellungen ändern möchtest, nutze die overview-mapname mkgmap-Option, um den Namen der von Dir bevorzugten Form anzupassen. Ältere GPS-Geräte (z.B. die PBSMap-Serie) erlauben bestimmte Typen der Adress-Suche, indem sie eine einfache gmapsupp.img nutzen, die direkt auf das GPS-Gerät kopiert wird. Bei neueren GPS-Geräten muß die Karte zuerst in MapSource installiert und anschließend mit MapSource auf das Gerät übertragen werden. (Ist das der aktuelle Stand?)

Die Adress-Felder werden von speziellen mkgmap Adress-Tags mit folgendem Style-File aufgerufen:

mkgmap:country
mkgmap:region
mkgmap:city
mkgmap:postal_code
mkgmap:street
mkgmap:housenumber
mkgmap:phone
(mkgmap:is_in - used by location-autofill=is_in)


Information zum Adressindex sind auch hier zu finden: Adressindex. Das sind erforderliche Angaben die Mkgmap auswerten kann, dass die Orte auch in der Karte zu finden sind. Adress Index und Ortschaft mit JOSM richtig eintragen. Josm Adress Index

--bounds=directory bestimmt das Verzeichnis, das die erzeugten Bounds-Dateien enhält
Standard: bounds

--location-autofill=[ValueList] kontrolliert, wie Land, Region, Stadt und Zip-Infos (?) gesammelt/sortiert werden für Städte, Straßen und Zielpunkte. (?)
Controls how country, region, city and zip info is gathered for cities, streets and pois.
Standard: bounds

  • bounds Die vorsortierten Grenzen werden benutzt, um alle Punkte, Linien und Flächen, die sich innerhalb einer Grenze befinden mit einem speziellen Tag zu markieren:
mkgmap:admin_level2 : Name of the admin_level=2 boundary 
mkgmap:admin_level3 : Name of the admin_level=3 boundary
..
mkgmap:admin_level11
mkgmap:postcode : the postal_code value
Das Style-File ermöglicht, die Adress-Tags mkgmap:country, mkgmap:region etc. mit diesen Werten zu markieren.
  • is_in Das is_in-Tag wertet Informationen über Land und Region aus. Dies gilt nur für Adress-Tags, die nicht über die Style-Regeln definiert sind.
  • nearest Wenn alle vorausgehenden Methoden der Verortung nicht greifen, werden die am nächsten zum Kartenobjekt gelegenen city/hamlet-Punkte genutzt, um die fehlenden Adress-Tags zu ergänzen.
Warnung: Elemente können dabei dem/der falschen Land/Region/Stadt zugeordnet werden.

Style options

--list-styles zeigt eine Liste der im mkgmap-jar-File enthaltenen vorgefertigten, optional anwählbaren Styles an. Sie werden mit der Option --style=<name-built-in-style> aufgerufen(siehe unten).
Folgende Built-in-Styles sind ab Version 1838 enthalten:

control            0.1: A style for traffic control features (?)
default            1.0: Standard-Stil
floodblocker       0.1: A style for controlling the detection of land and sea areas (?)
marine               1: Standard-Stil + Marine-Objekte
noname               1: Spezielle Karte um Straßen ohne Namen hervorzuheben
routes             1.0: Ein Stil für Routen der öffentlichen Verkehrsmittel
test                 1: No summary available (?)

--style=name Ruft statt des Standard-Styles ein anderes Style-File auf. Dieser Aufruf gilt ausschließlich für die eingebauten Styles (siehe auch --list-styles). Wenn Du einen eigenen Stil entwickelt hast, rufst Du Deine Datei auf mit --style-file (siehe unten)

java -jar mkgmap.jar --style=noname data.osm

--style-file=file ruft eine externe Datei auf, um deren Style zu verwenden. file kann ein Verzeichnis oder eine Zip-Datei sein, die den Style enthält. Genausogut kann es auch eine URL sein. Falls in der Zip-Datei mehr als ein Style enthalten ist, kann mit dem --style Argument bestimmt werden, welches benutzt werden soll.

Beispiele:

java -jar mkgmap.jar --style-file=stylename data.osm

falls im mkgmap-Arbeitsverzeichnis ein Ordner mit dem Namen "stylename" erstellt wurde

oder

java -jar mkgmap.jar --style-file=stylename.zip data.osm

falls ein Zip-File "stylename.zip" im mkgmap-Arbeitsverzeichnis erstellt wurde.

Damit mkgmap auch mit älteren Style-Files kompatibel ist, akzeptiert es auch map-features.csv-Dateien. Details dazu in der customisation help.


--name-tag-list=list bestimmt, welcher Name-Tag bei der Auswertung bevorzugt wird. Normalerweise ist dies das Tag 'name'. Wenn eine bestimmte Sprachvariante auf der zu erzeugenden Karte bevorzugt angezeigt werden soll, erstellt man eine Liste, die mkgmap anweist, in welcher Reihenfolge die Tag-Varianten von 'name' ausgelesen werden sollen. Die erste gefundene Variante wird dann ausgewertet und der Rest ignoriert.

java -jar mkgmap.jar --name-tag-list=name:en,int_name,name data.osm

Dieser Befehl bewirkt, daß name:en an erster Stelle ausgewertet wird, danach 'int_name' und wenn beide nicht existieren 'name'.


--levels=levels code ändert die Abstimmung der Karten-Levels mit den Zoom-Levels des GPS-Gerätes. Siehe auch customisation help.
Die Standardeinstellung ist die Entsprechung von "0:24,1:22,2:21,3:19,4:18,5:16". Das kann geändert werden.
Es können maximal 8 Zoom-Levels definiert werden. Mehr Levels provozieren eine Fehlermeldung.

java -jar mkgmap.jar --levels=0:24,1:22,2:21,3:19,4:18,5:16 data.osm


--map-features=file Deprecated. nutzt Dein eigenes Map-Feature-File mit individuell gestaltetem Kartenlayout. Du kannst das Erscheinungsbild der Karte total ändern, indem Du bestimmst, was auf welche Weise angezeigt wird und die Level bestimmen, in denen die Kartenelemente ein- und ausgeblendet werden. Weitere Informationen dazu in customisation help. Diese Option wurde aus Kompatibilitätsgründen beibehalten, ist allerdings veraltet und kann in Versionen nach 590 Fehlermeldungen provozieren. Nutze daher stattdessen besser --style-file . Es gibt ein Script genannt newstyle, das Deine alten Map-Features in das neue style-file-Format konvertiert.


--no-poi-address Disable address / phone information to POIs. Address information is read according to the Karlsruhe tagging schema. Automatic filling of missing information could be enabled using the "location-autofill" option.


--add-pois-to-areas erzeugt für jedes Polygon und jedes Multipolygon ein POI. Die POIs werden erzeugt, bevor der Style angelegt wird. Jedes POI wird mit denselben Eigenschaften versehen wie das Gebiet/Multipolygon, von dem es abgeleitet wird. Zusätzlich wird das Tag mkgmap:area2poi=true gesetzt, so daß es möglich ist, diese Information im Punkte-Style-File zu nutzen. Artifical polygons created by multipolyon processing werden nicht benutzt.
Die POIs werden an folgende Positionen gesetzt (first rule that applies):

polygons:
  • the first node tagged with building=entrance
  • the center point
multipolygons:
  • the node with role=label
  • the center point of the biggest area


--make-poi-index. Added r110. Zur Zeit ist der Nutzen des standardmäßig erzeugten POI-Index nicht ersichtlich. Daher wird er nur generiert, wenn man diese Option eingibt.


--no-sorted-roads unterdrückt die standardmäßige Erzeugung sortierter Straßen-Daten. Das macht die Erstellung der Karte schneller. Jedoch gehen dabei Find-Address oder intersection functions (?) verloren.


--preserve-element-order Verarbeitet die Kartenelemente (nodes, ways, relations) in der Reihenfolge, in der sie in der OSM-Input-Datei erscheinen. Ohne diese Option ist die Reihenfolge in der die Elemente abgearbeitet werden nicht festgelegt.


--road-name-pois[=GarminCode] Erzeugt für jede benannte Straße ein POI. Standardmäßig werden diese POI's dem Garmin Code 0x640a zugeordnet. Bei Bedarf kann mit dieser Option ein anderer Code bestimmt werden.

Optionen für die Produkt-Beschreibung

Die folgenden Kommandos setzen Werte, die in den Dateien gmapsupp.img und *.tdb benötigt werden um die Karte zu identifizieren. Keine dieser Optionen ist zwingend für die Erstellung einer einfachen Karte erforderlich. (?) None of these options are required to produce a simple map.


--family-id=number' Mit dieser Option legt man eine Ziffer oder Ziffernfolge als Family-ID fest, mit der eine Produktfamilie (*.img-Serie)identifiziert wird. Wenn eine Karte mit einem TYP-File erstellt werden soll, muß sicher gestellt sein, daß die Family-ID des Kartensatzes mit der ID der Typ-Datei übereinstimmt. In Mapsource kann je Family-ID immer nur eine Karte installiert werden. Karten, die gleichzeitig installiert werden sollen, benötigen daher unterschiedliche Family-IDs.

java -jar mkgmap.jar --family-id=2 data.osm


--product-id=number Jedes Kartenset benötigt eine einmalige Produkt-ID, damit MapSource die unterschiedlichen Karten unterscheiden kann. Die Standard-Einstellung ist "42". Wer mehrere Karten erstellt und gleichzeitig in MapSource installieren möchte, muß den Standardwert austauschen.

java -jar mkgmap.jar --product-id=43 data.osm


--series-name=name Das ist der Kartenname, der in der von MapSource angezeigten Kartenauswahlliste angezeigt wird.
Wenn Du beabsichtigst, Karten an andere Nutzer mit einem Installer weiterzugeben, ist hier die Eingabe einer Kurzbeschreibung der Karte sinnvoll. Standard ist "OSM map".
Diese Kurzbeschreibung wird nicht auf das GPS-Gerät übertragen.
Wenn die mehrere Karten in QLandkarteGT geladen werden, muß jeder Kartensatz mit einen eigenen Seriennamen identifiziert werden. Ansonsten wird jede Karte aussehen wie die zuerst geladene Karte.

java -jar mkgmap.jar --series-name="My OSM Garmin map" data.osm


--family-name=name Der Familien-Name der Karte wird auf einigen Garmin-GPS-Geräten (oder zumindest auf den eTrex-Geräten) in der Kartenliste angezeigt, die man über das Menü "Einstellungen > Karte > Information" erreicht.
In MapSource family-name is shown next to the mapset when you go to the Map Product Manager.

--area-name=name Der Gebietsname wird in Garmin-Geräten (oder zumindest auf den eTrex-Geräten) an zweiter Teil des Kartennamens in der Kartenliste angezeigt.


--overview-mapname=name Das ist der aktuelle Dateiname für die Übersichts-Dateien *.tdb und *.img. Sie müssen sich vom --mapname Parameter unterscheiden. Wenn also mapname 64320001 ist, sollte der --overview-mapname 64320000 sein.


--description=text erzeugt einen beschreibenden Text für die Karte oder Kartenkachel. Dieser Text wird angezeigt in QLandkarte, MapSource, auf GPS-Geräten etc.


--country-name=text erzeugt einen Ländernamen für die Karte. Standardeinstellung ist "UNITED KINGDOM".


--country-abbr=text erzeugt einen abgekürzten Ländernamen für die Karte. Standardeinstllung ist "GBR".


--region-name=text erzeugt einen Region-Namen für die Karte. In der Standardeinstellung wird kein Region-Name erzeugt.


--region-abbr=text Erzeugt einen abgekürzten Region-Namen für die Karte. In der Standardeinstellung wird kein abgekürzter Region-Name erzeugt.

Routing Optionen

Mit mkgmap können routingfähige Karten erstellt werden.


--route erzeugt eine routingfähige Karte. Es muß ein Style verwendet werden, der das Routing unterstützt, wie z.B. der Standard-Stil. Beachte, daß bei Verwendung der Option --route die Option --net nicht gleichzeitig verwendet werden muß.

java -jar mkgmap.jar --route data.osm

--net erzeugt eine Ausgabe-Datei die auf Garmin-Geräten die Option "Lock to road" unterstützt. Das ist für routingfähige Karten sehr wichtig. Beachte, daß bei Verwendung der Option --net die Option --route nicht gleichzeitig verwendet werden muß.

java -jar mkgmap.jar --route --net data.osm

--frig-roundabouts=factor Added r881 Fügt in einem Kreisverkehr zwischen jedem Paar benachbarter Punkte einen Extra Punkt ein. Die Zusatzpunkte werden "außerhalb" der Verbindungslinie dieser beiden Punkte platziert. Dadurch werden die Kreise "runder". Unglücklicherweise macht es sie aber auch häßlich, wenn... as the frigging is being done by computer with little aesthetic capability. In der Standardeinstellung ist der "frig factor", der die Entferung der Punkte vom Zentrum des Kreisels bestimmt, auf 0.25 gesetzt. Der Standardwert dieses Faktors kann mit dieser Option geändert werden: --frig-roundabouts=0.1

  • Große Werte neigen dazu, den Kreisel zu verzerren. Daher muß man mit dem Wert experimentieren, um heraus zu finden, welches der minimale frig-Faktor ist, der unterbindet, daß das GPS-Gerät die falsche Kreisel-Ausfahrt auswertet.
  • Es ist möglich, das Frigging für einen bestimmten Kreisverkehr zu deaktivieren, indem ...

You can also enable frigging for an individual roundabout by tagging the OSM XML with the "mkgmap:frig_roundabout" tag which can either be set to a valid (floating point) number to specify the frig factor or just some other string that will make it use the default frig factor.

  • This also avoids putting in new points if the new point would be less than 5 or more than 100 metres from the adjacent points.
java -jar mkgmap.jar --route --frig-roundabouts=0.2 data.osm

--remove-short-arcs Aktiviert die Unterdrückung kurzer Brücken. Bedingt durch die begrenzte Genauigkeit der Koordinaten, wird die Länge sehr kurzer Brücken (sagen wir um die 3 Meter) auf 0 gesetzt. Das bewirkt einen Absturz des Routings. Diese Option entfernt kurze Brücken, indem es die Endpunkte der Brücke zu einem Punkt verschmilzt. Added in version 1049'

java -jar mkgmap.jar --route --remove-short-arcs data.osm

--ignore-maxspeeds Unterdrückt maxspeed tags. Added in version r1039

java -jar mkgmap.jar --ignore-maxspeeds data.osm

--make-cycleways erstellt einen Fahrradweg, wenn eine Straße die Eigenschaft cycleway=[lane|track|both|left|right] aufweist. Alle Schlüssel-Werte haben denselben Effekt (Die Radwege teilen sich die Punkte der Straße.) Ansonsten werden die Straßen vom Fahrradrouting ausgeschlossen, auch wenn diese ein bicycle=* Tag aufweisen.

java -jar mkgmap.jar --make-cycleways data.osm

--make-all-cycleways Enables all cycleway synthesising options.

java -jar mkgmap.jar --make-all-cycleways data.osm

--make-opposite-cycleways Make opposite cycleways when bicycles can use oneway streets in reverse. Some oneway streets allow bicycle traffic in the reverse direction and this patch makes a way with the same points as the original that allows bicycle traffic (in both directions). Added in version r1044

java -jar mkgmap.jar --make-opposite-cycleways data.osm

--link-pois-to-ways If this option is enabled, POIs that are situated at a point in a way will be associated with that way and may modify the way's properties. Currently supported are POIs that restrict access (e.g. bollards). Their access restrictions are applied to a small region of the way near the POI.

--ignore-turn-restrictions When reading OSM files, ignore any "restriction" relations.

Sea generation options

--generate-sea[=ValueList] Generate sea polygons. ValueList is an optional comma separated list of values:

multipolygon Generate the sea using a multipolygon (the default behaviour so this really doesn't need to be specified).
polygons Don't generate the sea using a multipolygon - instead, generate a background sea polygon plus individual land polygons with tag natural=land. This requires a suitable land polygon type to be defined in the style file (suggested type is 0x010100) and the polygon must be defined in the TYP file as having a higher drawing level than the sea polygon type.
no-sea-sectors Disable the generation of "sea sectors" when the coastline fails to reach the tile's boundary.
extend-sea-sectors Same as no-sea-sectors. Additional adds a point so coastline reaches the nearest tile boundary.
land-tag=TAG=VAL Tag to use for land polygons (default natural=land).
close-gaps=NUM Close gaps in coastline that are less than this distance (metres)
floodblocker Enable the flood blocker that prevents a flooding of land by checking if the sea polygons contain streets (works only with multipolygon processing)
fbgap=NUM Flood blocker gap in metre (default 40) points that are closer to the sea polygon do not block
fbthres=NUM At least so many highway points must be contained in a sea polygon so that it may be removed by the flood blocker (default 20)
fbratio=NUM Only sea polygons with a higher ratio (highway points * 100000 / polygon size) are removed (default 0.5)
fbdebug Switches on the debugging of the flood blocker generates GPX files for each polygon checked by the flood blocker


--coastlinefile=filename[,filename] Defines a comma separated list of files that contain separate coastline data. The coastline data from the input files are removed if this option is set. Files must have OSM or PBF fileformat.

Miscellaneous options

--block-size=number Changes the block size that is used in the generated map. There is no general reason why you would want to do this.

--keep-going Continue processing when a job fails.

java -jar mkgmap.jar --keep-going data.osm

--max-jobs=number Request concurrent processing of maps. Processing of the maps is handled concurrently by a pool of top-level threads. The number of threads in the pool can be specified explicitly with the --max-jobs=N option. Specifying just --max-jobs will set the number of threads equal to the number of CPUs available. Added in version 1057

java -jar mkgmap.jar --max-jobs=2 data.osm

Contours

Contours were added in r1079. They were removed in r1080 as they do not compile without extra packages. To create contour lines directly from an SRTM (or CGIAR, ASTER) file:

--contours If set, create contours.

--dem-type=value Valid values are CGIAR (CGIAR geotiff), ASTER (ASTER geotiff) or SRTM (.hgt files). Default is CGIAR.

--dem-path Path to the DEM data files. The default is type-dependant.

--dem-increment Vertical distance between the contour lines (default is 10m).

--dem-separate-img

Test map

mkgmap has a built-in feature to make a map containing all(?) possible points, lines and polygons. This is useful to see how different Garmin types looks like.

  export BASE_LAT=50.0
  export BASE_LONG=10.0
  java -jar mkgmap.jar test-map:all-elements

Troubleshooting

Option order

If some commands do not work, try to put them before the data file, so enter

java -jar mkgmap.jar [options] data.osm

instead of

java -jar mkgmap.jar data.osm [options]

This is because the commands are read sequentially; so mkgmap has to read the options before the data file. Therefore, it is also possible to process multiple files in one command:

java -jar mkgmap.jar --mapname=10000001 data.osm --mapname=10000002 data2.osm

Mkgmap first sets the map name to 10000001, then processes data.osm, then sets the map name to 10000002 and finally it processes data2.osm.

Assertions

If map generation fails or the map does not work try to enable assertions by adding the java -ea parameter. This enables more internal error checks but is slower.

java -ea -jar mkgmap.jar [options] data.osm

Using precompiled bounds for the address index

mkgmap is using precompiled boundary tiles to assign the city, region, zip-code and country to POIs and streets. It is necessary to precompile such tiles because the splitted tiles often do not contain the full data for the boundary relations (e.g. a country like France or Spain does not fit to one tile only).

Before using the precompiler of mkgmap one has to filter out the boundary data from larger OSM dumps. It is important that the boundaries are completely contained in this dump, e.g. the Geofabrik europe dump does not work for Spain because it is missing some parts of the southern spanish border which is located in africa. The boundary data can be filtered using Osmfilter or Osmosis.

  • osmfilter (fast, very new, hence may contain a few bugs):
osmconvert europe.osm.pbf --out-o5m >europe.o5m
 osmfilter europe.o5m --keep-nodes= --keep-ways-relations="boundary=administrative"  >europe-boundaries.osm
 gzip europe-boundaries.osm
  • osmosis (slow):
 osmosis.bat ^
 --read-pbf file=europe.osm.pbf outPipe.0=1 ^
 --tee 2 inPipe.0=1 outPipe.0=2 outPipe.1=3 ^
 --buffer inPipe.0=3 outPipe.0=4 ^
 --buffer inPipe.0=2 outPipe.0=5 ^
 --tag-filter accept-relations boundary=administrative,postal_code inPipe.0=4 outPipe.0=6 ^
 --used-way inPipe.0=6 outPipe.0=7 ^
 --tag-filter reject-relations inPipe.0=5 outPipe.0=8 ^
 --tag-filter accept-ways boundary=administrative,postal_code inPipe.0=8 outPipe.0=9 ^
 --used-node inPipe.0=9 outPipe.0=10 ^
 --used-node inPipe.0=7 outPipe.0=11 ^
 --merge inPipe.0=10 inPipe.1=11 outPipe.0=12 ^
 --write-pbf file=europe-boundaries.osm.pbf omitmetadata=true compress=deflate inPipe.0=12 
 


The precompiled boundary tiles are created before the usual map compiling when you add the option --createboundsfile=europe-boundaries.osm[.gz|.pbf] to your mkgmap command line. The files are put to the subdirectory bounds if you don't set the option --bounds=<directory>. The precompilation must be performed once only. If you are happy with them and you get satisfying results you never have to do this step again.

To use the precompiled boundaries (by default they are expected to be in the directory bounds) add the --index option and --location-autofill=bounds to your usual mkgmap command line.

java -jar mkgmap.jar --index --location-autofill=bounds data.osm