overpass api -> osmconvert -> GPI

Hallo,

ich versuche GPI Dateien aus OSM Daten zu erstellen. Solange man ausschließlich nur Punktobjekte nimmt ist das ja einfach. Viele Objekte sind aber als Punkt oder Polygon erfaßt. Ich verwende daher folgende Anfrage für die Overpass API:

<osm-script>
  <union>
      <query type="node">
        <has-kv k="amenity" v="fast_food"/>
        <bbox-query e="8.5089" n="49.0532" s="48.9671" w="8.3019"/>
        </query>
      <query type="way">
      <has-kv k="amenity" v="fast_food"/>
      <bbox-query e="8.5089" n="49.0532" s="48.9671" w="8.3019"/>
    </query>
  </union>
  <print mode="body"/>
  <recurse type="down"/>
  <print mode="skeleton"/>
</osm-script>

Das Ergebnis versuche ich mit osmconvert in nur noch Punkte umzuwandeln:

osmconvert ka-fast_food.osm --all-to-nodes -o=ka-fast_food2.osm

Das ergibt schon mal folgende Warnungen:

osmconvert Warning: wrong sequence at way 195099336
osmconvert Warning: next object is node 461991245

Wenn ich dann im Ergebnis stichprobenartig einige Objekte die als Way in meiner ersten Datei enthalten sind in der zweiten Datei über den Namen suche, fehlen die. Was mache ich falsch?

Hallo,

in einem anderen Thread wird von Problemen mit der Sortierung im OSM-File gesprochen und osmosis zum Vorsortieren empfohlen. Offenbar hat osmconvert Probleme, wenn die Ausgangsdaten nicht richtig sortiert sind.

Glaube ich auch und habs mit dem Imbiss Nr. 195099336 mal kurz ausprobiert…
Nimm die ganzen taglosen nodes am Ende der Datei ka-fast_food.osm und verschieb die an den Anfang, vor den ersten <way…>. Anscheinend will osmconvert erst alle nodes eines ways haben, bevor es den way anfasst.

Mit dieser Methode habe ich zwar ebenfalls wieder Warnungen von osmconvert bekommen, aber in der entstehenden Datei sind dennoch alle Daten enthalten. Die Ways sind korrekt zu Nodes geworden.

Danke
unixasket