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

GEODATA DAYS 2024

#1 Tue 02 May 2023 14:52

Idir
Participant actif
Lieu: Perpignan
Date d'inscription: 28 Dec 2007
Messages: 96

QGIS 3.22: Atlas / Plusieurs zooms sur une meme mise en page ?

Bonjour,

J’ai une couche des emplacements réservés sur 78 communes, j’aimerais afficher plusieurs zooms (tous les ER de la même commune) sur la même mise en page atlas (voir pièce jointe) et dès que je clic sur « entité suivante » de mon atlas, il y aura les ER d’une autre commune qui vont s’afficher.

Les ER sont numérotés de 1 à N pour chaque commune.

Je pense qu’il faut changer les paramètres de l’emprise de chaque carte (zoom), j’ai trouvé le lien suivant, mais je n’ai pas réussi à le faire fonctionner.
https://gis.stackexchange.com/questions … atlas-page

Vous avez des idées ??? 

IDIR

Dernière modification par Idir (Tue 02 May 2023 15:17)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Tue 02 May 2023 16:46

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

Re: QGIS 3.22: Atlas / Plusieurs zooms sur une meme mise en page ?

Bonjour,
J'imagine que le nombre d'emplacements réservés n'est pas identique d'une commune à une autre. Comment envisagez-vous de traiter cela?
1- Je mets le max de cases sur ma page, quitte à avoir des encarts vides sur celle-ci (et aussi des encarts de (trop?) petite taille)
2- Je modifie le nombre d'encarts sur la page en fonction du nombre d'ER sur la commune, afin de tous les afficher.
3- J'affiche x encarts par page et s'il y en a plus, je rajouterais autant de pages que nécessaire, sur le même format.
Selon l'option choisie, le challenge ne sera pas identique, mais oui, je pense qu'il va falloir jouer avec les emprises et la numérotation des ER (voire des éléments de carte).

Hors ligne

 

#3 Wed 03 May 2023 09:00

Idir
Participant actif
Lieu: Perpignan
Date d'inscription: 28 Dec 2007
Messages: 96

Re: QGIS 3.22: Atlas / Plusieurs zooms sur une meme mise en page ?

Je metterai le max de cases sur ma mise en page.


SANTANNA a écrit:

Bonjour,
J'imagine que le nombre d'emplacements réservés n'est pas identique d'une commune à une autre. Comment envisagez-vous de traiter cela?
1- Je mets le max de cases sur ma page, quitte à avoir des encarts vides sur celle-ci (et aussi des encarts de (trop?) petite taille)
2- Je modifie le nombre d'encarts sur la page en fonction du nombre d'ER sur la commune, afin de tous les afficher.
3- J'affiche x encarts par page et s'il y en a plus, je rajouterais autant de pages que nécessaire, sur le même format.
Selon l'option choisie, le challenge ne sera pas identique, mais oui, je pense qu'il va falloir jouer avec les emprises et la numérotation des ER (voire des éléments de carte).

Dernière modification par Idir (Wed 03 May 2023 09:02)

Hors ligne

 

#4 Thu 04 May 2023 18:52

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

Re: QGIS 3.22: Atlas / Plusieurs zooms sur une meme mise en page ?

