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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 19 February 2020 11:08

Jack S
Juste Inscrit !
Date d'inscription: 20 May 2019
Messages: 6

QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Bonjour,

Je souhaite récupérer l'ID des nœuds (couche ponctuelle) en amonts d'une couche linéaire, j'ai tester quelques expressions avec la calculatrice de champs (création d'un nouveau champs texte).

J'ai tester get_feature en fonction du champs ID de la couches ponctuelles situés en startpoint mais je n'ai à chaque fois que des valeurs nulles.

Quelqu'un peut me renseigner sur une possible expression de la calculatrice de champs ?

Ex :

O-<-<-<-O
2            1

Et je souhaite pour chaque entités linéaire avoir l'ID du nœud en amont, ici, 1

J'ai créé les lignes avec points d'accroches sur les noeuds je pense que la topologies n'a pas d'erreurs

Merci, JackS

Hors ligne

 

#2 Thu 20 February 2020 08:17

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1087

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Bonjour,

Deux solutions sont proposées sur ce poste :

https://gis.stackexchange.com/questions … gis/209315

Hors ligne

 

#3 Thu 20 February 2020 10:10

Jack S
Juste Inscrit !
Date d'inscription: 20 May 2019
Messages: 6

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

GlaDal a écrit:

Bonjour,

Deux solutions sont proposées sur ce poste :

https://gis.stackexchange.com/questions … gis/209315


Bonjour GlaDal,

Je suis tombé sur ce fil et j'ai essayé la dernière solution mais j'ai eu beaucoup de mal à faire correspondre la dernière expression à mon cas.

"min( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry)  )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry)  )),'year'))||'-'|| max( attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry)  )),'year'),attribute( get_feature('points','WKT', geom_to_wkt(end_point($geometry)  )),'year'))"

J'ai du mal à visualiser les expression min( et attribute(

Et lorsque j'ai testé avec mes couches j'ai eu des messages d'erreurs.

Hors ligne

 

#4 Thu 20 February 2020 10:23

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1087

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Bonjour,

J'essaye de prendre un peu de temps avec mes données dans la journée et je vois si je peux vous aider plus.

A plus

Hors ligne

 

#5 Thu 20 February 2020 13:18

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1087

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Bonjour,

J'avoue ne pas comprendre non plus la fonction min dans ce cas. les fonctions start_point ou end_point devraient suffire. Et pour que cette fonction récupère les valeurs de la couche 2, il faut rajouter une fonction d'intersection (intersects). A tester. Pour ma part, je referai un test demain.

A plus tard,

Hors ligne

 

#6 Thu 20 February 2020 21:38

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

le "attribute" dans votre cas sera l'ID.

La fonction min ou max est utilisée dans l'exemple pour les cas où plus d'un point intersecte une extrémité ou l'autre de la ligne. Ça permet de ne garder qu'une valeur. En utilisant min et max, l'exemple s'assurer de récolter deux données différentes si il y a deux données différentes à chaque extrémité de la ligne.

Dernière modification par carteq (Thu 20 February 2020 21:58)

Hors ligne

 

#7 Thu 20 February 2020 21:48

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Minimalement, ça devrait faire avec ceci :

attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry)  )),'ID')

Ça va vous retourner un ID.

Dernière modification par carteq (Thu 20 February 2020 22:24)

Hors ligne

 

#8 Fri 21 February 2020 09:30

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1087

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Bonjour Carteq,

J'ai essayé cette expression sur mes données. Tout est bon d'un point de vue topologique : mes points sont accrochés à mon linéaire. J'ai saisi cette expression pour créer un nouveau champ dans ma table attributaire de ma couche linéaire mais il me retourne des valeurs nulles.

Hors ligne

 

#9 Fri 21 February 2020 15:29

Jack S
Juste Inscrit !
Date d'inscription: 20 May 2019
Messages: 6

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

J'ai également essayé cette formule sans succès hmm

Hors ligne

 

#10 Fri 21 February 2020 17:03

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Ça fonctionne de mon côté.

Avez-vous une colonne "WKT" dans votre fichier de points ? Ça en prend une. On peut la remplir ensuite avec : geom_to_wkt($geometry)

Donc la fonction suivante :

attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry)  )),'ID')

va chercher l'ID du point qui touche au point de départ d'une ligne ET le lien géométrique se fait en comparant la valeur textuelle de la géométrie du point de départ de la ligne avec la valeur textuelle de la géométrie du point, contenue dans une colonne du fichier de point.

Cela dit, ça pourrait peut-être se faire via un intersect directement sur les géométries, sans passer par de la géométrie textuelle.

Dernière modification par carteq (Fri 21 February 2020 21:55)

Hors ligne

 

#11 Tue 25 February 2020 14:29

Jack S
Juste Inscrit !
Date d'inscription: 20 May 2019
Messages: 6

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Merci carteq, ça a parfaitement fonctionné !

Je n'avais pas saisi qu'il fallait d'abord crée un champ WKT

Hors ligne

 

#12 Tue 25 February 2020 14:57

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1087

Re: QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne

Ah oui, après retest sur un autre jeu de données, ca fonctionne.

Merci !

Hors ligne

 

Pied de page des forums

Powered by FluxBB