Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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: 3807

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: 3807

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: 3807

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 actif
Date d'inscription: 17 Jul 2018
Messages: 135

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: 3807

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: 3807

Re: QGIS: Nommer point de depart et point d arrivee polyligne

Bonjour,

ABCIVIN2 a écrit:

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?

ABCIVIN2 a écrit:

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".

ABCIVIN2 a écrit:

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 actif
Date d'inscription: 17 Jul 2018
Messages: 135

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

 

Pied de page des forums

Powered by FluxBB