Message posté par : romainbh
----------------------------------------
Bonjour,
Il vous faut une fonction d'agrégat car fondamentalement un polygone de projet pourra
se superposer à plusieurs communes (même si on veillera à ce que ce ne soit pas le cas,
dans la pratique c'est tout à fait possible que ça arrive, d'où la fonction
d'agrégat qui est obligatoire si plusieurs résultats sont possibles).
L'emplacement où saisir la formule que vous donnez est correct :
-----------------
Citation :
propriétés de ma couche Projet > Formulaire d'attributs > champ commune >
Valeur par défaut (expression à inscrire ici et cocher "Appliquer la valeur par
défaut lors de la mise à jour" pour que lorsque je créé mon polygone, mon champ se
remplisse automatiquement du nom de la commune.)
-----------------
À noter que la case "Appliquer...lors de la mise à jour" fait en sorte que la
valeur soit actualisée si vous modifiez votre polygone ou ses attributs.
Code à tester :
-----------------
Code :
array_to_string(overlay_intersects( 'Communes64',nom))
-----------------
Explications :
- overlay_intersects : va récupérer l'attribut nom de la couche Communes64 dans le ou
les polygones intersectés. Renvoie un résultat sous la forme d'une liste (array),
p.ex. ['Ville1','Ville2','Ville3']
- array_to_string : convertit l'array en format texte plus aisément utilisable ->
Ville1,Ville2,Ville3
Limitations : si un de vos polygones Projet se situe en limite de plusieurs polygones,
tous seront pris en compte, ce qui est peu pratique. On peut feinter en appliquant un
tampon négatif sur le polygone du projet pour qu'il ne se situe plus pile sur la
limite. Pour cela, il faut utiliser une fonction d'agrégat un peu plus avancée :
-----------------
Code :
aggregate('Communes64','concatenate',"nom",intersects(buffer($geometry,-0.1),geometry(@parent)),'
- ')
-----------------
Explications :
- aggregate : fonction d'agrégat de base, utilisée avec l'option intersects sur la
couche Commune64 et le champ nom, qui va regrouper les résultats obtenus (concatenate)
- buffer : tampon de rayon -0.1 mètre pour éloigner juste ce qu'il faut le polygone de
la limite. le -0.1 est à adapter en cas de géométries pas super bien numérisées et donc de
superpositions non souhaitées
Bon courage !
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=347863#p347863
Pour y répondre : qgis_fr(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net