versuche ich 2 Karten auf einmal zu splitten. Zunächst kommt die Warnung:
Warning: --keep-complete is only used for the first input file.
dann ziemlich weit am Schluss kommt der Fehler:
Error: Node ids are not sorted. Use e.g. osmosis to sort the input data
This is not supported with keep-complete=true
Komisch ist zunächst mal, wenn ich es nur mit dem “first input file” mache, dann geht es, und wenn ich es mit keep-complete=false mache, dann geht es auch.
Die Files sind von der Geofabrik und sollten doch bereits sortiert sein. Hab das gemäß dem Vorschlag mit Osmosis nochmal gemacht, aber das brachte natürlich nichts.
Wo also ist das Problem?
Normal ist, dass es nur mit dem “first input file”, also mit nur einer Datei, funktioniert. Auch, dass mit “–keep-complete=false” die Meldung im Zusammenhang mit dem “first input file” nicht erscheint, da ja dieser Schalter nun aus ist und in dem Kontext der Fehler nicht vorkommen kann.
Die Sortierung der Input-Daten bezieht sich immer nur auf den Inhalt ein und derselben Datei, also auf den Inhalt innerhalb der ersten Datei, innerhalb der zweiten Datei usw… Über Dateien hinweg kann das nicht gehen, da Nodes zu Wegen gehören und Wege zu Relationen, eine Sortierung sich aber auf das Ansteigen deren ID bezieht, nicht aber auf eine etwaige Zugehörigkeit.
Die Lösung:
-Vorheriges Mergen der beiden Dateien. (Ein “Muss”, wenn es gemeinsame Kachelgrenzen geben soll, z.B. eine Zielkarte aus zwei Regionen)
-Wenn zwei separate Karten erstellt werden, dann kann einzeln gesplittet werden in zwei verschiedene Verzeichnisse
(mkgmap sollte das vorgelegt werden, was nur einen einzigen Splitter-Vorgang durchlaufen hat, sonst überlappen Kacheln, deren Grenzen ja beim Splitten festgelegt werden.)
Eigentlich sollte noch eine 3. Region dazukommen, nämlich Tirol. Leider ist der Überlapp immer sehr sparsam. Ich wollte das halt möglichst resourcenschonend gestalten. Ich nehme jetzt mal mit, dass splitter zwar mehrere Inputfiles akzeptiert, dass das aber nicht empfehlenswert ist. Danke für die Hinweise.
Ich hab übrigens auch versucht, die 3 files mit osmconvert64 zu mergen. Das geht, dann ist aber die Garminkarte am Ende bei 47.1° n.B. abgeschnitten. Scheints wird da die Bounding Box von osmconvert falsch an splitter übergeben, aber ich hab jetzt keine Lust mehr, auf Ursachenforschung zu gehen.
Das “mergen” von zwei oder mehr Dateien funktioniert in splitter nur sehr bedingt. Dafür gibt es bessere Tools wie z.B. osmconvert (1)
Splitter erwartet eine Sortierung über alle Dateien hinweg, sprich, es dürfen in der zweiten Datei keine ids auftauchen, die kleiner sind als die in der ersten. Gedacht ist dieses Feature eigentlich nur für den Sonderfall, dass man eine - einmalig - generierte Datei mit Höhenlinien
mit einem aktuellen OSM Datensatz kombinieren will. Für diese generierte Datei kann man halt relativ leicht sicherstellen, dass sie deutlich höhere ids enthält als die OSM Daten.
Ich hatte mal vor, dieses Feature ganz auszubauen, aber es wird halt genutzt.
Jetzt versteh ich wie das gemeint ist. Aber wenn ich die Möglichkeit sehe, einen Schritt in der Verarbeitungskette einzusparen, dann nutze ich das, weil das ja im Allgemeinen die Zahl der Fehlerquellen reduziert. Es wäre gut, wenn es in der Doku zum Splitter einen Hinweis gäbe oder zumindest die Warnung am Anfang ungefähr so ergänzt würde:
Warning: --keep-complete is only used for the first input file and the nodes of the other files should have distinct id ranges.