국가 별 필터링 육교 API


9

누구든지 이와 같은 오버 패스 -api 요청을 수행하는 방법을 알고 있습니까?

"독일의 모든 은행을 보여줘"?

특정 경계 상자에 모든 'amenity = bank'를 표시 할 수 있습니다. 그러나 독일 (또는 대부분의 국가)은 그러한 bbox에 잘 맞지 않습니다.

이것을 할 수있는 방법이 있습니까? 예가 있습니까? 자체 서버 또는 이와 유사한 것을 호스팅 할 수 있기 때문에 서버 성능 또는 런타임은 부차적입니다.

답변:


11

오버 패스 터보를 사용하는 구문은 다음과 같습니다.

area["name"="Nordrhein-Westfalen"]->.boundaryarea;
(
nwr(area.boundaryarea)[amenity=bank];
);
out meta;

nwrnode- 의 줄임말 way--relation


">;"를 쓰는 데 도움이되었습니다. 닫는 둥근 괄호 ");" "아웃"하기 전에. 그렇지 않으면 맵에 좌표가있는 노드가 표시되지 않았습니다.
qräbnö

@ qräbnö 당신이 맞아, 나는 내 대답을 업데이트했다.
AndreJ

7

QGIS 용 Quick OSM 플러그인은 다음과 같은 작동하는 오버 패스 쿼리를 생성합니다.

<osm-script output="xml" timeout="200"> 
 <id-query {{nominatimArea:Austria}} into="area"/> 
 <union>
      <query type="node">
           <has-kv k="amenity" v="bank"/> 
           <area-query from="area"/>
      </query>
      <query type="way">
           <has-kv k="amenity" v="bank"/> 
           <area-query from="area"/>
      </query>
      <query type="relation">
           <has-kv k="amenity" v="bank"/> 
           <area-query from="area"/>
      </query>
 </union>
 <union>
      <item />
      <recurse type="down"/>
 </union>
 <print mode="body" />
</osm-script>

자세한 내용은 오버 패스 터보 / 확장 오버 패스 쿼리 를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.