#1 Fri 26 June 2015 06:54
- Alban>Joly
- Juste Inscrit !
- Date d'inscription: 13 May 2015
- Messages: 3
QGIS : plusieurs tyles selon les champs
Bonjour,
Je suis dans une impasse depuis quelques heures.
J'ai une couche de polyligne représentant la végétation des berges.
sur cette couche j'aimerais appliquer des styles selon les valeurs dans les champs.
j'ai 3 champs avec des valeurs différentes: nature (arboree, arbustif, herbace) , presence (continu, discontinu, eparse) et largeur (5, 5-10, 10)
est-il possible de creer un style ou un ensemble de règle de style qui me permettrait de caler ce style de la couche selon les 3 valeurs des 3 champs?
merci
Alban
Hors ligne
#2 Fri 26 June 2015 09:19
- Benoit91
- Participant assidu
- Date d'inscription: 2 Oct 2008
- Messages: 263
Re: QGIS : plusieurs tyles selon les champs
Bonjour
Oui c'est possible avec une expresion de type CASE WHEN ....THEN END
Exemple
Code:
CASE WHEN "nature"='arboree' AND "presence"='continu' AND "largeur"='5' THEN 'valeur' WHEN "nature"='arboree' AND "presence"='discontinu' AND "largeur"='10' THEN 'valeur2' .. END
Répéter autant de fois la clause WHEN que vous voulez de valeurs.
Sinon, plus simple, vous pouvez ajouter un nouveau champ à votre table qui permettra de concaténer vos 3 champs. Vous pourrez ensuite faire un style catégorisé.
Code:
"nature" || "présence" || "largeur"
Cordialement.
Dernière modification par Benoit91 (Fri 26 June 2015 09:20)
Hors ligne
#3 Fri 26 June 2015 11:10
Re: QGIS : plusieurs tyles selon les champs
Bonjour,
un poil plus simple, l'analyse par règles, qui permet de reprendre l'approche conditionnelle de Benoit91, sans taper la partie CASE WHEN THEN END
chaque règle aura un filtre du type
Code:
"nature"='arboree' AND "presence"='continu' AND "largeur"='5'
et un alias.
En bonus, un outil vous permet de vérifier qu'il n'y a pas de doubles comptes dans vos règles, ce qui est un piège fréquent, et on peut ajouter la classe "Else" qui représente tous les objets non concernés par les classes précédentes.
Bonne journée
Hors ligne