Jeg er en meget nybegynder med overpass. Jeg har brug for at få alle mulige husnumre i området med givet zip og en del af gaden.

For eksempel. Alle huse til: 10178 alex

Resultatet skal være eller ligner:

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 

Jeg prøvede den næste forespørgsel, men den gav ingen resultater.

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; 

Hvad laver jeg forkert?

Kommentarer

  • Bare et gæt: Overpass betragter muligvis ikke en gade / vej som et gyldigt område at søge i eller i det mindste ikke stort nok (bare en meget tynd linje?). Du kan sandsynligvis filtrere efter husnummer og gadenavn node["addr:housenumber"]["addr.street"~~"^alex.*"] afhængigt af de OSM-data, der ' er tilgængelige
  • " med givet postnummer og en del af gaden " – så du vil have alle adresser, der matcher både dit postnummer og gadenavnet?
  • @Mateusz Konieczny nøjagtigt ly!
  • " vej (area.a) [" motorvej " " fungerede ikke som forventet, da gader ikke har noget område. Der er " omkring " men det ville også mislykkes, da det ville fange adresser på nærliggende gader eller ikke fange nogle adresser langt væk.

Svar

Denne forespørgsel antager, at

  • du vil have alle adresser, der matcher begge dit postnummer og den angivne del af gadenavnet
  • sagsfølsomhed foretrækkes (alex-filter skal også matche Alex, AleX osv.)
  • postal_code-tag er mærket på område med grænse = postal_code ( AFAIK ikke sandt overalt)
  • adresse bruger addr: street og addr: housenumber 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; 

Kommentarer

  • Jeg prøver at få noget lignende til at fungere på amerikanske gader, men det ser det ikke ud til '. Har du et eksempel?
  • @MichaelLWatson Link til et nyt spørgsmål, der viser, hvad der ikke fungerer, og hvad du prøvede.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *