Outils pour utilisateurs

Outils du site


openstreetmap:overpass:api_variables_et_operations_ensemblistes

Overpass API – Variables et opérations ensemblistes

Utiliser des variables

Voici une requête qui trouve les arrêts de bus se trouvant à moins de 100 mètres d'un arrêt de tramway.

node({{bbox}})["railway"="tram_stop"];
node(around:100)["highway"="bus_stop"];
out body;

La première requête trouve tous les arrêts de tramway sur la carte visible. Cela génère un résultat qui est utilisé comme source pour la requête suivante : celle-ci recherche, pour chaque arrêt de tram, les arrêts de bus se trouvant autour dans un rayon de 100m.

Il est possible de placer le résultat d'une requête dans une variable avec la syntaxe ->.var. On peut ensuite utiliser cette variable en entrée d'une requête. Ainsi la requête suivante est équivalente à la précédente :

node({{bbox}})["railway"="tram_stop"]->.ts;
node(around.ts:100)["highway"="bus_stop"];
out body;

Le lot de donnée par défaut est en réalité stocké dans la variable ._. La requête précédente peut donc être réécrite ainsi :

node({{bbox}})["railway"="tram_stop"];
node(around._:100)["highway"="bus_stop"];
out body;

Une variable peut aussi être utilisée pour le résultat d'un géocodage. Ainsi la même requête appliquée à la ville de Nantes :

{{geocodeArea:Nantes}}->.nantes;
node(area.nantes)["railway"="tram_stop"]->.ts;
node(around.ts:100)["highway"="bus_stop"];
out body;

Opérations ensemblistes

Union

Il est possible d'assembler le résultat de plusieurs requêtes en utilisant des variables. Modifions ainsi la requête précédente pour obtenir tous les arrêts de tramway de Nantes ainsi que les arrêts de bus se trouvant à moins de 100 mètres :

{{geocodeArea:Nantes}}->.nantes;
node(area.nantes)["railway"="tram_stop"]->.ts;
(
  node(around.ts:100)["highway"="bus_stop"];
  .ts;
);
out body;

Les parenthèses produisent l'union des résultats des requêtes se trouvant à l'intérieur.

Soustraction

Il est également possible de réaliser des soustractions :

{{geocodeArea:Nantes Métropole}}->.nm;
{{geocodeArea:Nantes}}->.n;
( node["railway"="tram_stop"](area.nm); - node["railway"="tram_stop"](area.n); );
out body;

Intersection

Étant donnés deux lots de données, stockés dans deux variables a et b, l'intersection entre ces deux lots se fait pour chaque type d'élément, par exemple node.a.b;. L'exemple suivant permet d'obtenir les sections de limite administrative qui séparent deux communes :

rel[name="Nantes"];
way(r)->.n;
rel[name="Rezé"];
way(r)->.r;
way.n.r;
out geom;

Syntaxe d'utilisation des variables

Le schéma suivant illustre les différentes syntaxes pour utiliser des variables.

  • Printable version
  • Export to OpenOffice
  • Export to PDF
  • Add page to book
  • Tools:
openstreetmap/overpass/api_variables_et_operations_ensemblistes.txt · Dernière modification: 2020/01/10 09:56 par admin