#1 Tue 12 January 2021 11:24
- Benoît595
- Participant actif
- Lieu: Douai
- Date d'inscription: 17 Feb 2020
- Messages: 52
QGIS 3.14: expression aggregate
bonjour,
Je suis sous Qgis 3.14, je cherche à utiliser l'expression ci dessous dans la calculatrice de champ pour remplir un champ texte. L'objectif est de remplir le champ d'une couche de polygone qui recouvre plusieurs parcelles avec la liste des parcelles situées à l'intérieur.
aggregate('couche_polygone','array_agg', "parcelle"), filter:=intersects(centroid(geometry(@parent)), $geometry))
si dans la calculatrice de champ j'ai bien un aperçu du résultat qui semble correct, l'exécution renvoie un résultat null
où est mon erreur?
merci d'avance
Hors ligne
#2 Tue 12 January 2021 13:38
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 722
Re: QGIS 3.14: expression aggregate
Bonjour,
quel type de champs avez-vous choisi de créer ?
Je pense que le mieux serait d'utiliser un champs string et d'utiliser la fonction array_to_string
Hors ligne
#3 Tue 12 January 2021 15:02
- Benoît595
- Participant actif
- Lieu: Douai
- Date d'inscription: 17 Feb 2020
- Messages: 52
Re: QGIS 3.14: expression aggregate
merci pour l'aide, j'essayais de créer un champ texte et array_to_string manquait dans mon expression. Elle ne répond cependant pas complètement à mon objectif
Hors ligne
#4 Tue 12 January 2021 15:06
- Benoît595
- Participant actif
- Lieu: Douai
- Date d'inscription: 17 Feb 2020
- Messages: 52
Re: QGIS 3.14: expression aggregate
j'avais inversé deux éléments, voici l'expression qui me convient:
array_to_string(aggregate('couche_polygone','array_agg', "parcelle", filter:=intersects(geometry(@parent), centroid($geometry))),' ; ','')
merci beaucoup
Hors ligne
#5 Tue 12 January 2021 15:13
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3807
Re: QGIS 3.14: expression aggregate
Bonjour,
La parenthèse après "parcelle" est une erreur de saisie?
array_agg renvoie un array donc vous ne pourrez pas le stocker dans un champ texte, sans conversion préalable, comme suggéré par JD.
Pourquoi pas juste 'concatenate' comme opérateur? Ça évite cette double "écriture" (vers array puis vers texte)
Hors ligne
#6 Tue 12 January 2021 16:40
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 722
Re: QGIS 3.14: expression aggregate
'concatenate'
C'est effectivement la solution optimale dans ce cas-ci.
Hors ligne
#7 Wed 13 January 2021 09:40
- Benoît595
- Participant actif
- Lieu: Douai
- Date d'inscription: 17 Feb 2020
- Messages: 52
Re: QGIS 3.14: expression aggregate
merci pour votre aide.
Je ne vois pas comment utiliser concatenate ici
Hors ligne
#9 Wed 13 January 2021 11:49
- Benoît595
- Participant actif
- Lieu: Douai
- Date d'inscription: 17 Feb 2020
- Messages: 52
Re: QGIS 3.14: expression aggregate
Bonjour,
merci pour la précision.
L'expression est donc bien plus simple, fonctionne très bien et donne ceci :
aggregate('couche_polygone','concatenate', "parcelle", filter:=intersects(geometry(@parent), centroid($geometry)),concatenator:=' ; ')
Merci beaucoup pour l'aide!
Hors ligne
#10 Wed 13 January 2021 14:41
- Benoît595
- Participant actif
- Lieu: Douai
- Date d'inscription: 17 Feb 2020
- Messages: 52
Re: QGIS 3.14: expression aggregate
cette expression fonctionne aussi pour l'intersection de 2 polygones :
aggregate('couche_polygone','concatenate', "parcelle", filter:=intersects(geometry(@parent), $geometry),concatenator:=' ; ')
C'est vraiment très pratique
Dernière modification par Benoît595 (Wed 13 January 2021 14:44)
Hors ligne
#11 Tue 16 November 2021 16:43
- Loomis64
- Participant occasionnel
- Date d'inscription: 17 Nov 2017
- Messages: 13
Re: QGIS 3.14: expression aggregate
Bonjour,
J'ai créé une discussion qui concerne ce sujet et je n'ai pas réussi à faire marcher cette commande, en l'adaptant à mon cas.
J'ai une couche 'Commune' , avec un champ "nom". Je veux que lorsque je créé un polygone dans ma couche 'Projet', mon champ 'ville' se remplisse automatiquement en fonction de la position du polygone dans l'espace et donc de la ville. Ce polygone sera toujours dans un polygone d'une ville, jamais à cheval sur deux villes.
Merci par avance !
Hors ligne
#12 Wed 17 November 2021 18:32
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3807
Re: QGIS 3.14: expression aggregate
Bonjour,
Veuillez indiquez la formule utilisée, autrement difficile de voir où votre mise en application coince.
Hors ligne