Overpass et les cours d'eau
Posted by Carto'Cité on 21 March 2025 in French (Français). Last updated on 24 March 2025.Pour la Journée Mondiale de l’Eau ce 22 mars 2025, je vous ai concocté quelques requêtes Overpass qui valorisent le modèle de données OSM décrivant les cours d’eau. Ce modèle est décrit sur cette page du wiki, la clef qui nous intéresse ici est waterway.
Les cours d’eau d’une commune
Commençons par une requête classique visant à extraire les cours d’eau se trouvant à l’intérieur d’un territoire. Prenons la commune de Nort-sur-Erdre en Loire-Atlantique, la rivière L’Erdre présentant des caractéristiques intéressantes pour la suite de cet article. Notre première requête produit tous les cours d’eau se trouvant à l’intérieur de la commune. Pour vérifier le résultat (une bonne pratique avec Overpass), la requête retourne également le contour de la commune.
Les 3 lignes de MapCSS à la suite de la requête permettent de styliser l’affichage du résultat. La clause render: native;
indique d’afficher tous les tronçons sous forme de lignes, même les plus courts qui sont par défaut représentés par des cercles selon le niveau de zoom.
On observe deux problèmes :
- Les portions de cours d’eau qui longent le périmètre sont manquantes, notamment au niveau de la Plaine de la Poupinière au sud-est de la commune.
- Le résultat contient des ways qui sortent du périmètre de la commune, à l’ouest et au sud.
Pour résoudre le premier problème, nous devons prendre en compte à la fois les cours d’eau se trouvant à l’intérieur de la commune avec le filtre (area)
, et ceux le long de son périmètre avec le filtre (around)
. Celui-ci s’applique à des ways : on récupère les ways référencés par la relation avec la syntaxe way(r.commune)
.
Notre seconde requête utilise une distance nulle, il est aussi possible d’utiliser une distance de quelques mètres pour récupérer des cours d’eau proches de la commune.