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 Mon 28 October 2024 21:47

guillaume
Participant actif
Date d'inscription: 5 Sep 2005
Messages: 66

QGIS: Filtre sur un atlas

Bonjour,
j'ai une table de plus de 1000 entités ponctuelles, avec un champ NOM (contenant 11 valeurs uniques).
Je cherche le 1er fid de chaque valeur unique, afin de filtrer un atlas et ainsi n'avoir que 11 mises en page, chacune avec un NOM différent.
Ai-je été assez clair ?
J'ai cherché du coté des fonctions array, array_agg, je n'arrive à rien.
D'avance merci, Guillaume

Hors ligne

 

#2 Wed 30 October 2024 12:15

Julien81
Participant assidu
Lieu: Giroussens
Date d'inscription: 14 Jan 2019
Messages: 181

Re: QGIS: Filtre sur un atlas

Bonjour,

vous souhaitez filtrer vos fid de la couche d'atlas avec le plus petit fid de chaque catégorie "NOM". C'est un agrégat directement sur votre couche d'atlas avec l'expression minimum() avec un champ de regroupement et un filtre par rapport à votre entité d'atlas courante cf. doc qgis.

Quelque chose comme :

Code:

"fid"=minimum( "fid", "NOM", "NOM"=attribute(@feature,'NOM'))

devrait fonctionner d'après ce que j'ai pu comprendre, puisque toute les info sont déjà dans votre couche!

Cordialement

Hors ligne

 

#3 Wed 30 October 2024 14:55

guillaume
Participant actif
Date d'inscription: 5 Sep 2005
Messages: 66

Re: QGIS: Filtre sur un atlas

Merci Julien, cela fonctionne parfaitement ; je n'avais pas envisagé cette fonction.

J'étais parti sur une autre piste, un peu usine à gaz !
- une couche virtuelle "fid_nom", obtenue ainsi :

Code:

 select fid, NOM, count(*) nb_points from points group by NOM order by NOM

- un filtre s'appuyant sur cette dernière :

Code:

attribute(get_feature('fid_nom','NOM',attribute(@feature,'NOM') ),'fid')= fid

- un titre pour chaque page, rappelant le nb de points par attribut NOM :

Code:

attribute(get_feature('fid_nom','NOM',attribute(@feature,'NOM') ),'nb_points')

Il n'y a pas de quoi être fier !
Cordialement
guillaume

Hors ligne

 

#4 Tue 05 November 2024 14:25

Julien81
Participant assidu
Lieu: Giroussens
Date d'inscription: 14 Jan 2019
Messages: 181

Re: QGIS: Filtre sur un atlas

Top si c'est ok de la sorte!

Le coup de virtual layer ou requetes intermédiaires peut-être bien pratique! Si on doit recalculer des champs on restructurer la couche qui drive l'atlas faire des jointure etc... Pour ma part en procédant de la sorte j'ai pris pour habitude d'enregistrer en dur les résultats dans un template, via un modeleur plutôt que d'utiliser directement la couche virtuelle.

Hors ligne

 

Pied de page des forums

Powered by FluxBB