Atelier « Créer des mises en page dynamiques avec l’Atlas de QGIS »
Programme de l’atelier
- 9h – 9h15 -> Introduction
- 9h15 – 10h30 -> Démonstration / action pour la réalisation d’un atlas à partir de données de DataGrandLyon.
- 10h30 – 10h45 -> Pause
- 10h45 – 11h45 -> Exercice pratique
Introduction
- Présentation du facilitateur de la formation Alban Vivert
- Tour de table et et brève présentation des participants
- Prérequis de l’atelier : connaître les manipulations de base dans QGIS (navigation, couches, symbologie, étiquettes, mise en page).
- Qu’est ce qu’un Atlas ?
Atlas : Il s’agit d’une fonctionnalité de la mise en page de QGIS qui permet d’automatiser la production de cartes multiples à partir d’un seul modèle de mise en page. Plutôt que de créer une carte différente pour chaque zone ou chaque projet, l’Atlas génère automatiquement une série de cartes personnalisées selon une couche de référence.
L’intérêt majeur de cette approche est de gagner un temps considérable tout en garantissant une cohérence visuelle sur l’ensemble des cartes produites. Une fois le modèle de mise en page conçu — comprenant la carte principale, les légendes, les titres, les échelles et les logos —, il devient possible de produire des dizaines ou des centaines de cartes en un seul clic.
Les données
Pour la démo, nous allons nous connecter aux flux WFS de DataGrand Lyon
- Stationnement vélo’v de la métropole de Lyon – dispo en temps réel
- Arrondissement de la commune de Lyon
Pour l’exercice pratique, vous utiliserez soit vos propres données, soit vous vous connecterez à votre plateforme opendata préférée .
Les étapes de l’atelier
- Connexion aux WFS du Grand Lyon…
- Génération d’un masque dynamique sur les arrondissements
- Mise en page / Génération de l’atlas
- Carte de localisation
- Emprises / Aperçu
- Thèmes de cartes
- Découpage de données
- Cartes localisation sphériques
- Textes dynamiques
- Agrégat de valeurs attributaires
- Export de cartes
Génération d’un masque dynamique
Pour générer un masque qui d’adapte à la couche active de l’atlas (arrondissements de la commune de Lyon), il faut réaliser un polygone inversé avec pour sous moteur, un ensemble de règles. Editer la règle @atlas_featureid=$id comme sur l’image ci-contre.
Si, en plus du masque (auquel vous aurez éventuellement appliqué une transparence), vous souhaitez afficher seulement les objets à l’intérieur de l’arrondissement actuel de votre atlas, alors il faut vous rendre dans la symbologie de votre couche (ici, les vélov) et ajouter une condition stricte (AND) à vos ensembles de règles : » within($geometry, @atlas_geometry) »
Afficher un rectangle d’aperçu dans votre carte de localisation
Pour afficher un rectangle d’aperçu dans votre carte de localisation, il faut vous rendre dans les « propriétés de l’objet » de votre carte de localisation, aller dans la section « aperçus« , en ajouter un et cocher « Afficher l’aperçu« , en sélectionnant « cadre de la carte » -> Carte principale.
Génération d’un atlas
L’atlas se génère en quatre étapes:
- Il s’agit d’ouvrir tout d’abord les paramètres de l’atlas.
2. Dans les paramètres de l’atlas, cochez « générer un atlas » puis choisir la couche de couverture : il s’agit de choisir la couche que va utiliser QGIS pour générer l’atlas. Ici, la couche des arrondissements.
3. Ensuite, dans les propriétés de l’objet carte (la carte qui va être l’objet de votre atlas), cochez la ligne « Controlé par l’atlas » ![]()
4. Vous pouvez ensuite générer un premier aperçu de l’atlas en cliquant sur cette icône
dans la barre d’outil de l’atlas.
Carte de localisation sphérique
Pour générer une carte de localisation sphérique, comme dans l’exemple, il faut ajouter une nouvelle forme en ellipse avec cette icône
, positionner l’ellipse créée sur la carte de localisation, et dans les paramètres de cette dernière, cliquer sur l’icône « paramètre de découpage »
.
Dans les paramètres de découpage, sélectionner « découper aux limites de l’élément » et choisir l’ellipse.
Thèmes de carte
Les thèmes de carte sont très utiles lorsque l’on veut appliquer des représentations distinctes sur nos differentes cartes présentes dans la mise en page.
Un thème est un ensemble de couches visibles, ce qui permet de gérer, dans notre carte exemple, les differentes représentations cartographiques que nous avons entre notre carte de localisation et notre carte principale.
Il faut alors cliquer sur
dans le panneau des couches pour gérer les differents thèmes.
Ensuite, dans la fenêtre de mise en page, vous pouvez appliquer un thème à chaque cadre de cartes (ici, carte de localisation et carte principale), ce qui permet en quelque sorte de « vérouiller » une représentation cartographique pour un cadre de carte donné.
Texte dynamique et expressions
Il est bien entendu possible – voire recommandé! – d’inclure des textes dynamiques dans vos mises en page sous forme d’atlas. Il faut éditer votre étiquette de texte en mode expression pour cela, et des possibilités infinies s’offrent à vous. Voici quelques exemples en garant comme objectif de réaliser cette carte sous forme d’atlas.
Pour afficher automatiquement le nom de l’arrondissement sur lequel la carte est centrée, il suffit dans votre expression d’ajouter le nom du champ voulu (ici le champ s’intitule « nomreduit »).
Exemple :‘Nombre de vélov dispo dans ‘ || « nomreduit »
Pour le nombre de vélov’ disponibles dans l’arrondissement sur lequel la carte est centrée, il faut utiliser la fonction aggregate. Se référer à la documentation pour comprendre la construction de cette expression complexe.
Exemple :
aggregate(layer:=’couche_velov’,aggregate:=’sum’,expression:= « available_bikes » ,filter:=contains( @atlas_geometry, @geometry ) )
Pour afficher l’heure et la date exacte de l’impression de la carte de l’atlas au format français, ajoutez l’expression suivante:
Pour la date : format_date(now(), ‘dd MMMM yyyy’)
Pour l’heure : format_date(now(), ‘ HH:mm’)
Au final, l’expression complète de notre texte dynamique, en respectant toute la syntaxe, est le suivant:
‘Nombre de vélov dispo dans ‘ || « nomreduit » || ‘ :’ ||
aggregate(layer:=’couche_velov’,aggregate:=’sum’,expression:= »available_bikes »,filter:=contains( @atlas_geometry, @geometry ) ) || ‘ vélovs à ‘ || format_date(now(), ‘ HH:mm’) || ‘ le ‘ || format_date(now(), ‘dd MMMM yyyy’)
Orientation paysage / portrait suivant la forme de l’objet actuel de l’atlas
Pour adapter l’orientation de la page d’export en fonction de l’objet de l’atlas (portrait ou paysage), insérer cette expression « CASE WHEN bounds_width($geometry) > bounds_height($geometry) THEN ‘Landscape’ ELSE ‘Portrait’ END » dans les propriétés de l’orientation de votre page.
Export de l’Atlas
Vous pouvez insérer un texte dynamique dans le nommage de exports. Il faut aller dans les options de l’onglet Atlas dans votre mise ne page.
Par exemple, vous voulez automatiquement mettre le nom de l’arrondissement dans votre fichier : ‘carte_velov’ || ‘_’ || « nomreduit »



