#1 Wed 25 April 2018 14:54
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
QGIS 2.18: Legende multi-champs dans le composeur
Bonjour,
J'ai effectué quelques recherches sur le forum mais je n'ai pas trouvé de réponse satisfaisante à mon problème.
En fait, je souhaiterais afficher plusieurs champs dans la légende. En clair, dans ma table attributaire, il existe, entre autres, un champ "type" et un champ "superficie" calculée. je souhaiterais que la légende reprenne le type avec, entre parenthèses, la superficie. Est-ce possible ?
Pour info, je travaille avec la version 2.18 de QGIS.
Merci par avance pour votre réponse.
Hors ligne
#2 Wed 25 April 2018 16:52
Re: QGIS 2.18: Legende multi-champs dans le composeur
Bonjour,
Si tu veux, tu peux créer un "champ virtuel" depuis la calculatrice de champs, qui sera le résultat de l'expression :
Code:
concat("type", ' (surface = ', $area/10000, ' ha)')
Et c'est ce champ virtuel que tu pourras utiliser en légende ...
(j'ai supposé que tes superficies étaient en ha... à adpater...)
Jean
Dernière modification par tijan (Wed 25 April 2018 16:53)
Hors ligne
#3 Wed 25 April 2018 17:32
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS 2.18: Legende multi-champs dans le composeur
Super ! un tout grand merci
2 petites questions subsidiaires ;-) :
- est-il possible de limiter la surface à 2 décimales ?
- les surfaces calculées avec $area tiennent compte de l'ellipsoide du projet. Hors, je souhaiterais des superficies polygonales horizontales. Je pense qu'il faut plutôt utiliser la fonction "area"mais il y a qqch qui m’échappe dans son paramétrage.
Ces questions sont probablement basiques mais je débute avec QGIS
Hors ligne
#4 Thu 26 April 2018 08:06
Re: QGIS 2.18: Legende multi-champs dans le composeur
Bonjour
- Pour réduire le nombre de décimales : fonction round :
Code:
round($area/10000, 2)
- Pour la question des calculs de surfaces, le mieux serait que tu enregistres ta couche dans un système projeté (métrique) ; pour la métropole, le système Lambert93, dont l'identifiant est EPSG:2154. Évite d'utiliser la reprojection à la volée lorsque tu fais des calculs spatiaux, cela engendre des erreurs.
Jean
Hors ligne
#5 Thu 26 April 2018 09:55
- geomou
- Participant actif
- Date d'inscription: 9 Apr 2012
- Messages: 82
Re: QGIS 2.18: Legende multi-champs dans le composeur
Merci pour ta réponse :-)
Effectivement, j'utilise la projection à la volée car, en Belgique, les données sont disponibles soit dans le système Lambert 72, basé sur l'ellipsoïde de Hayford et de Lambert 2008 basé, lui, sur la GRS80. Quoiqu'il en soit, il s'agit de 2 projections métriques.
C'est pourquoi, je pensais qu'il serait intéressant d'utiliser plutôt la fonction area mais je ne sais pas ce que je dois mettre comme argument. A l'instar de $area, le calcul ne s'appliquerait pas à la totalité des polygones d'une couche ?
Hors ligne
#6 Fri 17 January 2020 10:07
- lchevrier
- Participant occasionnel
- Date d'inscription: 16 Feb 2018
- Messages: 41
Re: QGIS 2.18: Legende multi-champs dans le composeur
Bonjour,
J'essaye d'afficher la surface d'une couche sur ma légende en utilisant votre expression, pour autant la légende m'affiche la surface de ma couche de couverture de l'atlas
exemple :
Couche qui commande l'atlas :
Commune.shp
Surface agricole.shp
Je souhaite afficher la surface en ha arrondi à 2 décimal des surfaces agricoles or QGIS m'affiche la surface de la commune.
Merci de votre aide,
Léo
Hors ligne
#7 Fri 17 January 2020 12:56
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3944
Re: QGIS 2.18: Legende multi-champs dans le composeur
Bonjour,
Version 3.10 mini: voir l'outil expression https://docs.qgis.org/testing/en/docs/u … gend-items (on peut utiliser des formules pour chaque entrée de la légende - il se peut que la doc ne soit pas comme à l'écran car il me semble que l’icône a un peu bougé depuis 3.10.0)
Hors ligne
#8 Fri 06 March 2020 21:44
- alexbnmr
- Juste Inscrit !
- Date d'inscription: 6 Mar 2020
- Messages: 1
Re: QGIS 2.18: Legende multi-champs dans le composeur
Bonjour,
Je rebondis sur ton message. Je ne suis pas un expert en codage, et j'ai essayé de faire apparaître une surface en face de chaque item de la légende d'une couche dans le composeur, avec la version 3.10, mais mes tentatives n'ont pas été couronnées de succès. Pour le moment j'utilise un cadre html que je positionne manuellement en parallèle de ma légende, mais ça manque encore énormément de souplesse malgré le fait que ce soit déjà un gros progrès de pouvoir le mettre à jour automatiquement quand on modifie la géométrie des entités.
Aurais-tu ou quelqu'un aurait-il la solution avec le code qui va bien ? Ca me paraît tellement basique de pouvoir afficher un récapitulatif qui aille au-delà du simple décompte du nombre d'entités pour chaque item (surface, longueur, résultat du calcul sur un champ de table...).
Bonjour,
Version 3.10 mini: voir l'outil expression https://docs.qgis.org/testing/en/docs/u … gend-items (on peut utiliser des formules pour chaque entrée de la légende - il se peut que la doc ne soit pas comme à l'écran car il me semble que l’icône a un peu bougé depuis 3.10.0)
Hors ligne