#1 Fri 05 January 2024 21:21
- FSandrine
- Juste Inscrit !
- Date d'inscription: 5 Jan 2024
- Messages: 1
QGIS: Tout Etiqueter sauf UN
Bonjour,
Je me permets de rouvrir un nouveau sujet alors que cette question a déjà été traitée en 2017 dans un autre post mais j'ai toujours un problème :
j'ai une couche troncon_de_route sur laquelle je retrouve, notamment, les voies par type (autoroutes, grands axes, lieux-dits, voies importantes, voies principales, etc...) et je voudrais étiqueter, par commune, toutes mes voies SAUF les lieux-dits. J'ai donc écris cette expression dans mon filtre d'étiquette :
CASE WHEN "TYPE_VOIE" = 'Lieux-dits' and "CODCOM" = 'XXX'
THEN NULL
ELSE "TYPE_VOIE" END
QGIS me dit que l'expression est valide mais ça ne marche pas, mes lieux-dits sont toujours nommés et je n'ai vraiment, mais alors vraiment pas envie de devoir les enlever à la main..
Est-ce que vous auriez une piste pour régler ce petit problème, s'il vous plaît ?
Merci beaucoup à tous ceux qui prendront le temps de me répondre!
Hors ligne
#2 Sat 06 January 2024 09:00
- dave31
- Participant actif
- Date d'inscription: 17 Feb 2017
- Messages: 82
Re: QGIS: Tout Etiqueter sauf UN
Bonjour,
Peut-être
Code:
CASE WHEN "TYPE_VOIE" is not 'Lieux-dits' and "CODCOM" is not 'XXX' THEN "TYPE_VOIE" END
Hors ligne
#3 Sat 06 January 2024 12:39
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 427
Re: QGIS: Tout Etiqueter sauf UN
Bonjour,
La condition du CASE (le WHEN) parait correcte avec l'opérateur de comparaison '=' car ce sont des chaines de texte.
Cependant deux remarques :
- pourquoi mettre NULL dans le THEN ? J'aurais plutôt mis '' (chaine vide) si cette expression est utilisée dans le champ du libellé à afficher (champ Valeur dans les propriétés d'étiquetage de la couche)
- A quel endroit est utilisée cette expression ? Dans le libellé à afficher ou alors tu es dans le mode d'étiquetage basé sur des règles et c'est une expression de filtrage ? Si c'est ce dernier cas, il faut que ton expression retourne vrai ou faux, dans ton cas vrai si TYPE_VOIE est différent de 'Lieux-dits' et CODCOM est égal à 'XXX'. Ce qui donnerait l'expression de filtre ci-dessous :
Code:
"TYPE_VOIE" <> 'Lieux-dits' and "CODCOM" = 'XXX'
Avec <> l'opérateur de comparaison qui teste si les deux valeurs sont différentes.
Hors ligne