#1 Wed 16 January 2019 09:55
- Nicolas38
- Participant occasionnel
- Date d'inscription: 25 Oct 2017
- Messages: 13
QGIS: Taille de page dynamique dans ATLAS
Bonjour à tous,
Je réalise une étude sur 15 communes et je souhaite effectuer une carte par commune pour différentes représentations. Donc au final si je dois passer par des composeurs classiques je vais me retrouver avec une centaine de cartes, donc ce sera ingérable.
Je me penche donc sur l'outil ATLAS dans le composeur.
Je crée donc un atlas avec comme couche de couverture mes limites communales.
Le soucis que j'ai c'est que je dois imprimer ces plans sur un format de papier au traceur (914*3000 max), et que toutes mes communes n'ont pas la même taille ou configuration (portait ou paysage).
Je souhaite avoir une échelle fixe (5000 par exemple).
Quand je crée mon format de papier (914*3000) puis mon ATLAS à échelle fixe, le 914mm n'est parfois pas suffisant (une partie du territoire communal est tronqué, il faudrait alors que la page soit en portrait au lieu de paysage) ou le 3000mm en largeur est trop large (perte de papier à l'impression du coup).
Est-ce possible de réaliser une taille de page "dynamique", permettant d'adapter la taille de page à la taille de la commune avec une page de 914*3000 ou 3000*914 max, le tout avec une échelle fixe ?
J'ai essayé la solution suivante : forcer la taille de la page avec l'expression x_max(@atlas_geometry)-x_min(@atlas_geometry) et y_max(@atlas_geometry)-y_min(@atlas_geometry) et de cocher dans les propriétés de l'atlas échelle fixe (5000). Sans succès, l'échelle bouge.
J'espère avoir été clair et je vous remercie par avance pour vos réponses.
Nico
Hors ligne
#2 Wed 16 January 2019 11:56
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: QGIS: Taille de page dynamique dans ATLAS
Bonjour,
Les dimensions hauteur et largeur de la page de chaque commune doivent être stockées dans des champs de la page d'atlas.
Il suffit ensuite de paramétrer les dimensions du papier en fonction de ces champs (en utilisant la liste déroulante cachée dans un bouton à droite des zones de texte du paramètre).
Testé sur un document d'urbanisme, ça fonctionne très bien au moins dès la 2.10
Renaud Mouche
Hors ligne
#3 Wed 16 January 2019 13:45
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Taille de page dynamique dans ATLAS
Bonjour,
J'ai essayé la solution suivante : forcer la taille de la page avec l'expression x_max(@atlas_geometry)-x_min(@atlas_geometry) et y_max(@atlas_geometry)-y_min(@atlas_geometry)
1/il faudrait que la carte elle-même soit dynamique, en gros modifier l'emprise de l'élément carte selon la taille de la commune, soit appliquer sur la largeur de l'objet carte
Code:
(x_max(@atlas_geometry)- x_min(@atlas_geometry))/5 +20
Le "/5", c'est pour passer de mon unité de carte (m) à l'unité de papier (mm) à l'échelle 1/5000, le "+20" ajoute une marge de 10mm à droite et à gauche de la commune en x
Faire la même chose en y pour la hauteur.
2/Bloquer l'échelle de l'objet carte à 5000: perso j'ouvre la fenêtre d'expression de l'échelle et je tape 5000 dedans. Peu importe l'option sélectionnée dans "Controlé par l'atlas.
3/Ensuite refaire la même chose pour les dimensions de la page, avec des marges plus conséquentes.
Résultat: quand vous passez d'une commune à l'autre, la carte devrait se redimensionner automatiquement pour que l'entité apparaisse au 1/5000 et la page en fait de même pour contenir l'objet carte. On peut vérifier cela en ajoutant une échelle graphique: elle ne devrait pas bouger.
PS: A noter que je n'ai ni ajouté de contrainte de format de page max (assurez-vous que votre plus grosse entité fasse moins de 3000mm au 1/5000), ni modifié l'orientation (est-ce vraiment nécessaire celle-là? L'impression s'ajustera à l'orientation du papier, je pense.)
PS2: Il faudra aussi configurer le positionnement des éléments de décoration de la carte (légende, échelle, titre...) selon leur positionnement sur le cartouche
Hors ligne
#4 Wed 16 January 2019 17:41
- Nicolas38
- Participant occasionnel
- Date d'inscription: 25 Oct 2017
- Messages: 13
Re: QGIS: Taille de page dynamique dans ATLAS
Merci pour vos réponses, j'y suis presque arrivé !
Mon cartouche est constitué de nombreux éléments et je souhaiterait modifier l'emplacement et la transparence de tous en même temps ...
C'est impossible quand je les sélectionne tous ! Avez-vous une idée ?
Merci.
Hors ligne
#5 Thu 17 January 2019 09:22
- Renaud
- Membre
- Lieu: Ploemeur (56)
- Date d'inscription: 9 Mar 2006
- Messages: 2315
Re: QGIS: Taille de page dynamique dans ATLAS
Bonjour,
Même réponse que pour les dimensions de la page : des champs de la table d'atlas dédiés à la position de chaque élément.
Ça finit par faire une table d'atlas imposante, mais ça permet de contrôler l'intégralité de la page.
A vérifier que la transparence puisse être gérée de la même manière
Renaud Mouche
Hors ligne
#6 Wed 23 January 2019 12:10
- Nicolas38
- Participant occasionnel
- Date d'inscription: 25 Oct 2017
- Messages: 13
Re: QGIS: Taille de page dynamique dans ATLAS
Bonjour,
Merci pour vos réponses, c'est presque bon.
Il me reste juste un problème.
Je force le X et Y dans la position et taille de ma carte via une formule de type if.
Cette formule est bonne et me renvoie le bon résultat, mais le changement de la valeur du X ou Y ne se fait pas automatiquement sur certaines cartes de l'ATLAS.
Quand je clique par exemple sur "Désactiver" puis "Activer" les valeurs dans X "et Y changent bien selon ma formule ou quand je change le point de référence les valeurs X et Y s'actualisent également.
Avez-vous une idée de la raison pour laquelle ces valeurs ne s'actualisent pas automatiquement selon ma formule lorsque je passe d'une carte à l'autre de l'ATLAS ?
Merci par avance pour vos réponses.
Hors ligne
#7 Wed 23 January 2019 13:13
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: Taille de page dynamique dans ATLAS
Bonjour,
Possible de voir la formule?
J'ignore si le souci est identique mais https://issues.qgis.org/issues/18770 renvoie aussi un cas où les positions ne s'actualisent pas automatiquement avec l'entité de l'atlas, selon les fonctions/variables appelées.
Hors ligne
#8 Wed 23 January 2019 13:41
- Nicolas38
- Participant occasionnel
- Date d'inscription: 25 Oct 2017
- Messages: 13
Re: QGIS: Taille de page dynamique dans ATLAS
Voici la formule :
if(
bounds_width($atlasgeometry)>bounds_height($atlasgeometry),
0,
if((bounds_height($atlasgeometry)/5 +20)>914,
((bounds_height($atlasgeometry)/5+20)),
0))
Merci pour le lien, je vais creuser !
Hors ligne
#9 Wed 23 January 2019 14:49
- Nicolas38
- Participant occasionnel
- Date d'inscription: 25 Oct 2017
- Messages: 13
Re: QGIS: Taille de page dynamique dans ATLAS
Je suis passé à la version 3.4.4 et tout fonctionne ... (j'avais la version 2.18.17)
Hors ligne