Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#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

tijan
Participant occasionnel
Date d'inscription: 26 May 2009
Messages: 26
Site web

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

tijan
Participant occasionnel
Date d'inscription: 26 May 2009
Messages: 26
Site web

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: 3948

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...).

SANTANNA a écrit:

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

 

Pied de page des forums

Powered by FluxBB