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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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: 3940

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

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

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

 

Pied de page des forums

Powered by FluxBB