Outils pour utilisateurs

Outils du site


tutoverpass:jour_1_la_requete_elementaire

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tutoverpass:jour_1_la_requete_elementaire [2020/05/14 12:19] – [Jour #1 – La requête élémentaire] admintutoverpass:jour_1_la_requete_elementaire [2023/11/06 13:52] (Version actuelle) – [Jour 1 – La requête élémentaire] charles
Ligne 1: Ligne 1:
-====== Jour #1 – La requête élémentaire ======+====== Jour 1 – La requête élémentaire ======
  
-La requête élémentaire est constituée de deux instructions :+La requête élémentaire est constituée de **deux instructions** :
  
-1/ La première instruction sélectionne dans la base de données OSM (ou plutôt dans une copie) un lot de données. Voici sa syntaxe : +La première instruction consiste à **sélectionner un lot de données** dans la base de données OSM (ou plutôt dans une copie). Voici sa syntaxe : 
-  * node, way ou rel : le type d'élément recherché +  * ''node''''way'' ou ''rel'' : le type d'élément recherché 
-  * entre [ ] : un ou plusieurs filtres sur les tags +  * entre ''[ ]'' : un ou plusieurs filtres sur les tags 
-  * entre ( ) : d'autres types de filtres +  * entre ''( )'' un ou plusieurs filtres de divers types 
-Toute instruction se termine par un point-virgule.+Les filtres entre parenthèses sont souvent des filtres géographiques, comme ''%%{{bbox}}%%'' qui décrit la zone visible sur la carte sur Overpass Turbo. Nous en verrons d'autres.
  
-Les autres types de filtres sont souvent des filtres géographiques, comme %%{{bbox}}%% qui décrit la zone visible sur la carte sur Overpass TurboNous en verrons d'autres.+La seconde instruction consiste à **retourner ce lot de données** comme //résultat de la requête// Overpass. Il s'agit de l'instruction ''out'' dont nous verrons quelques variantes
  
-La **seconde instruction** consiste à retourner ce lot de données comme **résultat** de la requête Overpass. Il s'agit de l'action 'out' dont nous verrons quelques variantes. +Par exemple, la requête suivante retourne les arrêts de bus avec un abri. L'instruction de sélection combine deux filtres sur les //tags// et un filtre géographique : les 3 conditions doivent être remplies (//ET// logique). Seuls les //nodes// qui portent les //tags// ''highway=bus_stop'' **//ET//** ''shelter=yes''**//ET//** se trouvent dans la zone visible de la carte, sont sélectionnés.
- +
-Par exemple, la requête suivante retourne les arrêts de bus avec un abri. L'instruction de sélection combine deux filtres sur les tags et un filtre géographique : les 3 conditions doivent être remplies. Seuls les nodes qui portent les tags <tt>highway=bus_stop</tt> et <tt>shelter=yes</tt>et se trouvent dans la zone visible de la carte, sont sélectionnés.+
  
 <code> <code>
Ligne 23: Ligne 21:
 </code> </code>
  
-Un filtre sur les tags peut ne contenir que la clef : sont retournés tous les éléments pour lequel ce tag **est défini**, //quelle que soit sa valeur// :+<WRAP center round info 80%> 
 +Une instruction peut être écrite sur une ou plusieurs lignes, cela n'a pas d'importance. Par contre, toute instruction Overpass, se termine par un point-virgule : '';''. Il est même possible de placer plusieurs instructions sur la même ligne, ainsi la requête ci-dessus peut être écrite : 
 +<code> 
 +node[highway=bus_stop][shelter=yes]({{bbox}}); out; 
 +</code> 
 +</WRAP> 
 + 
 +Un filtre de tag peut ne contenir que la //clef// : sont conservés les éléments pour lequel ce //tag// **est défini**, //quelle que soit sa valeur// :
  
 <code> <code>
Ligne 42: Ligne 47:
 </code> </code>
  
-Lorsque la clef ou la valeur du filtre contient un espace, un accent ou un caractère spécial, il est nécessaire de placer cette clef et/ou cette valeur **entre quotes**. Exemple avec un nom de lieu en breton :+Lorsque la //clef// ou la //valeur// du filtre contient une espace, un accent ou un caractère spécial, il est nécessaire de placer cette //clef// et/ou cette //valeur// **entre //quotes//**. Exemple avec un nom de lieu en breton :
  
 <code> <code>
Ligne 51: Ligne 56:
 </code> </code>
  
-Les quotes simples et doubles sont possibles, je conseille toutefois les **quotes doubles** qui ne seront pas perturbées par la présence de quotes simples dans les noms. +Les //quotes// simples et doubles sont possibles, je conseille toutefois les **//quotes// doubles** qui ne seront pas perturbées par la présence de //quotes// simples dans les noms. 
  
 <WRAP center round important> <WRAP center round important>
 Notez que cette dernière requête contient deux filtres de tags mais **aucun filtre géographique**. Les filtres de tags sont en effet suffisamment restrictifs pour que le résultat soit de taille raisonnable. Mais ne faites pas ça pour obtenir tous les restaurants de la planète : les serveurs Overpass sont très utilisés et limitent la durée d'exécution d'une requête et le volume du résultat. Notez que cette dernière requête contient deux filtres de tags mais **aucun filtre géographique**. Les filtres de tags sont en effet suffisamment restrictifs pour que le résultat soit de taille raisonnable. Mais ne faites pas ça pour obtenir tous les restaurants de la planète : les serveurs Overpass sont très utilisés et limitent la durée d'exécution d'une requête et le volume du résultat.
 </WRAP> </WRAP>
- 
- 
  
 ===== Exercices ===== ===== Exercices =====
tutoverpass/jour_1_la_requete_elementaire.1589451541.txt.gz · Dernière modification : 2021/01/25 17:12 (modification externe)