Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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: 3799

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: 3799

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

 

Pied de page des forums

Powered by FluxBB