19.3. Exporter des cartes

Fig. 19.62 montre un exemple de mise en page incluant tous les types d’objets décrits dans la section précédente.

../../../_images/print_composer_complete.png

Fig. 19.62 Mise en page avec une carte, une légende, une image, une barre d’échelle, des coordonnées, du texte et un cadre HTML

Depuis le menu ou la barre d’outils Mise en page, vous pouvez choisir parmi différents formats de fichier pour l’export et il est possible de définir la résolution (qualité d’impression) et le format du papier :

  • Le bouton filePrint Imprimer vous permet d’imprimer la mise en page sur une imprimante ou dans un fichier PostScript, en fonction des pilotes d’imprimante installés.

  • Le bouton saveMapAsImage Exporter comme image exporte la mise en page au format image tels que PNG, BMP, TIF, JPG et beaucoup d’autres…

  • Le bouton saveAsSVG Exporter au format SVG sauve la mise en page en SVG (Scalable Vector Graphic).

  • Le bouton saveAsPDF Exporter au format PDF enregistre la mise en page directement dans un fichier PDF (Portable Document Format).

19.3.1. Paramètres d’export

Chaque fois que vous exportez une mise en page, il existe une sélection de paramètres d’exportation que QGIS doit vérifier afin de produire la sortie la plus appropriée. Ces paramètres sont :

19.3.2. Exporter au format image

Pour exporter une mise en page sous forme d’image :

  1. Cliquez sur le bouton saveMapAsImage Exporter comme image

  2. Sélectionnez le format d’image, le dossier et le nom de fichier (par exemple myill.png) à utiliser. Si la mise en page contient plus d’une page, chaque page sera exportée dans un fichier avec le nom de fichier donné avec le numéro de page ajouté (par exemple myill_2.png).

  3. Dans la fenêtre suivante (Options pour l’export d’images) :

    • Vous pouvez remplacer la Résolution d’exportation de la mise en page et les dimensions de la page exportée (définis initialement dans le panneau Mise en page).

    • Le rendu d’image peut également être amélioré avec l’option Activer l’antialiasing.

    • Si vous souhaitez exporter votre mise en page en tant que image géoréférencée (par exemple, pour la partager avec d’autres projets), cochez la case unchecked Générer un fichier de coordonnées (world), et un ESRI World File avec le même nom que l’image exportée, mais avec une extension différente (.tfw pour TIFF, .pnw pour PNG , jgw pour JPEG…) sera créé lors de l’exportation. Cette option peut également être cochée par défaut dans le panneau Mise en page.

      Note

      Pour une sortie multipage, seule la page qui contient la carte de référence obtiendra un fichier world (en supposant que l’option Générer un fichier de coordonnées (world) est cochée).

    • En cochant checkbox l’option Rogner au contenu, l’image sortie par la mise en page inclura la zone minimale englobant tous les objets (carte, légende, barre d’échelle, formes, étiquette, image…) de chaque page de la composition :

      • Si la composition comprend une seule page, la sortie est redimensionnée pour inclure TOUT sur la composition. La page peut ensuite être réduite ou étendue à tous les éléments en fonction de leur position (sur, au-dessus, en dessous, à gauche ou à droite de la page).

      • Dans le cas d’une mise en page de plusieurs pages, chaque page sera redimensionnée pour inclure des éléments dans sa zone (côtés gauche et droit pour toutes les pages, plus haut pour la première page et bas pour la dernière page). Chaque page redimensionnée est exportée dans un fichier distinct.

      La fenêtre Rogner au contenu vous permet également d’ajouter des marges autour des limites recadrées.

../../../_images/image_export_options.png

Fig. 19.63 Options d’exportation d’image, la sortie est redimensionnée à l’emprise des objets

Astuce

Utilisez des formats d’image qui prennent en charge la transparence lorsque les éléments dépassent l’étendue du papier

Les éléments de mise en page peuvent être placés en dehors de l’étendue du papier. Lors de l’exportation avec l’option Rogner au contenu, l’image résultante peut donc s’étendre au-delà de l’étendue du papier. Étant donné que l’arrière-plan en dehors de l’étendue du papier sera transparent, pour les formats d’image qui ne prennent pas en charge la transparence (par exemple, BMP et JPG), l’arrière-plan transparent sera rendu en noir complet, « corrompant » l’image. Utilisez des formats compatibles avec la transparence (par exemple, TIFF et PNG) dans de tels cas.

