Filtraggio dell'API Overpass per Paese


9

Qualcuno sa come eseguire una richiesta di overpass-api come questa?

"Mostrami tutte le banche in Germania"?

Potrei semplicemente mostrare tutto 'amenity = bank' in un riquadro di selezione specifico. Ma la Germania (o la maggior parte di tutti i paesi) non si adatta molto bene a un simile bbox.

C'è un modo per fare questo? Hai un esempio? Le prestazioni del server o il runtime sono secondari poiché potremmo ospitare un proprio server o qualcosa del genere :)

Risposte:


11

Utilizzando Overpass turbo, la sintassi è:

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

nwrè l'abbreviazione di node- way-relation


Mi ha aiutato a scrivere ">;" dopo la parentesi tonda di chiusura ");" e prima di "uscire". Altrimenti non sono stati visualizzati nodi con coordinate nella mappa.
qräbnö,

@ qräbnö hai ragione, ho aggiornato la mia risposta.
AndreJ,

7

Il plug-in Quick OSM per QGIS genera la seguente query Overpass funzionante:

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

per i dettagli, consultare Overpass turbo / Extended Overpass Query

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.