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é ?

#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

 

Pied de page des forums

Powered by FluxBB