x

osmconvert: --complete-ways und --all-to-nodes


Geschrieben von Marqqs (Gast) am 13. November 2011 14:04:25: [flux]

Hallo,
bei osmconvert gibts zwei neue Optionen. Die Beta-Version hab ich hochgeladen auf http://m.m.i24.cc/osmconvert_beta.c

--complete-ways
Was soll ich sagen, Osmosis kann das ja schon lange: Beim Anwenden von geografischen Grenzen bewirkt diese Option, Wege nicht an der Grenze abgeschnitten werden, sondern alle ihre Knoten behalten, auch die, die nicht innerhalb des gewählten Gebiets liegen. Je nachdem, wie man die Daten weiterverarbeiten will, kann --complete-ways nützlich sein.
Leider wird dadurch aber das Ausschneiden etwas langsamer, weil ein Teil der Daten zweimal gelesen werden muss (.o5m ist hier schneller als .pbf und .osm).

--all-to-nodes
Manche Anwendungen können mit ways und relations nicht viel anfangen, weil diese beiden Objekttypen selbst keine Koordinaten besitzen. Will man beispielsweise wissen, wo sich ein Polygon (z.B. ein Gebäude) befindet, muss man zuerst alle seine nodes untersuchen. Bei Relationen (z.B. Gebäude mit Innenhof) wirds noch komplizierter, weil diese Wege, Knoten und sogar andere Relationen enthalten können, die dann wiederum Wege, Knoten und Relationen enthalten.
Die Diskussionen um die Wheelmap haben gezeigt, dass die Lösung des Problems nicht immer ganz einfach ist.
Mit der neuen Option wandelt osmconvert alle Wege und alle Relationen in Knoten um. Aus dem Weg mit dem ID 123456 wird beispielsweise ein Knoten mit dem ID 1000000000123456. Dieser neue Knoten erhält alle Tags des Wegs. Längen- und Breitengrad des neuen Knotens ist der geografische Mittelpunkt des Wegs. Bei Relationen passiert das Gleiche, die neue ID beginnt dann mit 2.
Für Osmosis gibt es übrigens seit etwa einem halben Jahr eine ähnliche Option. Dort heißt sie "--areapoints", wandelt aber nur geschlossene Wege (Polygone) um und berücksichtigt keine Relationen. Trotzdem eine sehr nützliche Sache für diejenigen, die nur Osmosis einsetzen.

Schöne Grüße
Markus


Antworten: