Le blog francophone consacré
aux technologies Esri

Conseils à la carte – Créer des pages dynamiques en filtrant les entités

Depuis la version 10, ArcGIS propose le concept de pages dynamiques pour automatiser la production de séries de cartes basées sur la même mise ne page mais cadrées sur différentes entités d'une même couche (la couche d'indexation). Ces pages sont dynamiques car vous pouvez définir un certain nombre d'éléments (titre, numéro de page, nombre de page total, auteur, date d'impression, …) dont le contenu changera en fonction de la page que l'on affiche. Ces pages dynamiques peuvent ensuite être exportées (en pdf par exemple) ou être agrégées à d'autres pages pour produire un véritable atlas.

Un des besoins souvent rencontré lors de l'utilisation de pages dynamiques c'est de pouvoir filtrer sa carte en affichant uniquement l'entité correspondant à la page courante et ne pas afficher les autres entités de la couche d'indexation. Par exemple, imaginons que vous souhaitiez créer un atlas des structures touristiques avec une page pour chaque commune. Vous ne souhaitez peut être pas afficher l'ensemble des communes sur chaque page mais seulement la commune de la page courante. 

Il existe une solution simple, à l'aide des outils standard d'ArcGIS Desktop, pour réaliser ce genre de filtrage automatique. Je décris ci-dessous la procédure à partir d'un exemple simple d'une série de carte filtrées sur chaque commune de l'Ile de Ré.


Après avoir activé les pages dynamiques et paramétré votre mise en page avec ll'ensemble des éléments dynamiques, vous afficherez les propriétés du bloc de données contenant les couches de votre carte. 

Dans cette boîte de dialogue vous vous placerez sur l'onglet "Bloc de données" et vous choisirez, dans la partie "Options de découpe", l'option "Découper suivant l'étendue de la page dynamique". Cette option permet d'utiliser la géométrie de l'entité d'indexation de chaque page pour découper une ou plusieurs couches de la carte.


Vous cliquerez ensuite sur le bouton "Exclure les couches" afin de définir les couches à découper (ou non).

Vous cocherez alors toutes les couches ne devant pas être découpées par l'entité courante de votre atlas. Vous laisserez uniquement décochée, la couche utilisée pour l'indexation des pages dynamiques (ici les limites des communes).


Après avoir fermé cette boite de dialogue, vous validerez vos paramètres en cliquant sur le bouton "Appliquer". Automatiquement, pour chaque page de votre atlas, vous devez  désormais voir uniquement l'entité courante de votre index toute en voyant l'ensemble des entités pour les autres couches.



Dans cet exemple, on aurait également pu cocher l'ensemble des couches afin de découper l'ensemble de la carte en fonction des limites de la communes courante.


Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

3 comments :

Maude THOLLY a dit…

Merci pour cette astuce. Cependant, peut-on aller plus loin dans l'utilisation des atlas en ayant une légende dynamique ? Dans votre exemple, serait-il possible de n'avoir dans la légende que les éléments présents sur chaque commune (par exemple ne pas avoir dans la légende de Le Bois-Plage-En-Ré tous les symboles roses alors qu'il n'y en a qu'un) ?
Cela est-il envisageable ? Faut-il passer par du python ?

Gaëtan Lavenu a dit…

Bonjour,

En version 10, il faut effectivement passer par un script Python pour réduire la légende aux seuls éléments présents dans l'étendue de la carte. En version 10.1, ce sera en revanche une fontionnalité standard.

Anonyme a dit…

Bonjour !

J'ai le même problème que Maude seulement, je ne sais pas manipuler le langage Python.

Serait-il possible d'avoir le script Python pour afficher dans la légende les objets présents sur la page dynamique ?

Merci