저는 고가도로가 매우 초보자입니다. 주어진 우편 번호와 일부가있는 지역의 가능한 모든 집 번호를 가져와야합니다. 거리의.

예 : 10178 alex

결과는 다음과 같거나 유사해야합니다.

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 

다음 쿼리를 시도했지만 결과가 반환되지 않았습니다.

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; 

무엇을 잘못하고 있습니까?

댓글

  • 추측 : 고가도로가 거리 / 도로를 검색하기에 유효한 지역으로 간주하지 않거나 적어도 충분히 크지 않을 수 있습니다. 매우가는 선?). ' 사용 가능한 OSM 데이터에 따라 집 번호 및 거리 이름 node["addr:housenumber"]["addr.street"~~"^alex.*"]으로 필터링 할 수 있습니다. li>
  • " 주어진 우편 번호와 일부 거리 "-따라서 우편 번호 및 거리 이름?
  • @Mateusz Konieczny 정확한 ly!
  • " way (area.a) [" 고속도로 " "는 거리에 면적이 없기 때문에 예상대로 작동하지 않았습니다. " 주변에 "가 있지만 근처 거리의 주소를 포착하거나 먼 주소를 포착하지 못하기 때문에 실패합니다.

Answer

이 쿼리는

  • 둘 다 일치하는 모든 주소를 원한다고 가정합니다. 우편 번호와 거리 이름의 지정된 부분
  • 대소 문자 구분이 선호됩니다 (alex 필터는 Alex, AleX 등과 일치해야 함)
  • postal_code 태그는 boundary = postal_code ( AFAIK는 모든 곳에서 해당되지 않음)
  • 주소는 addr : street 및 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; 

댓글

  • 미국 거리에서 이와 유사한 작업을 수행하려고하는데 ' 예가없는 것 같습니다.
  • @MichaelLWatson 작동하지 않는 것과 시도한 것을 보여주는 새 질문에 링크하십시오.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다