Pages: 1
- Sujet précédent - QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne - Sujet suivant
#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: 1095
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
En 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
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: 1095
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
En ligne
#5 Thu 20 February 2020 13:18
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1095
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,
En 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: 1095
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.
En 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
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: 1095
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 !
En ligne
Pages: 1
- Sujet précédent - QGIS: Recuperer IDs des noeuds situes au debut d une couche ligne - Sujet suivant