Ich bin ein Anfänger mit Überführung. Ich muss alle möglichen Hausnummern in dem Gebiet mit der angegebenen Postleitzahl und einem Teil erhalten der Straße.

Zum Beispiel. Alle Häuser für: 10178 alex

Das Ergebnis sollte wie folgt sein:

Alex-Wedding-Straße, 10178 Berlin Tunnel Alexanderplatz, 10178 Berlin Alexanderplatz, 10178 Berlin Alexanderplatz 1, 10178 Berlin Kleine Alexanderstraße 1, 10178 Berlin Alexanderstraße 1, 10178 Berlin Alexanderplatz 2, 10178 Berlin 

Ich habe die nächste Abfrage versucht, aber es wurden keine Ergebnisse zurückgegeben.

area[postal_code=10178][boundary=postal_code]->.a; way(area.a)["highway"~"^(primary|secondary|tertiary|residential|living_street)$"]["name"~"^alex.*"]->.street; ( node["addr:housenumber"](area.street); way["addr:housenumber"](area.street); relation["addr:housenumber"](area.street); ); (._;>;);out; 

Was mache ich falsch?

Kommentare

  • Nur eine Vermutung: Die Überführung betrachtet eine Straße / einen Weg möglicherweise nicht als gültigen Bereich für die Suche oder zumindest nicht groß genug (nur) eine sehr dünne Linie?). Sie könnten wahrscheinlich nach Hausnummer und Straßenname node["addr:housenumber"]["addr.street"~~"^alex.*"] filtern, abhängig von den OSM-Daten, die ' verfügbar sind
  • " mit angegebener Postleitzahl und einem Teil der Straße " – Sie möchten also alle Adressen, die sowohl Ihrer Postleitzahl als auch Ihrer Postleitzahl entsprechen der Straßenname?
  • @Mateusz Konieczny genau ly!
  • " Weg (area.a) [" Autobahn " " funktionierte nicht wie erwartet, da Straßen keinen Bereich haben. Es gibt " um ", aber das würde auch fehlschlagen, da es Adressen von nahe gelegenen Straßen abfängt oder einige Adressen nicht weit entfernt abfängt.

Antwort

Bei dieser Abfrage wird davon ausgegangen, dass

  • alle Adressen mit beiden übereinstimmen sollen Ihre Postleitzahl und der angegebene Teil des Straßennamens
  • Groß- / Kleinschreibung wird bevorzugt (Alex-Filter sollte auch mit Alex, AleX usw. übereinstimmen)
  • Das Postleitzahl-Tag ist auf dem Gebiet mit Grenze = Postleitzahl ( AFAIK nicht überall wahr)
  • Adresse verwendet addr: street und addr: Hausnummer-Tags
 area[postal_code=10178][boundary=postal_code]->.code; ( node["addr:housenumber"]["addr:street"~"alex",i](area.code); way["addr:housenumber"]["addr:street"~"alex",i](area.code); relation["addr:housenumber"]["addr:street"~"alex",i](area.code); ); (._;>;);out; 

Kommentare

  • Ich versuche, etwas Ähnliches auf amerikanischen Straßen zum Laufen zu bringen, aber ' scheint es nicht, haben Sie ein Beispiel?
  • @MichaelLWatson Bitte verlinken Sie auf eine neue Frage, die zeigt, was nicht funktioniert und was Sie versucht haben.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.