QGIS et OpenStreetMap

Créer un fond de carte sous QGIS avec les données OpenStreetMap Créer un fond de carte avec des données OpenStreetMap

Comment créer un fond de carte avec le logiciel QGIS et des données OpenStreetMap ?

Attention, ce tutoriel date un peu ! Nous avons publié (ailleurs) un autre tutoriel plus à jour... Nous comptons bientôt... remplacer cette version.

Présentation du tutoriel QGIS

Il est parfois difficile de disposer d’un fond de carte exploitable sous QGIS pour la réalisation de cartes papiers ; les fonds commerciaux peuvent être chers ou inadaptés et les fonds OpenLayers ne sont pas adaptés à la production de cartes au format papier.

L’utilisation des données OpenStreetMap représente une alternative viable pour peu que l’on dispose de styles adaptés à leurs exploitation.

Ce tutoriel explique comment disposer d’un fond de carte à partir des données OpenStreetMap sur une emprise de taille limitée à quelques centaine de km2.

L’opération se déroule en plusieurs étapes :
- récupération des données
- modification des données
- application des styles

Pour simplifier les opérations les données sont stockées au format SpatiaLite.

Les manipulations sont réalisées sous QGIS version 2.8.1 et sous GNU/Linux Ubuntu 14.04 ; elles sont normalement reproductibles sur des versions antérieurs de QGIS et sur d’autres systèmes d’exploitation.


Récupérer les données de la zone d’intérêt

Récupérer les données OSM

Il faut :
- zoomer de telle manière à ce que l’emprise de la carte affichée sous QGIS soit l’emprise de la zone d’intérêt.
- aussi, que la carte de QGIS soit reprojetée en WGS 84 (EPSG 4326) pour que les coordonnées de l’emprise soient compréhensibles par l’Overpass API d’OpenStreetMap.

Une fois que ces points sont réglés :
- télécharger les données à l’aide de l’outil Vecteur > OpenStreetMap > Télécharger des données OSM.

Ajouter des données

Les données OSM, au format XML (.osm), peuvent être ouvertes comme n’importe quelles autres données vectorielles : menu Couches > Ajouter une couche > Ajouter une couche vecteur

Les données d’OpenStreetMap sont stockées sous différents formats : points, lignes, polygones, multi-polygones, etc. Au moment de l’ajout du fichier .osm, il nous est demandé de choisir les types de données à ajouter, il faut ajouter les points, les lignes et les multi-polygones.

Une fois les trois couches ajoutées dans QGIS, il faut :
- sauvegarder chacune des couches dans trois fichiers SpatiaLite en les nommant clairement de manière à distinguer les lignes, les points et les polygones
- sélectionner la couche en cliquant dessus dans le gestionnaire de couche puis menu Couches > Enregistrer sous
- choisir l’emplacement où vous voulez stocker les données et
- choisir le format SpatiaLite.

Une fois la sauvegarde faite, et si ce n’est pas déjà fait :
- ajouter les couches SpatiaLite nouvellement créées : menu Couches > Ajouter une couche > Ajouter une couche vecteur… ou CTRL +MAJ +V et
- supprimer les couches issues du fichier .osm : sélection des couches dans le gestionnaire de couches puis menu Couches > Supprimer la couche/groupe ou CTRL +D.


Modifier les données

Cette étape est facultative, si vous souhaitez aller vite ou si votre emprise ne comporte d’objet de type riverbank, vous pouvez directement aller à l’étape d’application des styles.

Dans OpenStreetMap, les limites des cours d’eau sont de type riverbank, et cela pose un problème, car elles sont stockées sous forme de lignes et non sous forme de polygones.

Nous allons transformer les lignes de type riverbank en polygones. Pour cela , il faut :
- sélectionner toutes les lignes de type riverbank
- convertir ces lignes en polygone
- ajouter ces nouveaux polygones à la couche polygone existante

Sélectionner les riverbank

- sélectionner la couche ligne en cliquant sur celle‑ci dans le gestionnaire de couches
- utiliser l’outil Sélectionner les entités, depuis la barre d’outil ou depuis le menu Vue > Sélection > Sélectionner en utilisant une expression.

selection-riverbank2

Convertir

- utiliser la Boite à outils de traitements
- convertir les polylignes sélectionnées en polygones à l’aide de l’outil de Polygonise ou de l’outil Lines to Polygones
- penser à utiliser l’outil de recherche situé en haut de la boîte à outil

En cas de problèmes

Il est possible de :
- réaliser la même opération à l’aide de l’outil Lignes vers polygones

Pour cela il faut :
- isoler les polylignes riverbank précédemment sélectionnées dans une nouvelle couche SpatiaLite : menu Couche > Enregistrer sous et
- cocher N’enregistrer que les entités sélectionnées.

Ensuite il faut :
- réaliser l’opération de conversion des lignes en polygones par le menu Vecteur > Outils de géométrei > Lignes vers polygones qui créera une nouvelle couche Shapefile.

Ajouter des données converties à la couche des polygones

La couche des riverbanks, convertis en polygones, doit normalement avoir été chargée dans QGIS.

Il faut, sélectionner l’ensemble des entités, et pour cela :
- aller dans la table attributaire de cette couche
- tout dé-sélectionner, pour être sûr que rien n’est sélectionné
- cliquer sur le bouton inverser la sélection
- fermer la table attributaire
- constater que les éléments sont bien sélectionnés
- doubler la vérification en observant les informations de la barre d’état (en bas à gauche) ; attention il est possible que votre emprise ne comporte pas de riverbanks, dans ce cas rien ne sera sélectionné.

Une fois la vérification que les riverbanks sont bien sélectionnés :
- copier par un simple CTRL +C
- sélectionner la couche SpatiaLite des polygones créés précédemment
- rendre éditable cette couche
- coller les riverbanks par un simple CTRL + V
- sortir de l’édition
- sauvegarder les modifications


Appliquer les styles

Récupérer des styles

De nombreux jeux de styles QGIS directement applicables aux données OSM sont disponibles sur Internet.

Nous vous proposons d’utiliser ces styles créés pour être adaptés à des données du territoire français.

Ces fichiers styles se composent de trois fichiers, au format .qml, un pour chaque type de données :
- points,
- polylignes,
- polygones.

Appliquer les styles

Pour appliquer les styles il faut :
- aller dans les propriétés de la couche
- cliquer droit sur Propriétés ou bien
- double-cliquer sur la couche dans le gestionnaire de couches, puis, dans l’onglet Style, le bouton Style permet de charger les styles téléchargés.

En appliquant chaque style à la couche qui lui est destinée (osm_base_points.qml pour la couche de point, etc.), QGIS générera un rendu adapté à la production d’une carte papier.

Les styles proposés sont susceptibles d’évoluer pour être amélioré, ou d’être dérivés en différentes versions en fonction des usages ; n’hésitez pas à surveiller leur évolution et à proposer vos propres versions.