Dies ist der Befehl mkgmap-splitter, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
mkgmap-splitter – Kachelsplitter für mkgmap
ZUSAMMENFASSUNG
mkgmap-splitter [Optionen] Datei.osm > splitter.log
BESCHREIBUNG
mkgmap-splitter Teilt eine .osm-Datei, die große, gut zugeordnete Regionen enthält, in eine Zahl auf
aus kleineren Kacheln, damit sie in die maximale Größe passen, die für das Garmin-Kartenformat verwendet wird. Dort
sind mindestens zwei Bearbeitungsschritte erforderlich. Der erste Schritt besteht darin, die Fläche zu berechnen
Jede Kachel sollte basierend auf der Verteilung der Knoten abdecken. Die zweite Stufe schreibt aus
die Knoten, Wege und Beziehungen aus der ursprünglichen .osm-Datei in separate kleinere .osm-Dateien
Dateien, eine für jeden Bereich, der in Stufe eins berechnet wurde. Mit Option
--keep-complete=trueUm gebrochene Wege und Polygone zu vermeiden, werden zwei zusätzliche Stufen verwendet.
Die beiden wichtigsten Merkmale sind:
· Kacheln unterschiedlicher Größe, um eine große Anzahl kleiner Dateien zu verhindern.
· Die Fliesen fügen sich exakt zusammen, ohne Überlappungen oder Lücken.
Wenn Sie einen großen Bereich aufteilen möchten, benötigen Sie viel Arbeitsspeicher auf Ihrem Computer. Ein paar
Mit den Optionen können Sie konfigurieren, wie viel Speicher Sie benötigen. Mit den Standardparametern benötigen Sie
ca. 4-5 Bytes für jeden Knoten und Weg. Das hört sich nicht viel an, aber es sind etwa 1700
Millionen Knoten in der gesamten Planetendatei, sodass Sie nicht den gesamten Planeten in einem verarbeiten können
Übergeben Sie die Datei mit diesem Dienstprogramm auf einem 32-Bit-Computer, da der maximale Java-Heap-Speicherplatz 2 GB beträgt. Es
ist mit 64-Bit-Java und etwa 7 GB Heap oder mit mehreren Durchgängen möglich.
Der Europa-Auszug von Cloudmade oder Geofabrik kann innerhalb der 2G-Grenze verarbeitet werden, wenn Sie
über ausreichend Speicher verfügen. Mit den Standardoptionen ist Europa in etwa 750 Kacheln aufgeteilt.
Der Europa-Auszug ist etwa halb so groß wie die gesamte Planetendatei.
Auf der anderen Seite wird dies bei einem einzelnen Land, selbst bei einem gut kartierten Land wie Deutschland oder Großbritannien, der Fall sein
auf einem bescheidenen Gerät, sogar einem Netbook, möglich sein.
ANWENDUNG
Splitter erfordert Java 1.6 oder höher. Die grundlegende Verwendung ist wie folgt.
mkgmap-splitter Datei.osm > splitter.log
Wenn Ihr Computer über weniger als 2 GB Arbeitsspeicher verfügt, sollten Sie diesen reduzieren -Xmx Option von
Festlegen der Umgebungsvariablen JAVA_OPTS.
JAVA_OPTS="-xmx512m" mkgmap-splitter Datei.osm > splitter.log
Dadurch wird eine Reihe von .osm.pbf-Dateien erstellt, die gelesen werden können mkgmap(1). Es gibt
auch andere Dateien erstellt:
Die template.args Datei ist eine Datei, die mit verwendet werden kann -c Option mkgmap das wird
Kompilieren Sie alle Dateien. Sie können es unverändert verwenden oder kopieren und bearbeiten, um es einzubinden
Ihre eigenen Möglichkeiten. Beispielsweise könnte jede Beschreibung nicht „OSM Map“ lauten, sondern „NW
Schottland“ entsprechend.
Die Bereiche.Liste Datei ist die Liste der berechneten Begrenzungsrahmen. Wenn du willst
Sie können dies bei einem späteren Anruf verwenden, indem Sie den Splitter verwenden --split-file Option zu verwenden
genau die gleichen Bereiche wie beim letzten Mal. Dies kann nützlich sein, wenn Sie regelmäßig eine Karte erstellen
und möchten, dass die Fliesenflächen von Monat zu Monat gleich bleiben. Es ist auch nützlich, es zu vermeiden
die Zeit, die jedes Mal benötigt wird, um die Datei neu zu generieren (derzeit etwa ein Drittel der Gesamtzeit).
Zeit, die für die Durchführung des Splits benötigt wurde). Natürlich, wenn die Karte so groß wird, dass eine der Kacheln größer wird
Bei Überläufen müssen Sie die Flächen erneut berechnen.
Die Bereiche.poly Die Datei enthält das Begrenzungspolygon der berechneten Flächen. Siehe Option
--polygon-datei wie man das nutzen kann.
Die densities-out.txt Datei wird geschrieben, wenn keine Split-Datei angegeben ist und Debugging enthält
nur Informationen.
Sie können auch eine mit gzip oder bz2 komprimierte .osm-Datei als Eingabedatei verwenden. Beachten Sie, dass
Dies kann den Splitter erheblich verlangsamen (insbesondere für BZ2), weil
Das Dekomprimieren der .osm-Datei kann ziemlich viel CPU-Leistung beanspruchen. Wenn das wahrscheinlich der Fall ist
Wenn Sie eine Datei mehrmals verarbeiten, ist es wahrscheinlich besser, die Datei in eine davon zu konvertieren
die Binärformate pbf oder o5m. Das o5m-Format ist schneller zu lesen, benötigt aber mehr Platz
auf der Festplatte.
OPTIONAL
Es gibt eine Reihe von Optionen zur Feinabstimmung von Dingen, die Sie vielleicht ausprobieren möchten.
--boundary-tags=Schnur
Eine durch Kommas getrennte Liste von Tag-Werten für Beziehungen. Wird zum Filtern von Multipolygonen verwendet
und Grenzbeziehungen für die Problemlistenverarbeitung. Siehe auch Option
--wanted-admin-level. Standard: use-exclude-list
--cache=Schnur
Veraltet, führt jetzt nichts mehr
--description=Schnur
Legt die Beschreibung fest, in die geschrieben werden soll template.args Datei.
--geonames-file=Schnur
Der Name einer GeoNames-Datei, die zum Bestimmen von Kachelnamen verwendet werden soll. Typischerweise
Städte15000.zip aus Geonamen ⟨http://download.geonames.org/export/dump⟩ .
--keep-complete=boolean
Verwenden Sie die --keep-complete=false um zwei zusätzliche Programmphasen zwischen den zu deaktivieren
Aufteilung und die letzte Verteilungsphase (nicht empfohlen). Die erste Phase, genannt
gen-problem-list, erkennt alle Wege und Beziehungen, die die Grenzen von überschreiten
eine oder mehrere Ausgabedateien. Die zweite Phase, Handle-Problem-Liste genannt, sammelt
die Koordinaten dieser Wege und Beziehungen und berechnet daraus alle Ausgabedateien
gekreuzt oder umschlossen sind. Die Informationen werden an die endgültige Dist-Phase weitergegeben
drei temporäre Dateien. Dies vermeidet gebrochene Polygone, aber beachten Sie, dass dies erforderlich ist
um die Eingabedateien mindestens zwei weitere Male zu lesen.
Geben Sie es nicht mit an --Überlappung es sei denn, Sie haben einen triftigen Grund dafür.
Standard: true
--mapid=int
Legen Sie den Dateinamen für die geteilten Dateien fest. Im Beispiel wird die erste Datei aufgerufen
63240001.osm.pbf und der nächste wird sein 63240002.osm.pbf und so weiter.
Standard: 63240001
--max-areas=int
Die maximale Anzahl von Bereichen, die in einem einzigen Durchgang während des bearbeitet werden können
zweite Stufe der Verarbeitung. Dies muss eine Zahl zwischen 1 und 4096 sein. Höhere Zahlen
bedeuten weniger Durchgänge über die Quelldatei und damit eine schnellere Gesamtverarbeitung, aber
erfordern auch mehr Speicher. Wenn Sie feststellen, dass Ihnen der Speicher ausgeht, Sie dies aber nicht möchten
um Ihre zu erhöhen --max-Knoten Versuchen Sie stattdessen, diesen Wert zu reduzieren. Diesen Willen ändern
haben keinen Einfluss auf das Ergebnis der Aufteilung, sondern dienen lediglich dazu, dass Sie Speicher sparen können
für Leistung. Beachten Sie, dass die erste Stufe der Verarbeitung über einen festen Speicher verfügt
Overhead, unabhängig davon, auf welchen Wert dies eingestellt ist, also wenn Ihnen der Speicher ausgeht
Vor dem Bereiche.Liste Datei generiert wird, müssen Sie entweder Ihre erhöhen -Xmx
Wert oder reduzieren Sie die Größe der Eingabedatei, die Sie teilen möchten.
Standard: 512
--max-nodes=int
Die maximale Anzahl von Knoten, die in einer der resultierenden Dateien enthalten sein können. Der Standard
ist ziemlich konservativ, Sie könnten es ziemlich stark erhöhen, bevor Sie eine Karte erhalten
„zu große“ Nachrichten. Es wurde nicht viel experimentiert. Je größer das auch ist
Je kleiner der Wert ist, desto weniger Speicher wird während der Aufteilungsphase benötigt.
Standard: 1600000
--max-threads=Wert
Die maximale Anzahl der Threads, die von verwendet werden mkgmap-splitter.
Standard: 4 (automatisch)
--mixed=boolean
Geben Sie dies an, wenn in der Eingabe-OSM-Datei Knoten, Wege und Beziehungen miteinander vermischt sind oder
Die IDs sind nicht streng sortiert. Um die Leistung zu steigern, verwenden Sie die Osmose sortieren
Funktion.
Voreinstellung: false
--no-trim=boolean
Schneiden Sie keine Leerstellen an den Kanten der Fliesen ab. Diese Option wird ignoriert, wenn
--polygon-datei wird eingesetzt.
Voreinstellung: false
--num-tiles=WertSchnur
Ein Zielwert, der verwendet wird, wenn keine geteilte Datei angegeben ist. Die Aufteilung erfolgt so
Es wird die angegebene Anzahl an Kacheln hergestellt. Der --max-Knoten Der Wert wird in diesem Fall ignoriert
Option gegeben ist.
--ausgabe=Schnur
Das Format, in dem die Ausgabedateien geschrieben werden. Mögliche Werte sind xml, pbf,
o5m, und simulieren. Der Standardwert ist pbf, wodurch die kleinsten Dateigrößen erzeugt werden.
Das o5m-Format lässt sich schneller schreiben, erzeugt aber etwa 40 % größere Dateien. Der
Die Simulationsoption dient Debugging-Zwecken.
--output-dir=Weg
Das Verzeichnis, in das der Splitter die Ausgabedateien schreiben soll. Wenn die angegebene
Pfad zu einem Verzeichnis existiert nicht, mkgmap-splitter versucht es zu erstellen. Standardmäßig ist
das aktuelle Arbeitsverzeichnis.
--overlap=Schnur
Veraltet seit r279. Mit --keep-complete=false, mkgmap-splitter sollte beinhalten
Knoten außerhalb des Begrenzungsrahmens, so dass mkgmap kann genau an der Stelle sauber zuschneiden
Grenze. Dieser Parameter steuert die Größe dieser Überlappung. Es wird in Karteneinheiten angegeben, a
Als Standardwert wird 2000 verwendet, was etwa 0.04 Breiten- oder Längengraden entspricht.
If --keep-complete=true ist aktiv und --Überlappung wird eine Warnung ausgegeben
denn diese Kombination macht selten Sinn.
--polygon-desc-file=Weg
Eine OSM-Datei (.o5m, .pbf, .osm) mit benannten Wegen, die umgrenzende Polygone beschreiben
OSM-Möglichkeiten mit den Tags Name und Mapid.
--polygon-file=Weg
Der Name einer Datei, die ein Begrenzungspolygon im Osmose-Polygon-Dateiformat enthält
. mkgmap-splitter verwendet diese Datei bei der Flächenberechnung. Es wird zunächst berechnet
ein Raster unter Verwendung des Gegebenen --Auflösung. Die Eingabedatei wird gelesen und für jeden Knoten a
Der Zähler wird für den betreffenden Rasterbereich erhöht. Wenn die Eingabedatei eine enthält
Begrenzungsrahmen, dieser wird auf das Raster angewendet, so dass Knoten außerhalb des Begrenzungsrahmens entstehen
werden ignoriert. Als nächstes wird, falls angegeben, das Begrenzungspolygon verwendet, um dieses Gitter auf Null zu setzen
Elemente außerhalb des begrenzenden Polygonbereichs. Wenn die Polygonfläche(n) beschreiben(n)
eine geradlinige Fläche mit nicht mehr als 40 Eckpunkten, mkgmap-splitter werde es versuchen
Erstellen Sie Ausgabedateien, die genau in den Bereich passen, da es sonst zu einer Annäherung kommt
die Polygonfläche mit Rechtecken.
--precomp-sea=Weg
Der Name eines Verzeichnisses, das vorkompilierte Meereskacheln enthält. Falls gegeben, mkgmap-
Splitter wird die vorkompilierten Meereskacheln auf die gleiche Weise verwenden wie mkgmap tut. Verwenden
dies, wenn Sie eine Polygondatei verwenden möchten oder --no-trim=true und mkgmap schafft leer
*.img-Dateien kombiniert mit der Meldung „Es ist nicht genügend Platz in einer einzigen Datei vorhanden
Garmin-Karte für alle Eingabedaten".
--problem-file=Weg
Der Name einer Datei, die Wege und Beziehungen enthält, die bekanntermaßen Probleme verursachen
im Split-Verfahren. Verwenden Sie diese Option, wenn --keep-complete erfordert zu viel Zeit bzw
Speicher und --Überlappung löst Ihr Problem nicht.
Syntax der Problemdatei:
Weg: # Kommentar...
rel: # Kommentar...
Beispiel:
Weg:2784765 # Fähre Guernsey – Jersey
--problem-report=Weg
Der Name einer Datei, mit der die generierte Problemliste geschrieben werden soll
--keep-complete. Der Parameter wird ignoriert, wenn --keep-complete=false. Sie können es wiederverwenden
diese Datei mit dem --problem-file Parameter, aber tun Sie dies nur, wenn Sie denselben verwenden
Werte für --max-Knoten und --Auflösung.
--resolution=int
Die Auflösung der in der ersten Phase erstellten Dichtekarte. Ein Wert zwischen
1 und 24. Der Standardwert ist 13. Eine Erhöhung des Werts auf 14 erfordert das Vierfache
Gedächtnis in der Split-Phase. Der Wert wird ignoriert, wenn a --split-file gegeben ist.
--search-limit=int
Suchlimit im Split-Algorithmus. Höhere Werte führen möglicherweise zu besseren Aufteilungen, reichen aber aus
länger.
Standard: 200000
--split-file=Weg
Nutzen Sie die zuvor berechneten Fliesenflächen, anstatt sie von Grund auf neu zu berechnen.
Die Datei kann im .list- oder .kml-Format vorliegen.
--status-freq=int
Zeigt die von der JVM jeweils verwendete Speichermenge an --status-freq Sekunden. Setze =0
Etwas deaktivieren.
Standard: 120
--stop-after=Schnur
Debugging: Stoppen Sie nach einer bestimmten Programmphase. Kann geteilt, gen-problem-list oder sein
Handle-Problem-Liste. Der Standardwert ist dist, was bedeutet, dass alle Phasen ausgeführt werden.
--wanted-admin-level=Schnur
Gibt den niedrigsten admin_level-Wert der Grenzbeziehungen an, der beibehalten werden soll
vollständig. Wird zum Filtern von Grenzbeziehungen für die Verarbeitung von Problemlisten verwendet. Der
Der Standardwert 5 bedeutet, dass Grenzbeziehungen vollständig gehalten werden, wenn die
admin_level ist 5 oder höher (5..11). Der Parameter wird ignoriert, wenn
--keep-complete=false. Standard: 5
--write-kml=Weg
Der Name einer KML-Datei, in die die Bereiche geschrieben werden sollen. Dies ist zusätzlich zu
Bereiche.Liste (was immer ausgeschrieben ist).
Sonderoptionen
--Version
Wenn der Parameter --Version steht irgendwo in den Optionen, mkgmap-splitter werden wir
Drucken Sie einfach die Versionsinformationen aus und beenden Sie den Vorgang. Versionsinformationen sehen so aus:
splitter 279 compiled 2013-01-12T01:45:02+0000
--help Wenn der Parameter --help steht irgendwo in den Optionen, mkgmap-splitter werden wir
Drucken Sie eine Liste aller bekannten normalen Optionen zusammen mit einer kurzen Hilfe und beenden Sie den Vorgang.
TUNING
Tuning für beste Leistung
Ein paar Hinweise für diejenigen, die es verwenden mkgmap-splitter um große Dateien aufzuteilen.
· Für eine schnellere Verarbeitung mit --keep-complete=true, konvertieren Sie die Eingabedatei in das o5m-Format
Verwendung:
osmkonvert --drop-version Datei.osm -o=Datei.o5m
· Die Option --drop-version ist optional, es reduziert die Datei auf die benötigten Daten
by mkgmap-splitter und mkgmap.
· Wenn Sie immer noch eine schlechte Leistung feststellen, prüfen Sie dies splitter.log. Suchen Sie nach dem Wort
Verteilen. Möglicherweise finden Sie in der nächsten Zeile so etwas:
Bearbeitung von 1502 Flächen in 3 Durchgängen, jeweils 501 Flächen
Dies bedeutet, dass der Splitter die Eingabedatei dreimal lesen muss, da die --max-Bereiche
Der Parameter war viel kleiner als die Anzahl der Bereiche. Wenn Sie über genügend Heap verfügen, legen Sie fest
--max-Bereiche Wert auf einen Wert, der höher ist als die Anzahl der Bereiche, z
--max-areas=2048. Ausführen mkgmap-splitter noch einmal und du solltest es finden
Bearbeitung von 1502 Flächen in einem Durchgang
· Mehr Bereiche erfordern mehr Speicher. Stelle sicher das mkgmap-splitter hat genug Haufen
(Erhöhen Sie die -Xmx Parameter), damit nicht viel Zeit im Müll verschwendet wird
Kollektor (GC), aber behalten Sie so viel Speicher wie möglich für die E/A-Caches des Systems.
· Falls verfügbar, verwenden Sie zwei verschiedene Datenträger für die Eingabedatei und das Ausgabeverzeichnis, insb. wenn du
Verwenden Sie das o5m-Format für die Ein- und Ausgabe.
· Wenn du benutzt mkgmap r2415 oder höher und der Speicherplatz spielt keine Rolle, erwägen Sie die Verwendung
--output=o5m um die Bearbeitung zu beschleunigen.
Optimierung für geringen Speicherbedarf
Wenn Ihr Gerät weniger als 1 GB freien Speicher hat (z. B. ein Netbook), können Sie es trotzdem verwenden mkgmap-
Splitter, aber Sie müssen möglicherweise etwas Geduld haben, wenn Sie den Parameter verwenden --keep-complete und
Ich möchte eine Datei wie teilen deutschland.osm.pbf oder ein größeres. Reduzieren Sie bei Bedarf die Anzahl
von parallel bearbeiteten Flächen bis 50 mit dem --max-Bereiche Parameter. Sie müssen verwenden
--keep-complete=false wenn man ein Gebiet wie Europa aufteilt.
ANMERKUNG
· Es gibt keine Obergrenze mehr für die Anzahl der ausgebbaren Bereiche (bisher).
es war 255). Mehr Bereiche bedeuten lediglich, dass möglicherweise mehr Durchgänge über die .osm-Datei erforderlich sind
Datei, und daher dauert die Ausführung des Splitters länger.
· Es gibt keine Begrenzung mehr, zu wie vielen Bereichen ein Weg oder eine Beziehung gehören kann (bisher).
es war 4).
Verwenden Sie mkgmap-splitter online über die Dienste von onworks.net