Jestem bardzo początkującym z wiaduktem. Potrzebuję uzyskać wszystkie możliwe numery domów w okolicy z podanym kodem i częścią ulicy.

Na przykład. Wszystkie domy dla: 10178 alex

Wynik powinien być podobny lub podobny do:

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 

Próbowałem wykonać następne zapytanie, ale nie zwróciło ono żadnych wyników.

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; 

Co robię źle?

Komentarze

  • Zgaduję: ulica / droga może nie uważać ulicy / drogi za prawidłowy obszar do przeszukania lub przynajmniej nie jest wystarczająco duży (tylko bardzo cienka linia?). Prawdopodobnie możesz filtrować według numeru domu i nazwy ulicy node["addr:housenumber"]["addr.street"~~"^alex.*"], w zależności od danych OSM, które ' są dostępne
  • " z podanym kodem pocztowym i częścią ulicy " – więc chcesz, aby wszystkie adresy pasowały zarówno do Twojego kodu pocztowego, jak i nazwa ulicy?
  • @Mateusz Konieczny ly!
  • " droga (area.a) [" autostrada " " nie działał zgodnie z oczekiwaniami, ponieważ ulice nie mają obszaru. Wokół " znajduje się ", ale to również by się nie udało, ponieważ przechwyciłoby adresy pobliskich ulic lub nie złapał niektórych adresów daleko.

Odpowiedź

To zapytanie zakłada, że

  • chcesz, aby wszystkie adresy pasowały do obu Twój kod pocztowy i określona część nazwy ulicy
  • preferowana jest niewrażliwość na wielkość liter (filtr alex powinien pasować również do Alex, AleX itp.)
  • znacznik postal_code jest oznaczony na obszarze za pomocą boundary = postal_code ( AFAIK nie wszędzie)
  • adres używa tagów addr: street i addr: housenumber
 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; 

Komentarze

  • Próbuję uzyskać coś podobnego do tego, aby działało na amerykańskich ulicach, ale wydaje mi się, że nie '. Czy masz przykład?
  • @MichaelLWatson Podaj link do nowego pytania, które pokazuje, co nie działa i czego próbowałeś.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *