#1 Tue 18 October 2022 13:41
- Jeremy80
- Juste Inscrit !
- Date d'inscription: 18 Oct 2022
- Messages: 1
QGIS: Cartes par variable
Bonjour,
J’ai une couche avec de nombreux champs (Note1, Note2, …).
Entité / Note1 /Note2 /Note3
A / 3 / 2 / 1
B / 2 / 1 / 1
Je souhaite sortir une carte pour chaque champ. La symbologie à utiliser est la même (catégorisé 0 à 3).
J’ai créé une couche de couverture sans géométrie avec la liste de mes champs (Note1, Note2, …) et un libellé correspondant.
ListeNote / Lb_Note
Note1 / Nom du paramètre 1
Note2 / Nom du paramètre 2
Plutôt que de changer la Valeur de symbologie et le titre de la carte manuellement, je pensais utiliser un atlas.
Mais comment changer la symbologie ?
Quelques pistes de réflexion :
A/ Transformer la table en liste = dupliquer toutes les entités
Entité / ValeurNote / TypeNote
A / 3 / Note1
A / 2 / Note2
B / 2 / Note1
B / 1 / Note2
Ensuite, dans Ensemble de règles, je pourrais mettre un filtre
Symbole0 : "TypeNote" = @atlas_pagename AND "ValeurNote" = 0
Symbole1 : "TypeNote" = @atlas_pagename AND "ValeurNote" = 1
...
ou
Symbole0 : "TypeNote" = attribute( @atlas_feature, 'ListeNoteNote') AND "ValeurNote" = 0
Symbole1 : "TypeNote" = attribute( @atlas_feature, 'ListeNoteNote') AND "ValeurNote" = 1
...
> Cela multiplie énormément les entités
B/ Dupliquer la couche = 1 couche par variable
> Cela revient à tout faire à la main.
C/ Ensemble de règles filtrées
Symbole0 : "Note1" = 0 AND @atlas_pagename = ‘Note1’
Symbole1 : "Note1" = 1 AND @atlas_pagename = ‘Note1’
Symbole0 : "Note2" = 0 AND @atlas_pagename = ‘Note2’
Symbole1 : "Note2" = 1 AND @atlas_pagename = ‘Note2’
…
ou
Symbole0 : ("Note1" = 0 AND @atlas_pagename = ‘Note1’) OR (Symbole0 : "Note2" = 0 AND @atlas_pagename = ‘Note2’) OR ...
Symbole1 : ("Note1" = 1 AND @atlas_pagename = ‘Note1’) OR (Symbole1 : "Note2" = 1 AND @atlas_pagename = ‘Note2’) OR ...
> Long à intégrer ou à écrire
D/ Ce qui me paraitrait “ facile ” ce serait de pouvoir sélectionner la variable selon ma liste de couverture
Symbole0 : CHAMPS(@atlas_pagename) = 0
Symbole1 : CHAMPS(@atlas_pagename) = 0
…
> Je ne trouve pas cette fonction ‘CHAMPS’ qui renverrait un nom de champ à partir de texte (i.e. transformer ‘Note1’ en "Note1")
Quelqu’un a une idée ?
Hors ligne
#2 Fri 26 May 2023 13:03
- luc daniel
- Juste Inscrit !
- Date d'inscription: 9 Oct 2008
- Messages: 4
Re: QGIS: Cartes par variable
Bonjour,
je suis tombé sur votre post en ayant le même besoin
J'ai finalement trouvé la solution avec la fonction eval qui semble marcher :
eval(@atlas_pagename) = 0
Si ça peut servir à d'autres...
Luc
Hors ligne