Note

Lorsqu’elle est supportée par le format (ex: PNG) et la bibliothèque Qt sous-jacente, l’image exportée peut inclure les métadonnées du projet (auteur, titre, date, description…)

19.3.3. Exporter au format SVG

Pour exporter une mise en page au format SVG :

  1. Cliquez sur le bouton saveAsSVG Exporter au format SVG

  2. Remplissez le chemin et le nom de fichier (utilisé comme nom de base pour tous les fichiers dans le cas de sorties mutli-pages, comme pour l’export au format image).

  3. Dans la fenêtre suivante Options pour l’export en SVG, vous pouvez remplacer les paramètres d’export par défaut de la mise en page ou en configurer de nouveaux :

    • unchecked Exporter les couches de la carte comme des groupes SVG : les objets exportés sont regroupés dans des couches dont le nom correspond aux noms des couches de QGIS, ce qui facilite la compréhension du contenu du document.

    • unchecked Toujours exporter comme vecteurs : certaines options de rendu nécessitent la pixellisation des objets pour un meilleur rendu. Cochez cette option pour conserver les objets comme vecteurs avec le risque que l’apparence du fichier de sortie ne corresponde pas à l’aperçu de la mise en page (pour plus de détails, voir Paramètres d’export).

    • checkbox Exporter les métadonnées RDF du document telles que le titre, l’auteur, la date, la description…

    • checkbox Simplifier les géométries pour réduire la taille du fichier de sortie : cela évite d’exporter TOUS les sommets de géométrie, ce qui peut entraîner une taille de fichier d’exportation ridiculement complexe et volumineuse qui pourrait ne pas se charger dans d’autres applications. Les géométries seront simplifiées lors de l’exportation de la mise en page afin de supprimer tous les sommets redondants qui ne sont pas clairement différents à la résolution d’exportation (par exemple, si la résolution d’exportation est 300 dpi, les sommets qui sont inférieurs à 1/600 pouces seront supprimés).

    • Définissez Export de texte : contrôle si les étiquettes de texte sont exportées en tant qu’objets texte ( Toujours exporter le texte sous forme d’objets texte) ou en tant que chemins uniquement (Toujours exporter le texte comme un chemin). S’ils sont exportés en tant qu’objets texte, ils peuvent être modifiés dans des applications externes (par exemple Inkscape) en tant que texte normal. MAIS l’effet secondaire est que la qualité du rendu est réduite, ET il y a des problèmes avec le rendu lorsque certains paramètres de texte comme les tampons sont en place. C’est pourquoi il est recommandé d’exporter en tant que chemins.

    • Appliquer les options pour checkbox Rogner au contenu

    • unchecked Désactiver l’export tuilés des couches raster : Lors de l’exportation de fichiers, QGIS utilise un rendu en tuiles de couche raster intégré qui économise de la mémoire. Parfois, cela peut provoquer des « coutures » visibles dans les rasters des fichiers générés. Cocher cette option résoudrait cela, au prix d’une utilisation de mémoire plus élevée lors des exportations.

../../../_images/svg_export_options.png

Fig. 19.64 Options d’enregistrement SVG

Note

Actuellement le rendu SVG est très basique. Il ne s’agit pas d’un problème lié à QGIS mais à la bibliothèque Qt utilisée. Nous pouvons espérer que cela soit corrigé dans les versions futures.

19.3.4. Exporter au format PDF

