#1 Thu 11 March 2021 11:15
- aheurion
- Participant actif
- Lieu: NANTES
- Date d'inscription: 8 Oct 2020
- Messages: 143
QGIS 3.16: probleme intersects en milieu de ligne ?
Bonjour,
J'utilise la fonction intersects pour récupérer des ids d'une autre couche (linéaires) dans une couche de points.
La fonction récupère bien l'information si le point est situé en extrémité de ligne, par contre ça ne fonctionne pas si le point est au milieu de la ligne :
Code:
aggregate( 'CAMSMN_CANALISATIONS_ASS_b525b781_f204_41cd_8402_df65405f04ca', 'concatenate_unique', "IDCANA", intersects($geometry,geometry(@parent)), ' ; ' )
Sur la pièce jointe on voit que "l'identifiant de la canalisation support de l'appareillage" est BUA_00020 uniquement (il ne prend pas BUA_00012 car le point est au milieu de cette ligne et pas à l'extrémité) : est-ce un bug ??? (sur le github de qgis je n'ai pas trouvé d'issue associée)
PS : Il n'y a pas d'erreur de géométrie et le point placé est bien accroché sur la ligne.
Hors ligne
#2 Thu 11 March 2021 11:27
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1089
Re: QGIS 3.16: probleme intersects en milieu de ligne ?
Teste :
aggregate(
'CAMSMN_CANALISATIONS_ASS_b525b781_f204_41cd_8402_df65405f04ca',
'concatenate_unique',
"IDCANA",
intersects($geometry,buffer(geometry(@parent),0.05)),
' ; '
)
Hors ligne
#3 Thu 11 March 2021 11:38
- aheurion
- Participant actif
- Lieu: NANTES
- Date d'inscription: 8 Oct 2020
- Messages: 143
Re: QGIS 3.16: probleme intersects en milieu de ligne ?
Wait what qu'est-ce que comment ????
Alors merci beaucoup ça fonctionne mais... pourquoi ? Pourquoi il faut mettre un buffer alors que les entités sont accrochées ? l'extrémité de la ligne BUA_00020 est bien superposée à la ligne BUA_00012, intersects devrait marcher sans buffer non ? Ou je loupe quelque chose ?
Hors ligne
#4 Thu 11 March 2021 12:29
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1089
Re: QGIS 3.16: probleme intersects en milieu de ligne ?
Alors, je ne sais pas l'expliquer mais la fonction intersects est efficiente uniquement sur les noeuds d'une ligne. J'ai lu un truc là dessus un jour mais je ne m'en souviens plus (merci pour l'info bidon hé). J'ai bien une idée mais c'est flou et pas clair donc je laisse la place à quelqu'un d'autres pour les explications.
Hors ligne