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

Printemps des cartes 2024

#1 Mon 08 January 2024 16:54

tarmac
Juste Inscrit !
Lieu: Oraison
Date d'inscription: 25 Aug 2023
Messages: 8

QGIS 3.28 : calulatrice de champs et manipulation de géométrie

Bonjour à toutes et à tous,
je vous souhaite une belle et heureuse année 2024 !

je m'adresse à vous car je bloque sur une sujet sans doute maintes fois traité dans ce forum tant la manipulation doit être courante. Pour autant je n'ai pas trouvé de réponse à mon problème. Je suis donc preneur de toute piste de réflexion ou de lien vers des discussions déjà existantes.

Mon besoin : récupérer un polygone (une parcelle) issu d'une couche (parcelle) qui comporte un attribut (identifiant unique) identique à celui de la table dans laquelle je souhaite l'intégrer. Je souhaite réaliser cette manipulation par la calculatrice de champs afin de pouvoir réaliser l'opération en lot.

Par le biais de la calculatrice de champ, mise à jour d'un champ existant et en sélectionnant le champ geometry, je formule :

aggregate('Parcelles','collect', geometry(@geometry),"idu_parc_archive" = attribute(@parent,'geo_parcelle'))

Bien que la géométrie existe bien dans la couche parcelles, la prévisualisation et l'exécution de la formule n'aboutit pas à l'adjonction de la géométrie dans la couche de destination.

Je n'arrive pas à déceler mon erreur de compréhension de la fonction ou peut-être de syntaxe.

Quelqu'un pourrait-il m'aiguiller sur une piste ?
Merci d'avance.
Julien


Julien M.

Hors ligne

 

#2 Tue 09 January 2024 10:54

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3811

Re: QGIS 3.28 : calulatrice de champs et manipulation de géométrie

Bonjour,
Pas tout checké mais le geometry(@geometry) me semble louche.

Code:

aggregate('Parcelles','collect', @geometry,"idu_parc_archive" = attribute(@parent,'geo_parcelle'))

Hors ligne

 

#3 Tue 09 January 2024 11:16

tarmac
Juste Inscrit !
Lieu: Oraison
Date d'inscription: 25 Aug 2023
Messages: 8

Re: QGIS 3.28 : calulatrice de champs et manipulation de géométrie

Je me réponds avec la solution avec pour paramètres :

'Parcelles' > la couche qui contient la géométrie à collecter
@geometry > la géométrie à collecter
filter > "geo_parcelle" = identifiant unique de la géométrie dans la couche 'Parcelles' qui est équivalent à la valeur de l'attribut de la table de destination de la géométrie collectée, cet attribut étant 'idu_parc_archive'

aggregate(layer:='Parcelles',
    aggregate:='collect',
    expression:=@geometry,
    filter:="geo_parcelle" = attribute(@parent, 'idu_parc_archive' )
    )

En espérant avoir été explicite.

Merci SANTANNA je viens de découvrir ton retour en même temps que je validais ce post. Effectivement c'était bien le geometry qui posait problème.


Julien M.

Hors ligne

 

Pied de page des forums

Powered by FluxBB