Pour exporter une mise en page au format PDF :

  1. Cliquez sur le bouton saveAsPDF Exporter au format PDF

  2. Remplissez le chemin et le nom de fichier : au contraire des exports image ou SVG, toutes les pages seront exportées dans un unique fichier PDF.

  3. Dans la fenêtre suivante Options pour l’export en PDF, vous pouvez remplacer les paramètres d’export par défaut de la mise en page ou en configurer de nouveaux :

    • unchecked Toujours exporter comme vecteurs : certaines options de rendu nécessitent la pixellisation des objets pour un meilleur rendu. Cochez cette option pour conserver les objets comme vecteurs avec le risque que l’apparence du fichier de sortie ne corresponde pas à l’aperçu de la mise en page (pour plus de détails, voir Paramètres d’export).

    • checkbox Ajouter les informations de géoréférencement: disponible seulement si la carte de référence, de laquelle l’information est extraite, est sur la première page.

    • checkbox Exporter les métadonnées RDF du document telles que le titre, l’auteur, la date, la description…

    • Définir l”Export de texte : contrôle si les textes sont exportés en tant que textes (Toujours exporter le texte sous forme d’objets texte) ou en tant que chemins uniquement (Toujours exporter le texte comme des chemins). S’ils sont exportés comme des objets texte, ils seront éditables comme des textes par des applications externes (par ex. Inkscape). MAIS la qualité du rendu est diminuée ET il peut y avoir des problèmes avec certains rendus comme les tampons autour des textes. C’est pour cela que l’export en chemins est recommandé.

    • Contrôler la Compression d’image du PDF :

      • Avec perte (JPEG), qui est le mode de compression par défaut

      • ou Sans perte, générant des fichiers plus volumineux dans la plupart des cas. Mais ce mode est plus adapté pour les impressions ou pour des traitements ultérieurs au seing d’autres applications (n’est disponible que dans les versions compilées avec Qt 5.13 ou ultérieurs).

    • unchecked Créer un PDF Géospatial (GeoPDF): Génère un fichier PDF géoréférencé (nécessite la version 3 ou plus de GDAL).

    • unchecked Désactiver l’export tuilés des couches raster : Lors de l’exportation de fichiers, QGIS utilise un rendu basé sur les tuiles qui économise de la mémoire. Parfois, cela peut provoquer des « coutures » visibles dans les rasters des fichiers générés. Cocher cette option résoudrait cela, au prix d’une utilisation de mémoire plus élevée lors des exportations.

    • checkbox Simplifier les géométries pour réduire la taille du fichier de sortie : Les géométries seront simplifiées lors de l’exportation de la mise en page en supprimant les sommets qui ne sont pas clairement différents à la résolution d’exportation (par exemple, si la résolution d’exportation est 300 dpi, les sommets qui sont moins de 1/600 pouces seront supprimés). Cela peut réduire la taille et la complexité du fichier d’exportation (les fichiers très volumineux peuvent ne pas se charger dans d’autres applications).

../../../_images/pdf_export_options.png

Fig. 19.65 Options d’export PDF

Note

Depuis QGIS 3.10, avec GDAL 3, l’export en GeoPDF est géré et un grand nombre d’options spécifiques sont disponibles :

  • Format (format GeoPDF - il existe des variantes de GeoPDF),

  • Inclure plusieurs thèmes de carte (spécifier les thèmes de carte à inclure),

  • Inclure les informations des entités vectorielles (choisissez les couches et regroupez-les en groupes PDF logiques).

Note

L’exportation d’une mise en page vers des formats prenant en charge le géoréférencement (par exemple, PDF et TIFF) crée une sortie géoréférencée par défaut.

19.3.5. Générer un Atlas

Les fonctions Atlas vous permettent de créer des altlas cartographiques de manière automatisée. Atlas utilise les entités d’une table ou d’une couche vectorielle ( Couche de couverture) pour créer une sortie pour chaque entité (entité d’atlas) dans la table / couche. L’usage le plus courant consiste à zoomer un objet carte sur l’entité actuelle de l’atlas. D’autres cas d’utilisation incluent :

  • un objet carte affichant, pour une autre couche, uniquement les entités qui partagent le même attribut que l’entité de l’atlas ou qui se trouvent dans sa géométrie.

  • une étiquette ou un élément HTML dont le texte est remplacé lors de l’itération des entités

  • un objet table montrant les attributs des entités parent ou enfants associées à l’entité actuelle de l’atlas…

Pour chaque entité, la sortie est traitée pour toutes les pages et tous les objets en fonction de leurs paramètres d’exportation.

Astuce

Utilisez des variables pour plus de flexibilité

QGIS fournit un large panel de fonctions et variables, y compris celles liées à l’atlas, que vous pouvez utiliser pour manipuler les objets de la mise en page, mais aussi la symbologie des couches, selon l’état de l’atlas. La combinaison de ces fonctionnalités vous donne beaucoup de flexibilité et vous aide à produire facilement des cartes avancées.

