#1 Thu 01 February 2024 14:01
- Elys
- Participant actif
- Date d'inscription: 1 Mar 2016
- Messages: 54
QGIS: valeur d entite la plus proche par expression
Bonjour,
Je cherche a mettre à jour une couche ponctuelle ("desordres") avec la valeur d'un attribut ("Pt_Num", Integer64) du point le plus proche dans une couche ("PR"). Le but final étant de paramétrer le formulaire avec cette formule comme valeur par défaut pour un projet de saisie terrain Qfield.
J'ai testé la formule suivante qui me donne des valeurs nulles :
Code:
aggregate('PR', 'min', "Pt_Num", closest_point($geometry, geometry(@parent)))
J'ai aussi testé en inversant les deux géométries, ainsi que d'autre valeurs pour l'aggregation (max, mean, concatenate avec to-string() sur Pt_Num etc ...) mais le résultat reste le même.
Je sens que je ne suis pas loin du but mais je ne trouve pas, si vous avez la solution ?
Bonne journée, merci !
Dernière modification par Elys (Thu 01 February 2024 14:29)
Hors ligne
#2 Thu 01 February 2024 15:45
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3944
Re: QGIS: valeur d entite la plus proche par expression
Bonjour,
Le quatrième paramètre de la fonction aggregate, filter, doit renvoyer un booléen (vrai ou faux) pour chaque entité afin de dire si oui ou non celle-ci est à prendre en compte dans l'agrégat. La fonction closest_point renvoie une géométrie ponctuelle, donc pas vraiment ce que aggregate attend.
overlay_nearest pourrait répondre à votre besoin, genre:
Code:
to_int(array_to_string(overlay_nearest('PR', "PT_Num")))
Hors ligne
#3 Thu 01 February 2024 17:04
- Elys
- Participant actif
- Date d'inscription: 1 Mar 2016
- Messages: 54
Re: QGIS: valeur d entite la plus proche par expression
Génial merci ça fonctionne bien !
Bonne journée
Hors ligne