Omsconvert mit Overpass-API-Output füttern

Hallo!

Bisher habe ich für eine Karte Objekte mit osmfilter aus einem großen Extrakt gefiltert. Mit der osmconvert-Option “all-to-nodes” bekam ich auch für Flächenobjekte einzelne Punkte. Die ich dann in eine kleine Datenbank schreibe.

Ich dachte, ich könnte das Ganze ein wenig schlanker gestalten, in dem ich die Objekte mit der Overpass-API abfrage und dann mit “osmconvert --all-to-nodes” zusammenfasse. Die Abfrage funkioniert auch und dass Ergebnis sieht auch plausibel und syntaktisch korrekt aus. Leider werden mir dann von osmconvert aber fast alle Objekte rausgeschmissen. Warum, weiß ich auch nicht.

Ich weiß auch, dass die Overpass-API die Option “out center” kennt. Dabei kommen aber keine richtigen Nodes raus, sondern die API schreibt in den Way nur ein “center”-Tag.

Kenn jemand eine Lösung?

Christian

Poste mal einen Link zu der overpass query. Möglicherweise fehlen die nodes zu den ways?

osmconvert scheint sich an der Reihenfolge der Objekte in der XML-Datei, die die Overpass-API liefert, zu stören

osm@duschmarke:~/data$ osmconvert opa.osm --out-statistics
osmconvert Warning: wrong sequence at relation 1529980
osmconvert Warning: next object is node 333626368
lon min: 10.6920481
lon max: 10.7183200
lat min: 53.9432891
lat max: 53.9581655
nodes: 182
ways: 14
relations: 1
node id min: 333626368
node id max: 5648159417
way id min: 107449285
way id max: 359695127
relation id min: 1529980
relation id max: 1529980
keyval pairs max: 2
keyval pairs max object: relation 1529980
noderefs max: 35
noderefs max object: way 107449301
relrefs max: 3
relrefs max object: relation 1529980

Eine Beispielabfrage ist overpass turbo

Wenn man die Daten mit Metadaten versieht (out meta), kann man das Ganze noch mal durch osmosis mit der Option --sort schicken und dann scheint auch osmconvert zufrieden zu sein.

Aber: geht das nicht einfacher?

Probier’s mal hiermit: overpass turbo
Man beachte die Klammern.

1 Like

Ja, Danke! Das hat geklappt!