Pour permettre la génération d’un atlas et accéder aux paramètres de l’atlas, reportez-vous au panneau Atlas. Ce panneau contient ce qui suit (voir Fig. 19.66) :

../../../_images/atlas_properties.png

Fig. 19.66 Panneau Atlas

  • checkbox Générer un atlas active ou désactive la génération d’atlas.

  • Configuration

    • La liste déroulante Couche de couverture selectString permet de choisir la table ou la couche vecteur contenant les entités à partir desquelles générer chaque planche.

    • L’option checkbox Cacher la couche de couverture permet de cacher les entités de la couche de couverture lors de la génération des pages.

    • Une liste déroulante optionnelle Nom de la page permet de renseigner un nom pour chaque page. Vous pouvez sélectionner un champ de la couche de couverture ou renseigner une expression. Si cette option est vide, QGIS utilise un identifiant interne, selon le filtre et/ou l’ordre de tri appliqué à la couche.

    • La possibilité de checkbox Filtrer avec une expression les entités de la couche de couverture. Si une expression est rentrée, seules les entités satisfaisant la condition seront utilisées. Le bouton à droite permet d’ouvrir un constructeur de requête.

    • La case optionnelle checkbox Ordonner par vous permet de trier les entités de la couche de couverture en utilisant un champ de la couche de couverture ou une expression. L’ordre de tri (ascendant ou descendant) est spécifié par le bouton Ordre du tri représenté par une flèche ascendante ou descendante.

  • Sortie - c’est ici que la sortie de l’atlas peut être configurée :

    • L”Expression du fichier en sortie est utilisé pour générer un nom de fichier pour chaque planche de l’atlas. Il est basé sur une expression. Il n’est utile que lorsque plusieurs fichiers sont produits.

    • L”checkbox Export d’un seul fichier (si possible) vous permet de forcer la création d’un unique fichier quand le format de sortie choisi le permet (par exemple le PDF). Si cette case est cochée, l”Expression du fichier en sortie n’est pas prise en compte.

    • Une liste déroulante Format d’export de l’image pour sélectionner le format de sortie lors de l’utilisation de saveMapAsImage Exporter l’atlas en tant qu’images….

19.3.5.1. Carte contrôlée par l’atlas

L’utilisation la plus courante de l’atlas est avec l’objet carte, zoomant sur l’entité d’atlas actuelle, au fur et à mesure que l’itération passe sur la couche de couverture. Ce comportement est défini dans les propriétés de groupe Contrôlé par l’atlas de l’objet carte. Voir Contrôlé par l’atlas pour les différents paramètres que vous pouvez appliquer sur l’objet carte.

19.3.5.2. Personnalisez les étiquettes avec les expressions

Pour adapter les étiquettes aux entités utilisées par l’atlas, vous pouvez utiliser des expressions. Faites attention à bien insérer l’expression (incluant les fonctions, les champs ou les variables) entre [% et %] (voir Étiquette pour plus de détails).

Par exemple, pour une couche de ville ayant les champs CITY_NAME et ZIPCODE, vous pouvez insérer ceci :

The area of [% concat( upper(CITY_NAME), ',', ZIPCODE, ' is ',
format_number($area/1000000, 2) ) %] km2

ou une autre combinaison:

The area of [% upper(CITY_NAME)%],[%ZIPCODE%] is
[%format_number($area/1000000,2) %] km2

L’information [% concat( upper(CITY_NAME), ',', ZIPCODE, ' is ', format_number($area/1000000, 2) ) %] est une expression utilisée dans la zone de texte. Les deux expressions produiront ce type d’étiquette dans l’atlas :

The area of PARIS,75001 is 1.94 km2

19.3.5.3. Explorer les boutons de valeurs définies par les données avec l’atlas

Il y a plusieurs endroits où vous pouvez utiliser un bouton dataDefine Valeur définie par des données pour définir le paramètre sélectionné. Ces options sont particulièrement utiles avec la Génération d’Atlas. Voir Valeurs définies par des données pour plus de détails.

