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é ?

#1 Thu 31 August 2023 03:24

Jobs31
Juste Inscrit !
Date d'inscription: 30 Aug 2023
Messages: 1

QGIS: Remplissage auto d'un champ en fonction d'une couche polygone

Bonjour à tous,

Je souhaite, sur une couche de points, qu'un champs se remplisse automatiquement selon la zone géographique sur laquelle il se situe (j'ai une autre couche polygone).

C'est à dire, dans ma couche points j'ai créé un champs "secteur" que j'aimerai voir se remplir en fonction de la zone où il se situe, le nom de la zone étant stocké sur une autre couche polygone nommée "zonage_secteurs" dans le champs 'ref_sect".

j'ai beaucoup cherché et je me suis notamment inspiré de ce sujet :
https://georezo.net/forum/viewtopic.php?id=88000
J'ai essayé les deux formules proposées :
aggregate('zonage_secteurs','concatenate',"REF_SECT",max(area(intersection($geometry, geometry(@parent)))))
aggregate('zonage_secteurs','concatenate',"REF_SECT",intersects($geometry, geometry(@parent)))

Mais aucune ne marche pour moi. Elles me renvoient toutes les deux aucune erreur mais un contenu vide...

Est-ce qu'une personne arriverait à identifier un problème dans mes formules ou alors m'aiguiller vers une meilleure solution ?
En vous remerciant,

Hors ligne

 

#2 Thu 31 August 2023 08:37

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1059

Re: QGIS: Remplissage auto d'un champ en fonction d'une couche polygone

Et en utilisant 'max' au lieu de 'concatenate' ?

Hors ligne

 

#3 Thu 31 August 2023 09:15

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 426

Re: QGIS: Remplissage auto d'un champ en fonction d'une couche polygone

Si tes deux couches sont bien dans le même système de coordonnées (erreur classique) alors la fonction aggregate devrait bien fonctionner :

Code:

aggregate(
 layer:='nom_couche_source',
 aggregate:='concatenate',
 expression:=nom_champ_couche_source,
 filter:=intersects($geometry, geometry(@parent))
)

Donc pour ton cas :

Code:

aggregate(
 layer:='zonage_secteurs',
 aggregate:='concatenate',
 expression:=ref_sect,
 filter:=intersects($geometry, geometry(@parent))
)

Attention il faut mettre des guillemets simples pour les valeurs des arguments layer et aggregate mais pas pour expression.

Hors ligne

 

Pied de page des forums

Powered by FluxBB