Filtrage de l'API Overpass par pays

9

Est-ce que quelqu'un sait comment effectuer une demande d'overpass-api comme celle-ci?

"Montrez-moi toutes les banques en Allemagne"?

Je pourrais simplement montrer tous les 'amenity = bank' dans une boîte de délimitation spécifique. Mais l'Allemagne (ou la plupart des pays) ne s'intègre pas très bien dans une telle bbox.

Y a-t-il un moyen de faire ça? Avez-vous un exemple? Les performances ou l'exécution du serveur sont secondaires car nous pourrions héberger un propre serveur ou quelque chose comme ça :)

Cem Özdemir
la source

Réponses:

11

En utilisant Overpass turbo, la syntaxe est la suivante:

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

nwrest un raccourci pour node- way-relation

AndreJ
la source
Cela m'a aidé à écrire ">;" après le crochet rond de fermeture ");" et avant "out". Sinon, aucun nœud avec des coordonnées sur la carte n'a été affiché.
qräbnö
@ qräbnö vous avez raison, j'ai mis à jour ma réponse.
AndreJ
7

Le plugin Quick OSM pour QGIS génère la requête Overpass de travail suivante:

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

pour plus de détails, voir Overpass turbo / Extended Overpass Queries

obscur
la source