Filtrando API do Overpass por país

9

Alguém sabe como executar uma solicitação de overpass-api como esta?

"Mostre-me todos os bancos na Alemanha"?

Eu poderia apenas mostrar toda a 'comodidade = banco' em uma caixa delimitadora específica. Mas a Alemanha (ou a maioria de todos os países) não se encaixa muito bem nesse tipo de bbox.

Há alguma maneira de fazer isso? Você tem um exemplo? O desempenho ou o tempo de execução do servidor são secundários, pois poderíamos hospedar um servidor ou algo parecido :)

Cem Özdemir
fonte

Respostas:

11

Usando o Overpass turbo, a sintaxe é:

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

nwré uma abreviação de node- way-relation

AndreJ
fonte
Isso me ajudou a escrever ">;" após o suporte redondo de fechamento ");" e antes de "sair". Caso contrário, nenhum nó com coordenadas no mapa foi exibido.
Qräbnö 16/1018
@ qräbnö você está certo, eu atualizei minha resposta.
AndreJ 16/10
7

O plug-in Quick OSM para QGIS gera a seguinte consulta Overpass em funcionamento:

<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>

para obter detalhes, consulte Consultas sobre viaduto turbo / viaduto estendido

underdark
fonte