Pour les exemples suivants, la couche Regions de l’échantillon de données QGIS est utilisée et sélectionnée comme Couche couverture pour la génération de l’atlas. Nous supposons qu’il s’agit d’une mise en page unique contenant un objet carte et un objet étiquette.

Lorsque la hauteur (nord-sud) d’une étendue de région est supérieure à sa largeur (est-ouest), vous devez utiliser Portrait au lieu de Paysage pour optimiser l’utilisation du papier. Avec un clic sur dataDefine valeur défninie par les données, vous pouvez définir dynamiquement l’orientation du papier.

Faites un clic droit sur la page et sélectionnez Propriétés de la page pour ouvrir le panneau. Nous voulons définir l’orientation dynamiquement, en utilisant une expression en fonction de la géométrie de la région, donc appuyez sur la touche dataDefine Orientation, sélectionnez Éditer… pour ouvrir la fenêtre du Constructeur de chaînes d’expression et entrez l’expression suivante :

CASE WHEN bounds_width(@atlas_geometry) > bounds_height(@atlas_geometry)
THEN 'Landscape' ELSE 'Portrait' END

Maintenant, si vous prévisualisez l’atlas, le papier s’oriente automatiquement, mais le placement des objets peut ne pas être idéal. Pour chaque région, vous devez également repositionner l’emplacement des objets de mise en page. Pour l’objet carte, vous pouvez utiliser le bouton dataDefine sur la Largeur pour le rendre dynamique en utilisant l’expression suivante :

@layout_pagewidth - 20

De même, utilisez le bouton dataDefine sur la Hauteur pour fournir l’expression suivante afin de limiter la taille de l’objet carte :

@layout_pageheight - 20

Pour vous assurer que l’objet carte est centré dans la page, définissez son Point de référence sur le bouton radio en haut à gauche et entrez 10 pour ses positions X et Y.

Ajoutons un titre au-dessus de la carte au centre de la page. Sélectionnez l’objet étiquette et définissez l’alignement horizontal sur radioButtonOn Centré. Ensuite, déplacez l’étiquette à la bonne position, choisissez le bouton du milieu pour Point de référence, et fournissez l’expression suivante pour le champ X :

@layout_pagewidth / 2

Pour tous les autres objets de mise en page, vous pouvez définir la position de manière similaire afin qu’ils soient correctement positionnés à la fois pour le portrait et le paysage. Vous pouvez également faire plus de réglages tels que la personnalisation du titre avec des attributs de l’entité (voir Personnalisez les étiquettes avec les expressions), la modification des images, le redimensionnement du nombre de colonnes de légende en fonction de l’orientation de la page…

Les informations fournies ici sont une mise à jour de l’excellent blog (en anglais et portugais) sur les options de Valeurs définies par des données Multiple_format_map_series_using_QGIS_2.6 .

L’utilisation d’une image dynamique est un autre exemple d’utilisation des boutons de surcharge définis par les données. Pour les exemples suivants, nous utilisons une couche GeoPackage contenant un champ BLOB appelé logo avec le type de champ binaire (voir Créer une nouvelle couche GeoPackage). Pour chaque entité, une image différente est définie de sorte que l’atlas peut être répété comme décrit dans Prévisualiser et générer un atlas. Tout ce que vous avez à faire est d’ajouter une image dans la mise en page d’impression et d’aller à ses propriétés Propriétés de l’élément dans le contexte de l’atlas. Là, vous trouverez un bouton de surcharge défini par les données dans la section Source de l’Image de Propriétés principales.

../../../_images/picture_image_source.png

Dans la fenêtre suivante, choisissez Éditer afin que la fenêtre du Constructeur d’expression s’ouvre. Dans la section Champs et valeurs, vous trouverez le champ BLOB qui a été défini dans la couche GeoPackage. Double-cliquez sur le nom du champ logo et cliquez sur OK.

../../../_images/expression_blob_picture_atlas.png

L’atlas itère sur les entrées du champ BLOB à condition que vous choisissiez la couche GeoPackage comme Couche couverture (d’autres instructions se trouvent dans Prévisualiser et générer un atlas).

Ce ne sont là que deux exemples de la manière dont vous pouvez utiliser certains paramètres avancés avec l’atlas.

19.3.5.4. Prévisualiser et générer un atlas

