Pages: 1
- Sujet précédent - QGIS: Remplissage auto d'un champ en fonction d'une couche polygone - Sujet suivant
#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: 1088
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: 427
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
Pages: 1
- Sujet précédent - QGIS: Remplissage auto d'un champ en fonction d'une couche polygone - Sujet suivant