Jour 3 – Requêtes sur les surfaces
Les surfaces peuvent être représentées soit par des chemins fermés soit par des relations, qui permettent de représenter des surfaces trouées ou disjointes.
L'instruction out geom
fonctionne sur les relations comme sur les ways, de même que la récursion.
Pour trouver les parcs on peut donc écrire soit :
way[leisure=park]({{bbox}}); out geom; rel[leisure=park]({{bbox}}); out geom;
Soit :
way[leisure=park]({{bbox}}); out; >; out skel; rel[leisure=park]({{bbox}}); out; >; out skel;
Notez que l'on peut écrire plusieurs instructions sur la même ligne, mais n'oubliez pas le point-virgule à la fin de chacune.
Mais il y a mieux pour raccourcir notre requête. L'instruction nwr
permet en une instruction de chercher les nodes, ways et relations, en y appliquant les mêmes filtres :
nwr[leisure=park]({{bbox}}); out; >; out skel;
Ou encore :
nwr[leisure=park]({{bbox}}); out geom;
Cette instruction est très pratique, car de nombreux éléments peuvent être représentés par un point ou par une surface, donc par un node, un way ou une relation.
Une autre variante de l'instruction out
– out center
– permet d'homogénéiser le résultat en convertissant les lignes et surfaces en points. Notez que cette instruction retourne pour chaque élément le centre de son rectangle englobant (bounding box), qui peut se trouver à l'extérieur de la surface dont il est issu.
nwr[leisure=park]({{bbox}}); out center;
Exercices
- Trouvez les supermarchés et les épiceries.
- Trouvez les bâtiments ayant un nom.
- Trouvez les chemins piétons et les rues piétonnes.
© CC-by-sa Carto’Cité