Zwei Karten in den Splitter funktioniert nicht?

Hallo,

mit dem Befehl

java -Xmx1536m -ea -jar C:\prog\MAPUPL~1\SPLITT~1\SPLITT~1\splitter.jar --mapid=13224385 --output-dir=C:\pro\MAPUPL~1\args --max-nodes=1000000 --max-areas=255 --output=o5m "C:\prog\oberbay.osm" "C:\prog\schwaben.osm" 

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?

Servus
Wolfgang

Hallo,

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.)

Grüße
Mario

keep-complete sollte man auf true stellen, sonst kann es ein, dass man unvollständige Polygone hat (ausgetrocknete Seen und so was)

Was genau da sortiert oder unsortiert ist weiß ich nicht.

Oberbayern und Schwaben sind ja datenmäßig nicht so riesig. Ich würde die Deutschlanddaten laden und den Bereich ausschneiden. (z.B. mit osmvonvert)

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.

(1) https://wiki.openstreetmap.org/wiki/DE:Osmconvert

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.

Was hälst Du davon?

Warning: --keep-complete is only used for the first input file. Further files must use higher ids.

Es geht nämlich nicht nur um die Nodes.

Ja klar, das hilft auch weiter.

Hallo, Wolfgang!
Ich weiß nicht genau, was Du vorhast, aber zum (auch länderübergreifenden) Ausschneiden von Originaldaten verwende ich folgende Seite:
https://extract.bbbike.org/?lang=de&sw_lng=11.496&sw_lat=47.355&ne_lng=13.303&ne_lat=47.81&format=osm.pbf&oi=1&layers=B000T&city=Testregion&coords=11.899%2C47.39%7C12.624%2C47.355%7C13.303%2C47.445%7C12.943%2C47.781%7C12.41%2C47.81%7C11.97%2C47.81%7C11.496%2C47.591
Der Ausschnitt läßt sich beliebig vergrößern, verkleinern, verschieben, Punkte hinzufügen, also man kann Daten beliebiger Regionen ausschneiden. Ich lade damit z.B. von meiner Urlaubsregion die pbf-Datei und wandle sie dann mit mkgmap für mein Garmin um oder nutze sie für Maperitive.
Dann brauche ich auch keine Bereiche verbinden.
Gruß
Gernot

Hab ich versucht, bin aber mit dem Smartfon an der Bedienung gescheitert :expressionless:
Ich seh grad, da gibts ja auch Garmin Karten in 16 Varianten …