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 Wed 28 July 2021 15:28

Baptiste.Pignol
Participant occasionnel
Date d'inscription: 17 May 2021
Messages: 16

QGIS: probl sur la fonction aggregate

Bonjour,

Je veux tout simplement automatiser un remplissage de de champ dans une couche en fonction d'une autre couche.

Pour faire simple j'ai une couche polyligne avec un champ "DIAMETRE" et j'ai une couche point avec un champ "DIAMETRE" aussi.

Le champ diamètre des polylignes est remplis avec des nombres et je veux donc que les points sur les polylignes prennent la même valeur dans le champs diamètre.

J'utilise donc la formule suivant dans la calculatrice de champ de ma couche point : aggregate('polyligne','concatenate_unique',"DIAMETRE", filter:=intersects(geometry(@parent), $geometry)).

Mais le résultat est le suivant : Erreur d'évaluation: Impossible de calculer l’agrégat pour : DIAMETRE.

Y a t'il quelqu'un pour m'aider.

Merci.

Hors ligne

 

#2 Wed 28 July 2021 19:06

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3947

Re: QGIS: probl sur la fonction aggregate

Bonjour,
Il me semble que concatenate* ne prend que du texte. Essayez donc avec

Code:

aggregate('polyligne','concatenate_unique',to_string("DIAMETRE"), filter:=intersects(geometry(@parent), $geometry))

Hors ligne

 

#3 Thu 29 July 2021 08:49

Baptiste.Pignol
Participant occasionnel
Date d'inscription: 17 May 2021
Messages: 16

Re: QGIS: probl sur la fonction aggregate

SANTANNA a écrit:

Bonjour,
Il me semble que concatenate* ne prend que du texte. Essayez donc avec

Code:

aggregate('polyligne','concatenate_unique',to_string("DIAMETRE"), filter:=intersects(geometry(@parent), $geometry))


Merci ça marche, sauf que certaines entités de sont pas complétées, et sa me le fait aussi avec un autre fonction qui rappelle l'identifiant de la polyligne :
aggregate('polyligne','concatenate_unique', "ID" +';', filter:=intersects(geometry(@parent), $geometry)).

Est-ce le 'intersects' qui prend pas les bonnes géométries ?

Hors ligne

 

#4 Thu 29 July 2021 08:59

Baptiste.Pignol
Participant occasionnel
Date d'inscription: 17 May 2021
Messages: 16

Re: QGIS: probl sur la fonction aggregate

Au final, j'ai trouvé mon problème, certains points sont considérés comme n'étant pas sur les lignes, il faut que je déplace les lignes, et les remette au même endroit.

Hors ligne

 

#5 Thu 29 July 2021 10:37

Baptiste.Pignol
Participant occasionnel
Date d'inscription: 17 May 2021
Messages: 16

Re: QGIS: probl sur la fonction aggregate

J'ai un autre petit problème, par moment les entités point sont sur les extrémités de plusieurs polyligne, j'ai donc plusieurs diamètre qui s'affiche.
Est t'il possible de rajouter une fonction dans la formule pour que le champ ne prenne que le plus petit diamètre disponible : exemple : '6325' ->> '25' ou '11032' ->> '32'
?

Pour rappel, la formule est : aggregate('polyligne','concatenate_unique',to_string("DIAMETRE"), filter:=intersects(geometry(@parent), $geometry))

Hors ligne

 

#6 Thu 29 July 2021 10:52

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3947

Re: QGIS: probl sur la fonction aggregate

Bonjour,

Au final, j'ai trouvé mon problème, certains points sont considérés comme n'étant pas sur les lignes, il faut que je déplace les lignes, et les remette au même endroit.


Si vous fouillez un peu dans les discussions sur le forum, vous verrez que dans les intersections avec points les gens suggèrent généralement d'utiliser buffer ($geometry, unepetitedistancedetolerance)

Est t'il possible de rajouter une fonction dans la formule pour que le champ ne prenne que le plus petit diamètre disponible : exemple : '6325' ->> '25' ou '11032' ->> '32'
?


Voir les options de la fonction aggregate

Hors ligne

 

#7 Thu 29 July 2021 11:23

Baptiste.Pignol
Participant occasionnel
Date d'inscription: 17 May 2021
Messages: 16

Re: QGIS: probl sur la fonction aggregate

SANTANNA a écrit:

Bonjour,

Au final, j'ai trouvé mon problème, certains points sont considérés comme n'étant pas sur les lignes, il faut que je déplace les lignes, et les remette au même endroit.


Si vous fouillez un peu dans les discussions sur le forum, vous verrez que dans les intersections avec points les gens suggèrent généralement d'utiliser buffer ($geometry, unepetitedistancedetolerance)

Est t'il possible de rajouter une fonction dans la formule pour que le champ ne prenne que le plus petit diamètre disponible : exemple : '6325' ->> '25' ou '11032' ->> '32'
?


Voir les options de la fonction aggregate


Merci, tout marche comme une montre, en remplaçant 'concatenate_unique' par 'min', impeccable !!!

Hors ligne

 

Pied de page des forums

Powered by FluxBB