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é ?

#1 Wed 17 June 2020 20:19

Axel S
Participant occasionnel
Date d'inscription: 23 Apr 2019
Messages: 18

QGIS: Recup attributs lignes sur des points a l aide de WKT

Bonjour,

Il y a quelques temps j'avais demandé comment récupérer l'ID des noeuds situes au début d une couche ligne

Et après test et conseil j'ai pu trouver la solution suivante :

couche points :un nouveau champ 'WKT' texte avec l'expression  geom_to_wkt($geometry)

couche ligne :
nouveau champ :   attribute( get_feature('points','WKT', geom_to_wkt(start_point($geometry)  )),'ID')

J'avais réussi à choper l'ID des point situés au début de la ligne puis l'ID de ceux à la fin de la ligne.

Maintenant j'essaye de faire l'inverse, à savoir récupérer des attributs de la ligne dans une couche point

Admettons que la ligne possède les attributs suivants : A1 correspondant au point A au début de la ligne et B1 correspondant au point B situé à la fin de la ligne.

Comment récupérer la données A1 pour le point A et B1 pour le point B ?

J'ai essayé avec la méthode précédente mais l'inverse me parait plus compliqué sachant que je ne sais pas comment un point peut différencier une ligne d'une autre et récupérer la bonne info.

Des idées ?

Hors ligne

 

#2 Wed 17 June 2020 21:57

JD
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 726

Re: QGIS: Recup attributs lignes sur des points a l aide de WKT

Bonsoir,
Voici un début de piste qui dépend grandement de votre donnée.

Je créerai deux champs dans votre couche ligne qu'on nommera

start_wkt et end_wkt avec les formules suivantes

Code:

 geom_to_wkt( start_point($geometry))
 geom_to_wkt( end_point($geometry))

et puis après pour votre point  vous pouvez créer deux champs aussi avec deux formules :

Code:

attribute(
    get_feature('lignes', 'start_wkt', geom_to_wkt($geometry)),
    'champs_a_recuperer')

attribute(
    get_feature('lignes', 'end_wkt', geom_to_wkt($geometry)),
    'champs_a_recuperer')

vous pouvez aussi récupérer tout d'un coup si vos lignes ne se touchent pas

Code:

coalesce(
    attribute(
        get_feature('lignes', 'start_wkt', geom_to_wkt($geometry))
        ,
        'champs_a_recuperer'
    ),
    attribute(
        get_feature('lignes', 'end_wkt', geom_to_wkt($geometry))
        ,
        'champs_a_recuperer'
    )
)

Mais ceci dépend de vos données

Hors ligne

 

#3 Thu 18 June 2020 09:12

Axel S
Participant occasionnel
Date d'inscription: 23 Apr 2019
Messages: 18

Re: QGIS: Recup attributs lignes sur des points a l aide de WKT

Merci ! Je ne savais pas que l'on pouvais récupérer la géométrie du début et fin de ligne, je vais essayer ces expressions sur mes données.

Bonne journée,
A S

Hors ligne

 

#4 Thu 03 November 2022 09:32

PhilCAD64
Participant occasionnel
Date d'inscription: 26 Nov 2013
Messages: 32

Re: QGIS: Recup attributs lignes sur des points a l aide de WKT

Bonjour,

Je l'avais utilisé la formule de liaison Ligne/Point, il y a quelques temps et le ratio était plutôt acceptable 10% d'échec.
Aujourd'hui le résultat est assez décevant 10 / 1200 retours corrects.

Je cherche d’où peut provenir le problème:

Je fais geom_to_wkt( start_point($geometry)) sur un attribut de la couche ligne.
Je fais geom_to_wkt($geometry) sur la couche point

Mais je constate des différences de coordonnée (arrondis)

ex:
Point (404187.63166153 6266271.32360449)
Point (404187.63166153 6266271.3236045)

j'ai testé avec round( 'WKT', 3) mais ça a pas l'air de fonctionner puisque c'est un texte. LOL

edit: il faut faire geom_to_wkt($geometry,3)

Dernière modification par PhilCAD64 (Thu 03 November 2022 10:21)

Hors ligne

 

#5 Thu 03 November 2022 10:05

PhilCAD64
Participant occasionnel
Date d'inscription: 26 Nov 2013
Messages: 32

Re: QGIS: Recup attributs lignes sur des points a l aide de WKT

à supprimer, merci.

Dernière modification par PhilCAD64 (Thu 03 November 2022 10:20)

Hors ligne

 

Pied de page des forums

Powered by FluxBB