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

Rencontres QGIS 2025

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

#1 Wed 15 May 2019 10:25

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

QGIS: Appel de l'attribut d'une autre couche pour mise à jour

Bonjour à tous,

Mon problème est le suivant.
Je souhaiterais mettre à jour la latitude et la longitude des points d'une base (qu'on appellera B1) à partir de la latitude et de la longitude des points d'une autre base (qu'on appellera B2).
Cette mise à jour ne s'exécute que si l'identifiant des points de la base B1 est le même que l'identifiant des points de la base B2.

Donc, concrètement, pour mettre à jour le champ latitude de la base B1 (après, on ferait pareil pour la longitude), j'active la calculatrice de champ (Mise à jour du champ existant Latitude) et ... je sèche un peu sur le code qu'il faut écrire ...
Je pense que ça pourrait ressembler un peu à ça :
case when  ("Identifiant-B1" ILIKE 'Couche de la base B2'_"Identifiant-B2") *Identifiant de la base B1 (à mettre à jour)= identifiant de la base B2, mais je ne sais pas comment coder l'attribut d'une autre couche que celle que l'on traite)*
then 'Couche de la base B2'_"Latitude" *la latitude de l'objet la base B1 se mettra à jour en prenant la valeur de la latitude de l'objet de la base B2 qui a le même identifiant*
end


Merci pour vos conseils.

Hors ligne

 

#2 Wed 15 May 2019 12:26

laurent00
Participant assidu
Date d'inscription: 6 Aug 2007
Messages: 402

Re: QGIS: Appel de l'attribut d'une autre couche pour mise à jour

bonjour
je crois que le plus simple serait de faire une jointure entre des couches sur l'identifiant
mais une base pour toi c quoi ?
LJ

Hors ligne

 

#3 Wed 15 May 2019 18:41

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Appel de l'attribut d'une autre couche pour mise à jour

Ce sont deux bases de données de points (ayant chacun (entre autres ...) un champ identifiant, un champs latitude et un champ longitude) et représentées dans mon projet par 2 couches distinctes.

Hors ligne

 

#4 Wed 15 May 2019 18:47

laurent00
Participant assidu
Date d'inscription: 6 Aug 2007
Messages: 402

Re: QGIS: Appel de l'attribut d'une autre couche pour mise à jour

donc tu peux faire une simple jointure sur tes 2 couches qui importe des valeurs de la couche B2 dans la couche B1 ensuite avec la calculatrice tu mets à jour ton champB1 par le champB2 ...
Lj

Hors ligne

 

#5 Wed 15 May 2019 20:27

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

Re: QGIS: Appel de l'attribut d'une autre couche pour mise à jour

Il y a des éléments de réponse ici : https://gis.stackexchange.com/questions … calculator

La réponse de Laurent est plus facile à comprendre et à appliquer.

Personnellement, je le ferais en SQL. C'est un problème simple pour ce langage.

Hors ligne

 

#6 Fri 17 May 2019 12:26

ODJAC33
Participant assidu
Date d'inscription: 6 Aug 2017
Messages: 240

Re: QGIS: Appel de l'attribut d'une autre couche pour mise à jour

Oui, merci beaucoup, j'ai suivi les conseils de Laurent avec la jointure et ça marche super bien.

Petite remarque : il est dommage que l'on ne parvienne pas à récupérer directement un attribut d'une autre couche lorsque l'on fait des manipes sur la calculatrice de champ.

Hors ligne

 

#7 Mon 15 May 2023 02:10

math_98800
Juste Inscrit !
Date d'inscription: 16 Apr 2018
Messages: 4

Re: QGIS: Appel de l'attribut d'une autre couche pour mise à jour

Bonjour,

j'espère que je n'arrive pas trop tard sinon cela pourra peut être aider les prochains.

Tu peux récupérer un attribut d'une autre couche avec la calculatrice de champ avec attribute(get_feature()

Hors ligne

 

Pied de page des forums

Powered by FluxBB