Message posté par : Jérémie
----------------------------------------
Ce qui ne va pas être évident c'est que vos points sont répartis dans plusieurs
couches.
Un méthode possible en utilisant la calculatrice de champ sur la table des tronçons
d'assainissement, autant de fois qu'il y a de table points :
-----------------
Code :
aggregate('nom_table_point',
aggregate:='concatenate',
expression:="champ_table_point",
filter:=intersects($geometry,point_n(geometry(@parent),1)),
concatenator:='/')
-----------------
Ça permet d'aller concaténer toutes les valeurs du champ_table_point dans la table
nom_table_point, pour le premier point constituant chaque ligne de la table en édition
(tronçons d'assainissement).
Idem pour le dernier point :
-----------------
Code :
aggregate('nom_table_point',
aggregate:='concatenate',
expression:="champ_table_point",
filter:=intersects($geometry,point_n(geometry(@parent),-1)),
concatenator:='/')
-----------------
Seule différence, le -1 dans la fonction point_n() qui permet de récupérer le dernier
point au lieu du premier.
Le souci, c'est que si aucune référence n'est trouvée, alors la fonction va venir
écraser une valeur déjà présente dans la colonne qu'on met à jour (num_depart ou
num_arrivee).
Pour éviter ça, il suffit de prendre en priorité la valeur déjà présente, par exemple en
utilisant coalesce() qui prend la première valeur non null dans l'ordre des arguments
qu'on lui donne.
-----------------
Code :
coalesce("num_arrivee",
aggregate('nom_table_point',
aggregate:='concatenate',
expression:="champ_table_point",
filter:=intersects($geometry,point_n(geometry(@parent),-1)),
concatenator:='/')
)
-----------------
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=368790#p368790
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