Pages: 1
- Sujet précédent - QGIS: Nommer point de depart et point d arrivee polyligne - Sujet suivant
#1 Thu 25 April 2024 08:49
- ABCIVIN2
- Juste Inscrit !
- Date d'inscription: 17 Apr 2023
- Messages: 8
QGIS: Nommer point de depart et point d arrivee polyligne
Bonjour,
Je souhaite nommer automatiquement le point de départ et le point d'arrivée d'une polyligne : par exemple la polyligne X est commence à l'intersection avec la polyligne A et se termine à l'intersection de la polyligne B. Je voudrais donc qu'il soit indiqué en attribut "Point de début : A", "Point de fin : B".
J'ai essayé avec les outils de gestion de données mais rien de concluant pour le moment.
Je vous remercie par avance pour votre aide !
Hors ligne
#2 Thu 25 April 2024 15:07
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3926
Re: QGIS: Nommer point de depart et point d arrivee polyligne
Bonjour,
Dans la calculatrice des champs, essayez une formule genre
Code:
aggregate( layer:=@layer, -- ça boucle dans la couche actuelle aggregate:= 'concatenate', -- je concatène mais à vous de voir quel agrégat serait plus adapté expression:= "nom", -- le champ dont vous voulez récupérer les infos filter:= touches(start_point(@geometry),geometry(@parent)) -- on vérifie que le point de départ touche une géométrie. Bien lire les subtilités de "touches" (ou "intersects"?). AND @id <> feature_id(@parent) -- et que cette géométrie ne provient pas de la même entité (id interne identique) )
Hors ligne
#3 Thu 25 April 2024 16:06
- ABCIVIN2
- Juste Inscrit !
- Date d'inscription: 17 Apr 2023
- Messages: 8
Re: QGIS: Nommer point de depart et point d arrivee polyligne
Merci pour votre retour.
J'ai le message expression invalide, j'ai bien replacé "nom" par le bon champ.
Hors ligne
#4 Thu 25 April 2024 16:12
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3926
Re: QGIS: Nommer point de depart et point d arrivee polyligne
Cliquez sur le lien dans le message, vous aurez plus de détails sur l'erreur. Autrement, difficile de vous aider.
Quelle version de QGIS avez-vous?
Hors ligne
#5 Thu 25 April 2024 16:33
- ABCIVIN2
- Juste Inscrit !
- Date d'inscription: 17 Apr 2023
- Messages: 8
Re: QGIS: Nommer point de depart et point d arrivee polyligne
Voici le message :
Erreurs de l'Analyseur:
Fonction inconnue
Hors ligne
#6 Thu 25 April 2024 17:24
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3926
Re: QGIS: Nommer point de depart et point d arrivee polyligne
Même pas le nom de la fonction inconnue? Ils abusent, les devs; ça nous aide pas trop ça. Vous êtes sûr d'avoir bien recopié la formule? Il n'y a pas du texte souligné en rouge dans la formule, genre une fonction mal écrite?
Néanmoins, ça ramène à mon autre question ci-dessus: quelle version de QGIS?
Hors ligne
#7 Thu 25 April 2024 19:27
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 150
Re: QGIS: Nommer point de depart et point d arrivee polyligne
C'est le feature_id(@parent) qui ne passe pas (en QGIS 3.28).
Ma tentative de remplacement par attribute(@parent,'id') n'a pas fonctionné.
En enlevant la dernière clause ça fonctionne mais en remettant le champ de l'entité concernée.
Je rajouterai par contre le "endpoint" aussi.
Donc :
aggregate(
layer:=@layer,
aggregate:= 'concatenate',
expression:= "Nom",
filter:= (touches(start_point(@geometry),geometry(@parent)) OR touches(end_point(@geometry),geometry(@parent)))
)
Dernière modification par Benoit D (Thu 25 April 2024 22:01)
Hors ligne
#8 Thu 25 April 2024 22:41
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3926
Re: QGIS: Nommer point de depart et point d arrivee polyligne
C'est le feature_id(@parent) qui ne passe pas (en QGIS 3.28).
On est bien d'accord que ABCIVIN2 n'a pas indiqué sa version de QGIS...?
Ma tentative de remplacement par attribute(@parent,'id') n'a pas fonctionné.
logique, il faudrait avoir créé un champ id dans la table et il n'y a aucune garantie que la variable @id et ce champ partagent les mêmes valeurs. Par contre en supposant qu'on dispose d'un champ à valeurs uniques, ce remplacement-ci marcherait
Code:
"lechampunique" <> attribute(@parent, 'lechampunique')
En enlevant la dernière clause ça fonctionne mais en remettant le champ de l'entité concernée.
Yes, et c'est bien toute la raison d'être de la seconde condition.
Je rajouterai par contre le "endpoint" aussi.
[...]
filter:= (touches(start_point(@geometry),geometry(@parent)) OR touches(end_point(@geometry),geometry(@parent)))
non, parce que du coup on aurait des valeurs dont on ne saurait déterminer laquelle vient du point de départ ni laquelle de l'arrivée. Il me semble qu'il faut bien deux requêtes "différentes" et concaténer le tout pour avoir le résultat escompté.
Hors ligne
#9 Fri 26 April 2024 07:43
- ABCIVIN2
- Juste Inscrit !
- Date d'inscription: 17 Apr 2023
- Messages: 8
Re: QGIS: Nommer point de depart et point d arrivee polyligne
J'avais oublié de préciser, la version est 3.16. Désolé
J'ai un champ qui s'appel "ID", est-ce que cela peut être l'origine du problème ?
La solution de benoit fonction mais en aperçu du résultat j'obtiens : " et l'ensemble reste "NULL"
Dernière modification par ABCIVIN2 (Fri 26 April 2024 07:46)
Hors ligne
#10 Fri 26 April 2024 13:55
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3926
Re: QGIS: Nommer point de depart et point d arrivee polyligne
Bonjour,
J'avais oublié de préciser, la version est 3.16. Désolé
Une raison particulière pour rester sur une aussi vieille version, non maintenue depuis au moins 2 ans?
La solution de benoit fonction mais en aperçu du résultat j'obtiens : " et l'ensemble reste "NULL"
Bah fonctionne pas vraiment alors vu que les résultats sont NULL. Sauf si c'est la numérisation des entités qui n'est pas top. Vous pouvez peut-être vérifier en remplaçant "touches" par "intersects".
J'ai un champ qui s'appel "ID", est-ce que cela peut être l'origine du problème ?
Non, pas de lien. Par contre, comme je suggérais dans mon dernier message, et sous réserve que le champ ID contienne des identifiants uniques, vous pouvez remplacer "AND @id <> feature_id(@parent)" par
Code:
AND "ID" <> attribute(@parent, 'ID')
Hors ligne
#11 Fri 26 April 2024 14:55
- ABCIVIN2
- Juste Inscrit !
- Date d'inscription: 17 Apr 2023
- Messages: 8
Re: QGIS: Nommer point de depart et point d arrivee polyligne
Je reste sur la 3.16 car quelques plugins que j'utilise ne fonctionne pas ou mal sur les versions plus récentes.
La dernière solution ne fonctionne pas non plus, j'obtiens encore le même résultat : " et l'ensemble reste "NULL"
Hors ligne
#12 Fri 26 April 2024 19:48
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 150
Re: QGIS: Nommer point de depart et point d arrivee polyligne
Pourrait-on avoir un extrait du jeu de données ?
C’est intriguant.
Hors ligne
Pages: 1
- Sujet précédent - QGIS: Nommer point de depart et point d arrivee polyligne - Sujet suivant