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

State Of The Map 2024

#1 Tue 23 March 2021 10:43

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

QGIS 3.16: Recuperation d'attribut par intersection spatiale

Bonjour,

Je bute sur un problème qui je pense est assez simple à solutionner.

J'ai deux couches : une linéaire qui comporte deux champs "NOM" et ID et une couche ponctuelle. Chaque valeur du champ "NOM" a un identifiant unique qu'on retrouve dans le champ "ID".
A la création d'une entité ponctuelle, je souhaite :
1) Récupérer la liste des valeurs "NOM" des entités linéaires intersectées dans une rayon de 20m.
      J'y arrive en utilisant l'expression

Code:

intersects($geometry, buffer(@current_geometry,20))

que j'ai saisie dans les propriétés de la couche ponctuelle via la rubrique formulaire : dans le champ visé, j'utilise comme type d'outil 'valeur relationnelle' et je saisie les bons paramètres pour faire le lien entre ma couche ponctuelle et ma couche linéaire. cf l'article suivant : https://spatialthoughts.com/2019/04/12/ … tion-qgis/

2) Après avoir choisi la bonne valeur dans la liste proposée, j'aimerais que dans un deuxième champ s'enregistre l'identifiant correspondant à la valeur NOM choisie. Et la je bloque.

D'avance merci pour votre aide !

Hors ligne

 

#2 Wed 24 March 2021 14:14

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

Re: QGIS 3.16: Recuperation d'attribut par intersection spatiale

up !

Merci ! :-)

Hors ligne

 

#3 Wed 24 March 2021 18:14

aheurion
Participant actif
Lieu: NANTES
Date d'inscription: 8 Oct 2020
Messages: 141

Re: QGIS 3.16: Recuperation d'attribut par intersection spatiale

Bonjour,

En utilisant une valeur par défaut dans ce deuxième champ qui dépend de ton premier champ, avec un aggregate du type :

Code:

aggregate(
    'id_de_la_couche_ligne',
    'concatenate_unique',
    "ID",
    "NOM" = attribute(@parent,'champ_nom_de_la_couche_point'),
    ','
)

Cela devrait marcher ("NOM" c'est le champ "NOM" de la couche ligne et il doit être égal à la valeur du champ "NOM" de ta couche point)
Tu as bien dit que chaque nom était unique ? et que chaque nom correspond à un et un seul id ?

Hors ligne

 

Pied de page des forums

Powered by FluxBB