Pages: 1
- Sujet précédent - QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate - Sujet suivant
#1 Thu 16 February 2023 10:08
- NMonteix
- Participant occasionnel
- Date d'inscription: 7 Jan 2020
- Messages: 11
QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate
Bonjour,
Je cherche à connaître le nombre de polygones d'une couche A ayant la valeur v dans un champ C qui intersecte une couche B. L'idée est de faire un champ virtuel dans la couche B de manière à ce que la valeur reste en permanence juste.
En suivant les explications très claires de @SANTANNA sur la fonction aggregate dans ce post (https://georezo.net/forum/viewtopic.php?id=117667), j'ai tenté de faire ceci, sans succès:
Code:
aggregate( layer:='couche_A', aggregate:='count', expression:='Champ_C', filter:=intersects($geometry, geometry( get_feature('Couche_A','Champ_C','Valeur_v'))))
Merci pour toute aide...
Hors ligne
#2 Thu 16 February 2023 10:54
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3883
Re: QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate
Bonjour,
Ce doit être (avec guillemets doubles)
Code:
expression:="Champ_C",
Hors ligne
#3 Thu 16 February 2023 11:37
- NMonteix
- Participant occasionnel
- Date d'inscription: 7 Jan 2020
- Messages: 11
Re: QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate
Merci de la réponse, mais en fait, cela ne change rien.
Lorsque je filtre manuellement la couche A, j'obtiens, avec des guillemets, de bons résultats avec cette fonction:
Code:
aggregate( layer:='couche_A', aggregate:='count', expression:='Champ_C', filter:=intersects($geometry, geometry(@parent)) )
L'idée serait de ne pas filtrer manuellement avant pour créer un champ virtuel...
Hors ligne
#4 Thu 16 February 2023 12:10
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3883
Re: QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate
Je crois que vous n'avez pas compris; je vous suggérais de remplacer dans votre exemple de code initial:
Code:
expression:='Champ_C',
par
Code:
expression:="Champ_C",
Ça ne marche pas?
Hors ligne
#5 Thu 16 February 2023 12:15
- NMonteix
- Participant occasionnel
- Date d'inscription: 7 Jan 2020
- Messages: 11
Re: QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate
Non, non, cela ne change rien au résultat (1 pour tous les polygones..)
Hors ligne
#6 Thu 16 February 2023 12:21
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3883
Re: QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate
Désolé, ai pas tout lu. Quid de:
Code:
filter:=intersects($geometry, geometry(@parent)) and "Champ_C"='Valeur_v'
Hors ligne
#7 Thu 16 February 2023 12:28
- NMonteix
- Participant occasionnel
- Date d'inscription: 7 Jan 2020
- Messages: 11
Re: QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate
Effectivement, cela fonctionne. Merci beaucoup...
À l'usage des suivants:
Solution fonctionnelle
Code:
aggregate( layer:='couche_A', aggregate:='count', expression:='Champ_C', filter:=intersects($geometry, geometry(@parent)) and "Champ_C"='Valeur_v' )
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.22: Compte de polygones, filtrage sur fonction aggregate - Sujet suivant