#1 Wed 04 May 2016 13:37
- Olivier69
- Participant actif
- Date d'inscription: 17 Mar 2016
- Messages: 61
QGIS 2.14.1: Problème avec les étiquettes
Bonjour,
Voici le topo : j'ai un fichier shp avec les parcelles agricoles et les cultures présentes dessus, j'ai créer des camemberts pour chaque parcelle qui permettent de voir la ou les cultures présent sur la parcelle en fonction de la surface déclarée par l'exploitant. Je cherche à mettre des indiquer les valeurs des parts des camemberts mais je n'y arrive pas.
J'ai essayé de mettre des étiquettes qui indique la surface de culture sur chaque parcelle mais en marquant pas celle non présente, par ex sur une parcelle j'ai 1 Ha de Céréales et 2Ha de prairies je veux qu'il apparait :
Céréales : 1
Prairie : 2 et non comme actuellement
Céréales 1
Prairie : 2
Éléments naturels : 0
Éléments artificiels : 0
... (encore 5 lignes comme ça)
Pour une question de visibilité je voudrais une ligne par type de culture.
J'ai essayé aussi un système de règle qui fonctionne quand il y a qu'une seule culture sur la parcelle mais dès qu'il y en a plusieurs les étiquettes de chevauchent et c'est illisible.
Comment pourrais-je régler mon problème ?
Merci d'avance
Hors ligne
#2 Wed 04 May 2016 14:14
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3945
Re: QGIS 2.14.1: Problème avec les étiquettes
Bonjour,
Je pars de l'hypothèse que votre table est constituée de colonnes nommées cereales, prairie, elt_naturel ... On peut obtenir ce que vous cherchez avec un case when.
Code:
concat( -- on va mettre bout à bout des informations CASE WHEN cereales<>0 then concat('Céréales : ', cereales, '/n') END, -- lorsqu'il y a des céréales, construis cette étiquette en combinant le texte saisie et la valeur du champ plus un saut de ligne ('/n'). Si valeur nulle, tu ne fais rien CASE WHEN prairie<>0 then concat('Prairie: ', prairie, '/n') END, --idem pour la prairie ... -- ainsi de suite pour les autres (attention à ne pas mettre de virgule pour la dernière colonne ni de saut de ligne) ) -- et on ferme la parenthèse ouverte au début
Hors ligne
#3 Wed 04 May 2016 14:27
- Olivier69
- Participant actif
- Date d'inscription: 17 Mar 2016
- Messages: 61
Re: QGIS 2.14.1: Problème avec les étiquettes
Merci ça fonctionne ! J'étais parti sur de bonne base j'avais ça comme code :
case
when "S_Céréal" > 0 then concat('Céréales : ', "S_Céréal" )
when "S_Prairie" >0 then concat('Prairie : ',"S_Prairie")
when "S_Patates" >0 then concat('Patates : ',"S_Patates")
when "S_Mais">0 then concat('Mais : ',"S_Mais" )
when "S_Elements" >0 then concat('Elements naturels : ',"S_Elements")
when "S_Artifici" >0 then concat('Elements artificiels : ',"S_Artifici" )
when"S_Maraicha" >0 then concat('Maraichage : ',"S_Maraicha")
when "S_Pas d'ac" >0 then concat('Pas d activites : ', "S_Pas d'ac")
when"S_Protéag" >0 then concat('Protéagineux fourragers : ',"S_Protéag")
when "S_Vergers" >0 then concat('Vergers : ',"S_Vergers")
Else null
end
Mais je ne savais pas où mettre '/n'. L'idée d'un concat de tout mon code est vraiment pas mal ! Merci !
Hors ligne