../../../_images/atlas_preview.png

Fig. 19.67 Barre d’outils d’aperçu de l’atlas

Une fois les paramètres de l’atlas configurés et les objets de la mise en page (carte, table, image…) liés à celui-ci, vous pouvez créer un aperçu de toutes les pages en cliquant sur Atlas ► Aperçu de l’Atlas ou sur l’icône atlas Aperçu de l’Atlas. Vous pouvez utiliser les flèches pour naviguer à travers les entités :

  • atlasFirst Première entité

  • atlasPrev Entité précédente

  • atlasNext Entité suivante

  • atlasLast Dernière entité

Vous pouvez également utiliser la liste déroulante pour sélectionner et prévisualiser une entité spécifique. La liste déroulante affiche le nom des entités selon l’expression paramétrée dans l’option Nom de page de l’atlas.

En ce qui concerne les mises en page simples, un atlas peut être généré de différentes manières (voir Exporter des cartes pour plus d’informations - utilisez simplement les outils du menu ou de la barre d’outils Atlas au lieu du menu Mise en page.

Cela signifie que vous pouvez imprimer directement vos mises en page avec Atlas ► Imprimer l’Atlas. Vous pouvez également créer un PDF en utilisant Atlas ► Exporter l’Atlas en PDF… : l’utilisateur devra indiquer un répertoire pour enregistrer tous les fichiers PDF, sauf si l’option checkbox Export d’un seul fichier (si possible) a été sélectionnée. Dans ce cas, un nom de fichier vous sera demandé.

Avec l’outil Atlas ► Exporter l’Atlas en tant qu’Images… ou Atlas ► Exporter l’Atlas au format SVG…, vous devrez choisir un répertoire. Chaque page de chaque entité d’atlas est exportée dans un fichier d’image ou SVG tel que défini dans le panneau Atlas.

Note

Avec une sortie multi-page, un atlas se comporte comme une mise en page dans la mesure où seule la page qui contient la Paramètres généraux obtiendra un fichier world (pour chaque sortie d’entité).

Astuce

Imprimer une entité spécifique de l’atlas

Si vous souhaitez imprimer ou exporter la mise en page pour une seule entité de l’atlas, lancez simplement l’aperçu, sélectionner l’entité désirée dans la liste déroulante et cliquez sur le menu Mise en page ► Imprimer… (ou Exporter… pour n’importe quel format de fichier pris en charge).

19.3.5.5. Utiliser les relations définies par le projet pour la création d’atlas

Pour les utilisateurs ayant des connaissances HTML et Javascript, il est possible d’utiliser des objets GeoJSON et d’utiliser les relations définies dans le projet QGIS. La différence entre cette approche et l’utilisation d’expressions directement insérées dans le HTML est qu’elle vous donne une entité GeoJSON complète et non structurée avec laquelle travailler. Cela signifie que vous pouvez utiliser les bibliothèques et fonctions Javascript existantes qui fonctionnent sur les représentations d’entités GeoJSON.

Le code suivant inclut toutes les entités enfants associées via la relation définie. En utilisant la fonction JavaScript setFeature, cela vous permet de créer du HTML flexible qui représente les relations dans le format que vous souhaitez (listes, tableaux, etc.). Dans l’exemple de code, nous créons une liste à puces dynamique des entités enfants associées.

// Declare the two HTML div elements we will use for the parent feature id
// and information about the children
<div id="parent"></div>
<div id="my_children"></div>

<script type="text/javascript">
   function setFeature(feature)
   {
     // Show the parent feature's identifier (using its "ID" field)
     document.getElementById('parent').innerHTML = feature.properties.ID;
     //clear the existing relation contents
     document.getElementById('my_children').innerHTML = '';
     feature.properties.my_relation.forEach(function(child_feature) {
     // for each related child feature, create a list element
     // with the feature's name (using its "NAME" field)
       var node = document.createElement("li");
       node.appendChild(document.createTextNode(child_feature.NAME));
       document.getElementById('my_children').appendChild(node);
     });
   }
</script>

Lors de la création de l’atlas, il y aura une itération sur la couche de couverture contenant les entités parentes. Sur chaque page, vous verrez une liste à puces des entités enfants associées suivant l’identifiant du parent.