• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

POIs aus OSM extrahieren

moenk

Administrator
Teammitglied
Das ist mit der Overpass-API auch nicht viel komplizierter: http://www.moenk.de/archives/75-Punkte-der-OpenStreetMap-in-Garmin-POI-konvertieren.html
 

Angrentil

Geomaster
Hatte deinen Blogeintrag schon in dem Thead hier ein paar Beiträge weiter oben gefunden und erfolgreich angewendet. Danke für die ausführliche Beschreibung. :^^:
 

Kappler

Geowizard
Ich greife das noch mal auf:
Du schreibst in deinem Blog dass auf diese Weise nur Punkte extrahiert werden, aber keine Flächen.
Gibt es eine Möglichkeit, damit sowohl Punkte als auch Flächen zu konvertieren?
Ich möchte mir gerne alle Bäckereien (fürs Frühstück während einer Radtour :^^: ) als POI in die Karte laden: shop=bakery.
Geht das einfach?
 

moenk

Administrator
Teammitglied
Geht auch:
Code:
wget "http://overpass-api.de/api/interpreter?data=node[$mainkey=$amenity];out meta;way[$mainkey=$amenity];out meta;>;out meta;" -O $amenity.osm
Ersetze $mainkey durch shop und $amenity durch bakery.
Danach http://wiki.openstreetmap.org/wiki/DE:Osmconvert mit "-all-to-nodes" anwenden.
 

Kappler

Geowizard
Super - vielen Dank... :)
Das klingt sehr interessant. Der OSMConvert-Schritt hat mir noch gefehlt - das Runterladen der Ways hatte schon geklappt. Nur konnte ich mit den Knoten-IDs in der Ergebnisdatei so gar nichts anfangen.
OSMConvert hört sich überhaupt ganz interessant an - mal genauer anschauen.
 

Kappler

Geowizard
:hilfe: So ganz klappt das noch nicht :eek:ps: :

Ich habe mir mit Overpass und folgendem Aufruf:
Code:
<osm-script timeout="900">
  <query into="_" type="node">
    <has-kv k="shop" modv="" v="bakery"/>
    <bbox-query e="16" into="_" n="54.2" s="47.9229" w="7.9197"/>
  </query>
  <print e="" from="_" geometry="skeleton" limit="" mode="meta" n="" order="id" s="" w=""/>
  <query into="_" type="way">
    <has-kv k="shop" modv="" v="bakery"/>
    <bbox-query e="16" into="_" n="54.2" s="47.9229" w="7.9197"/>
  </query>
  <print e="" from="_" geometry="skeleton" limit="" mode="meta" n="" order="id" s="" w=""/>
  <recurse from="_" into="_" type="down"/>
  <print e="" from="_" geometry="skeleton" limit="" mode="meta" n="" order="id" s="" w=""/>
</osm-script>
Die Daten heruntergeladen. (Overpass-QL um den Timeout einbauen zu können)
Im angehängten ZIP sind die Daten...

Darin sind alle Nodes und Ways enthalten.
Die Ways aber noch ohne Koordinaten, dafür befinden sich die Nodes die in den Ways enthalten sind mit Koordinaten am Ende der Datei...

Ich hätte jetzt erwartet, dass OSMConvert mit dem Aufruf
Code:
osmconvert Bakery.osm --all-to-nodes -o=output.osm
Alle Ways in Nodes konvertiert, aber stattdessen werden nur die bereits vorhandenen Nodes übernommen und die Ways "rausgeschmissen".

Fehlt mir eventuell noch ein Zwischenschritt, um die Ways mit den Koordinaten der zugehörigen Nodes zu versehen?
 

Anhänge

  • Bakery.zip
    2 MB · Aufrufe: 105

arminus

Geocacher
Kappler schrieb:
Ich hätte jetzt erwartet, dass OSMConvert mit dem Aufruf
Code:
osmconvert Bakery.osm --all-to-nodes -o=output.osm
Alle Ways in Nodes konvertiert, aber stattdessen werden nur die bereits vorhandenen Nodes übernommen und die Ways "rausgeschmissen".
Das stimmt so nicht ganz, guckst Du hier:

osmconvert bietet die Möglichkeit, alle Wege und Relationen zu entfernen und stattdessen deren geografische Mittelpunkte als Knoten neu in die Datei aufzunehmen. Für jedes Objekt entsteht ein Knoten mit genau den gleichen Tags.
Allerdings tut auch das nicht, das liegt aber m.E. an Overpass bzw. wie Overpass OSM raw ausspuckt (frag mich jetzt nicht woran das im Detail liegt, keine Ahnung).

Folgendes tut aber so wie bei osmconvert beschrieben (ggf. gleich in eine pipe):

Code:
osmfilter obb.o5m --keep="" --keep-ways="shop=bakery" --keep-nodes="shop=bakery" -o=bakeries.osm
osmconvert bakeries.osm --all-to-nodes -o=bnodes.osm
obb.o5m ist ein beliebiges nach o5m konvertiertes file von geofabrik
 

Kappler

Geowizard
Das sieht doch schon mal viel besser aus - Schade, dass die Overpass-Gechichte nicht funktioniert wie sie soll, vom Prinzip her wäre das viel eleganter gewesen...
Beim ersten Überfliegen der Overpass-Datei und Vergleich mit der durch OSMFilter erzeugten sind mir keine klaren Unterschiede aufgefallen...

Eine Frage noch:
Was bewirkt
Code:
--keep=""
beim Filtern?
 

arminus

Geocacher
Keine Ahnung mehr :???: - ich hab das Fragment aus einem meiner > 2 Jahren alten Scripts heraus kopiert, vielleicht geht's auch ohne den -keep=""
 
Oben