highway mit "nackten" node per overpass-api laden

Hallo zusammen!

Ich lade mir per


http://www.overpass-api.de/api/interpreter?data=[timeout:86400];way[highway=residential][name](47.2,5.8,55.1,15.1);(._;node(w););out;

alle Wohngebietsstraßen in Deutschland herunter. (Das klappt auch sehr gut!)

NUR: Ich brauche eigentlich nur den Straßentyp, Name und die Geometrie. Die overpass-api liefert mir allerdings auch alle Tags für z.B. die einzelnen den Straßenzugehörigen Nodes.

Weiß jemand, ob und wenn ja wie man soetwas unterbinden kann? Sprich, die overpass-api liefert nur die “nacken” Nodes der einzelnen Straßen!

Besten Dank schonmal!

Keine Ahnung, ob und wie man die Overpass API dazu bringen kann, aber ansonsten klingt es nach einer Aufgabe für osmfilter: http://wiki.openstreetmap.org/wiki/DE:Osmfilter#Tag-Filter
Alternativ geht es aber auch mit Kaugummi, einer Kugelschreibermine und etwas Rohrreiniger: z.B. tötet

sed '/^ *<node /,/^ *<way/{/^ *<tag/d}'

alle Tags an Knoten; Wege und Relationen von (allen außer) bestimmten Tags zu befreien ist aber genauso möglich. (Daß man derart verpfuschte Daten nicht mehr zum Editieren nehmen sollte, versteht sich von selbst.)
Verrätst Du uns, was Du vorhast?

Besten Dank Oli-Wan für die schnelle Antwort!
Ja an “osmfilter” hab ich auch schon gedacht, aber es hätte ja sein können, dass es eine Möglichkeit gib die Daten erst gar nicht runterladen zu müssen…

Ich hätte evtl. erwähnen sollen, dass der Spaß mit Windows erledigt wird! Das sieht mir doch sehr nach nach Linux aus. Gibt es sowas zufällig auch für Windows?

Och schade :wink: Nein, ehrenwort wird nicht hochgeladen,is doch klar…

Also hauptsächlich versuche ich mir eine “Adressvorschlagfunktion” für “meinen” OSMAddressCorrector zu basteln. Aber vor allem will ich mal wieder bisl “basteln” :wink: Kann also sein, dass ich mich bald öfters hier melde…

Das klingt sehr interessant! :slight_smile: Ich bin gespannt! Weiter so! :sunglasses:

hab noch nie von dem Teil gelesen, aber hier gefunden: http://osmlabs.square7.de/OSMAddressCorrector/

mal sehen was da kommt.

Gruss
walter

p.s. Schwarze Schrift auf dunkelgrünem Grund ist prima zu lesen - ist nur durch die Seite zu toppen, wo es blaue Schrift auf rosa Hintergrund gab :wink:

Das Programm hätte ich dir nun auch empfohlen. :wink: Eleganter wärs aber wirklich, wenn man die nicht benötigten Daten gar nicht erst runterladen muss. Vielleicht gibts da doch noch einen Weg.

Ja, die wichtigsten Linux-Kommandozeilenprogramme wie grep, wget usw. gibt es tatsächlich auch für Windows. sed z.B. hier:
http://sed.sourceforge.net/

Ja, ersetze “out;” durch “out skel;”. Also:

http://www.overpass-api.de/api/interpreter?data=[timeout:86400];way[highway=residential][name](47.2,5.8,55.1,15.1);(._;node(w););out skel;

um gar keine Tags zu bekommen. Wenn nur die Nodes ihre Tags verlieren sollen, geht

http://www.overpass-api.de/api/interpreter?data=[timeout:86400];way[highway=residential][name](47.2,5.8,55.1,15.1);node(w)->.a;.a out skel;out;

In diesem Fall werden erst die Nodes der Ways mit der Ausgabeoption “skel” ausgegeben, dann die Ways im Standardformat. Damit die Nodes nicht die Ways überschreiben, werden sie in der separaten Variable “a” gespeichert.

Das kleine Schweizer Taschenmesser sed gibt es auch für Windows:
http://gnuwin32.sourceforge.net/packages/sed.htm

Die Abfragemöglichkeiten der Overpass-API sind echt sehr beeindruckend. Wahrscheinlich bist du annähernd der einzige, der so richtig durchblickt(?). Gibt es irgendwelche “Deppenjobs” bei der Doku oder bei Beispielen, wo man dir helfen könnte?

Vielen Dank Roland für die “Aufklärung” meines Problems bzw. meines Wunsches!

Irgendwas, läuft da aber falsch, ich bekomme nur folgende Fehlermeldung:


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8" lang="en"/>
  <title>OSM3S Response</title>
</head>
<body>

<p>The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.</p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: ';' expected - '-' found. </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: ';' expected - 'a' found. </p>
<p><strong style="color:#FF0000">Error</strong>: line 1: parse error: Unexpected end of input. </p>

</body>
</html>


Weißt du da nochmal Rat?

Vielen dank nochmal und auch schonmal “vielen Dank” im voraus!

In den Logfiles habe ich

[30/Oct/2012:17:47:48 +0100] runtime: 0, return size: 788, status: -, query string: /api/interpreter?data=[timeout:86400];way[highway=primary][name](47.2,5.8,55.1,15.1);node(w)-;.a, user agent: Wget/1.11.4

gefunden. Da sind in und nach “node(w)-;.a” einige Zeichen verloren gegangen. Versuche es mit Wget an der Kommandozeile bitte mit einfachen Anführungszeichen um die URL, dann sollte die URL unverändert verarbeitet werden können.

Hallo Roland!

Besten Dank jetzt klappt es! :slight_smile:

Eine Frage hätte ich noch: Wie kann ich diese “Abfragefunktion” bei Relationen anwenden? Also sprich, ich erhalte von der overpass-api NUR die tags der Relation, aber trotzdem alle Ways und Nodes?

Schönen Abend noch!

Hallo allerseits,
sorry, aber ich muss diesen hier nochmal nach oben holen.

Wenn ich per

wget "http://overpass-api.de/api/interpreter?data=[timeout:86400];(relation[postal_code](47.2,5.8,55.1,15.1););way(r)->.b;node(w)->.a;.b out skel;.a out skel;out;" -Opostcode.osm

alle Postleitzahlengebiete mir herunterladen möchte klappt das zwar, allerdings bekomme ich nur die Relation und die ways, ABER NICHT die Nodes.

Wahrscheinlich ein ganz einfaches Problem und ich bin einfach nur blind…

Könnte mir bitte jemand einen Schubs in die richtige Richtung geben…

Vielen Dank schon einmal und einen schönen Samstag noch

Das Problem liegt in “node(w)->.a;”. Die Wege, zu denen die Nodes geholt werden sollen, liegen in “.b”. Es müsste also “node(w.b)->.a;” und insgesamt

wget "http://overpass-api.de/api/interpreter?data=[timeout:86400];(relation[postal_code](47.2,5.8,55.1,15.1););way(r)->.b;node(w.b)->.a;.b out skel;.a out skel;out;" -Opostcode.osm

heißen.

Hallo Roland,

vielen Dank, jetzt funktioniert es! Klassischer Fall von: “Wald vor lauter Bäumen…”