Outils pour utilisateurs

Outils du site


openstreetmap:overpass:api_filtres_geometriques

Overpass API - Filtres géométriques

Filtres géographiques

Les filtres géographiques permettent de filter les élément pour retenir ceux à l'intérieur d'une zone. Plusieurs formes peuvent être utilisées.

Type Syntaxe Exemple
Rectangle bounding box définie par (latmin,lonmin,latmax,lonmax) ou encore (sud,ouest,nord,est) node[amenity=restaurant](47.19, -1.59, 47.24, -1.52);
Polygone (poly:“lat1 lon1 lat2 lon2 lat3 lon3”) (inutile de répéter le premier point) node[amenity=restaurant](poly:“47.22 -1.55 47.21 -1.54 47.21 -1.56 47.22 -1.56”);
Cercle (around:<rayon en m>, lat, lon) node[amenity=restaurant](around:1000, 47.21851, -1.56023);
Area (area) : les objets de type area dans le lot d'entrée
area[admin_level=8][name=Nancy];
node[amenity=restaurant](area);

Le type area mérite quelques explications.

Le type area

Overpass définit un type complémentaire aux type OSM : area. Les areas sont des données de type surfaciques construites à partir d'éléments OSM représentant une surface, qu'il s'agisse de ways fermés ou de relation de type multipolygon ou boundary. Ces surfaces sont construites et stockées dans la base de données utilisée par Overpass à des fins d'optimisation.

La liste des éléments convertis en area est décrite sur la page Polygon features.

Le filtre pivot

Un objet de type area ne peut pas être directement exporté, car il ne référence pas les ways à partir duquel il a été produit. La requête suivante ne produit pas de géométrie.

area[admin_level=8][name=Nancy];
out geom;

Pour remédier à cela le filtre pivot permet de récupérer les éléments des areas du lot d'entrée. Ainsi pour une limite administrative, représentée par une relation :

area[admin_level=8][name=Nancy];
rel(pivot);
out geom;

Et pour obtenir toutes les surfaces nommées Nancy :

area[name=Nancy]->.n;
(way(pivot.n); rel(pivot.n););
out geom;

L'instruction map_to_area

L'instruction map_to_area effectue le chemin inverse et récupère les éléments de type area correspondants aux ways et relations modélisant une surface. Récupérer ces areas permet d'effectuer une requête géographique.

rel[admin_level=8][name=Nancy];
map_to_area;
way[leisure=park](area);
out geom;

Il est bien sûr plus simple et efficace de récupérer directement les areas :

area[admin_level=8][name=Nancy];
way[leisure=park](area);
out geom;

Toutefois map_to_area peut être nécessaire pour rechercher les élément à l'intérieur d'une surface elle-même inclue dans une surface. Exemple pour trouver les tables de pique-nique située dans un parc de Nancy.

area[admin_level=8][name=Nancy];
way[leisure=park](area);
map_to_area;
node[leisure=picnic_table](area);
out; 

L'instruction is_in

L'instruction is_in permet de trouver toutes les areas contenant un ou plusieurs points. Les coordonnées d'un point peuvent être passées en paramètre avec la syntaxe is_in(lat, lon), sinon les points du lot d'entrée sont utilisés.

Exemple pour trouver les communes ayant un hôtel nommé Au Lion d'Or :

node[tourism=hotel][name~"Au Lion d'Or",i];
is_in;
area._[admin_level=8];
out tags;
  • Printable version
  • Export to OpenOffice
  • Export to PDF
  • Add page to book
  • Tools:
openstreetmap/overpass/api_filtres_geometriques.txt · Dernière modification: 2020/01/10 09:56 par admin