Bonjour,
Là comme ça, pour faire au plus simple, je dirais qu'il faudrait numéroter les encarts de carte également de 1 à N, et l'idée serait de faire en sorte que son étendue s'adapte à l'ER de même numéro dans la commune en visualisation. Pour l'expression, tout dépend de la relation qu'il y a entre les couches ER et commune (un champ avec le code insee? un champ avec numero ER? Séparés ou concaténés? Avec d'autres textes? juste une relation spatiale?).

Ci-après un exemple avec les couches communes et departement de la bdadminexpress (ou bdtopo?) où j'afficherais la commune dont le code insee finit par le num de l'objet carte (ne s'applique qu'aux 9 premières, cela dit) dans chaque département. A adapter sur les autres coordonnées. Et vous pouvez ajouter une certaine distance de recul par rapport aux bords.

Code:

x_min(
  aggregate(
   layer:= 'COMMUNE',
   aggregate:= 'collect',
   expression:= $geometry,
   filter:= "INSEE_COM"= concat(attribute(@atlas_feature, 'INSEE_DEP'), '00', @map_id) -- tout se joue sur ce filtre qui doit faire apparaitre l'entité de l'atlas ET le numéro de l'objet carte afin de renvoyer l'objet unique qui nous intéresse
 )
)

Il faudra aussi penser à contrôler l'affichage de l'objet carte lorsqu'il n'y a pas d'ER dans la commune. Peut-être l'exclure de l'export si son num est supérieur au nombre maxi d'ER dans la commune.

Hors ligne

 

#5 Wed 10 May 2023 15:59

Idir
Participant actif
Lieu: Perpignan
Date d'inscription: 28 Dec 2007
Messages: 96

Re: QGIS 3.22: Atlas / Plusieurs zooms sur une meme mise en page ?

Bonjour,

La relation entre la couche des ER et limite communale se fait avec le code insee.

J'ai testé l'expression :
x_min(
  aggregate(
   layer:= 'PRESCRIPTION_SURF_Atlas_ER_4f49d63d_88ab_4795_8fbf_f872ffcc0734',
   aggregate:= 'collect',
   expression:= $geometry,
   filter:= "insee"= concat(attribute(@atlas_feature, 'code_insee'), '2', @map_id)
)

mais elle ne fonctionne pas !!!

-- insee, de la couche prescription_surf
-- code_insee, de la couche commune
-- '2' numéro de l'encart (map2)




SANTANNA a écrit:

Bonjour,
Là comme ça, pour faire au plus simple, je dirais qu'il faudrait numéroter les encarts de carte également de 1 à N, et l'idée serait de faire en sorte que son étendue s'adapte à l'ER de même numéro dans la commune en visualisation. Pour l'expression, tout dépend de la relation qu'il y a entre les couches ER et commune (un champ avec le code insee? un champ avec numero ER? Séparés ou concaténés? Avec d'autres textes? juste une relation spatiale?).

Ci-après un exemple avec les couches communes et departement de la bdadminexpress (ou bdtopo?) où j'afficherais la commune dont le code insee finit par le num de l'objet carte (ne s'applique qu'aux 9 premières, cela dit) dans chaque département. A adapter sur les autres coordonnées. Et vous pouvez ajouter une certaine distance de recul par rapport aux bords.

Code:

x_min(
  aggregate(
   layer:= 'COMMUNE',
   aggregate:= 'collect',
   expression:= $geometry,
   filter:= "INSEE_COM"= concat(attribute(@atlas_feature, 'INSEE_DEP'), '00', @map_id) -- tout se joue sur ce filtre qui doit faire apparaitre l'entité de l'atlas ET le numéro de l'objet carte afin de renvoyer l'objet unique qui nous intéresse
 )
)

Il faudra aussi penser à contrôler l'affichage de l'objet carte lorsqu'il n'y a pas d'ER dans la commune. Peut-être l'exclure de l'export si son num est supérieur au nombre maxi d'ER dans la commune.

Hors ligne

 

#6 Thu 11 May 2023 06:10

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

Re: QGIS 3.22: Atlas / Plusieurs zooms sur une meme mise en page ?

Bonjour,

mais elle ne fonctionne pas !!!


Sans le message de retour de QGIS, je crains que cette info n'aide pas vraiment à déboguer. Je vois qu'il manque une parenthèse à la fin de votre code.
Mais bon, mon exemple n'était peut-être pas si évident. Le '00' et le concat servent à reconstruire le code insee communal sur la base du code departement (mon element atlas). map_id est le nom de l'encart. N'oubliez pas de jeter un coup d’œil à la doc ou à l'aide embarquée dans l'interface des fonctions afin de mieux comprendre ce qui vous est proposé.
Une option, plus directe, au vu de ce que je comprends de la structure des données, serait de modifier le filtre en:

Code:

filter:= "insee"= attribute(@atlas_feature, 'code_insee') and "champcontenantnumER"=@map_id)

Je suppose là que "champcontenantnumER" a pour valeur 1, 2.... sinon, il faudra extraire/reformater/remodeler la deuxième condition (ou renommer les encarts de carte, genre ER01, ER02,...?) pour avoir la correspondance.

Hors ligne

 

Pied de page des forums

Powered by FluxBB