Des cartes topographiques avec OpenStreetMap

  • OSM
  • OpenStreetMap

Lors du dernier FOSS4G.be à Bruxelles, Champs Libres a remporté le prix du public au concours de cartographie organisé en marge de la conférence! La carte primée est une planche A0 tirée au 1:20000 de la Forêt d’Anlier représentant une partie des données d’OpenStreetMap avec le style OpenArdenneMap. OpenArdenneMap est un style cartographique pour la production de cartes topographiques à grande échelle, mettant en exergue des particularités locales de l’Ardenne et destiné avant tout à la randonnée.

OpenArdenneMap

Comment ça marche?

OpenStreetMap (OSM), base de données géographiques collaborative mondiale, permet de créer ses propres cartes à partir des données brutes et d’un style cartographique. À l’instar de multiples cartographes à travers le monde, nous avons créé notre propre style cartographique. Nous sommes parti d’OSMBright, un style minimaliste permettant la génération de tuiles à différents niveaux de zoom. Les données brutes d’OSM sont importées dans une base de données postgresql avec l’utilitaire imposm et un fichier de “mapping” qui permet de sélectionner les tags OSM que l’on veut retenir. Le style (càd les couleurs, textures, typographie, épaisseur de traits, etc.) est écrit en cartoCSS et converti en style Mapnik XML avec la libraire carto. Enfin, Mapnik est piloté par Python pour rendre les cartes à l’échelle et l’endroit voulus. Enfin, plusieurs symboles et textures ont été créés avec Inkscape.

La recette pour le calcul des courbes de niveaux a été particulièrement fignolée: partant d’un modèle numérique de terrain (MNT) brut, nous passons un filtre de moyenne, gravons le réseau hydrographique d’OSM dans le MNT, remplissons les dépressions, générons les courbes de niveaux puis les lissons à chaud une dernière fois avant de les servir pour l’impression.

L’obtention d’une belle carte n’est possible que grâce aux nombreux contributeur·euse·s d’OSM, qui enrichissent la base de données depuis plus de 10 ans à coup d’enquêtes de terrain et de dessin sur image aériennes. Il va sans dire que pour cette carte, nous avons effectué une sérieuse mise à jour des données.

La force du modèle OSM est que tout en étant un projet global, il permet des adaptations et des rendus locaux. Quelques particularités d’OpenArdenneMap:

Des chemins, …

Dans OSM, les chemins non asphaltés (highway=track) peuvent être classés en 5 classes à l’aide du tag tracktype=*. Nous mettons cette richesse à profit en rendant pour l’instant 3 classes de chemins en fonction de leur carrosabilité. A ceux-là s’ajoutent les sentiers (highway=path) et les coupe-feux (man_made=cutline) qui ont leur rendu particuliers.

Extrait d'une carte OpenArdenneMap avec 3 classes de chemins et un sentier

 

des rotations, …

Un truc amusant, tourner automatiquement certains symboles en fonction de la géométrie de l’objet, directement dans le fichier de projet de Mapnik avec des fonctions PostGIS. Nous nous sommes inspiré de la méthode utilisée par OpenTopoMap pour tourner les terrains de sport (football et tennis).

Terrain de sports orientés sur OpenArdenneMap

 

Nous introduisons la rotation des passerelles (ponts sur sentiers et voies pédestres), en fonction de l’azimuth de la ligne qui représente ces passerelles.

CAST(90+degrees(ST_Azimuth(ST_StartPoint(geometry), ST_EndPoint(geometry))) AS VARCHAR(255)) AS orientation

Passerelles orientées sur OpenArdenneMap

 

Puis pour orienter le symbole des églises en fonction de l’orientation du bâtiment, une technique floue qui fonctionne dans la majorité des cas: on calcule le centroide du bâtiment, puis le centroide d’une forme simplifiée du bâtiment et, tadaam, la ligne reliant ces deux centroides donne une orientation à peu près correcte dans ~80% des cas. Dans la figure suivante, 3 églises avec le centroide en blanc et le centroide de la forme simplifiée en vert:

Centroides de forme originale (blanc) et simplifiée (vert) de bâtiments

 

CAST(degrees(ST_Azimuth(ST_Centroid(geometry),ST_Centroid(ST_SimplifyPreserveTopology(geometry,100)))) AS VARCHAR(255)) AS orientation

Symboles d'églises orientées sur OpenArdenneMap

 

…et des sapins de Noël.

Enfin, il y a en Ardenne beaucoup de plantations de sapins de Noël. Tellement en certains endroits que cela mérite bien une classe à part dans la légende d’OpenArdenneMap.

Rendu des plantations de sapins de Noël sur OpenArdenneMap