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

SOTM 2025 Tours

#1 Thu 08 December 2022 13:35

G.THEO
Juste Inscrit !
Date d'inscription: 8 Dec 2022
Messages: 1

QGIS: Atlas avec plusieurs polygones differents par page

Bonjour, dans le cadre de mon travail, j'aimerais présenter les espèces que j'ai identifiées d'un même groupe (ex: oiseaux) dans différentes zones sur un site d'étude.

Le problème est que le site d'étude est constitué de nombreuses petites zones réparties sur un grand territoire et pour que mes points (espèces) soit lisibles l'échelle des cartes doit être petite. Il met donc possible de faire mise en page par petite zone, je me retrouverais alors avec plus d'une centaine de cartes. Ce qui est difficilement intégrable dans un rapport.

Pour contrer cela, j'ai pensé à réaliser une mise en page où 4 cartes (une par petite zone) serait présentées avec une légende commune. Cela permettrait de grandement réduire le nombre de mises en page à intégrer dans mon rapport. Cela est réalisable manuellement, mais je me demandais s'il était possible de le faire automatiquement à la manière d'un atlas. En gros, de mettre sur la mise en page 1 : les cartes des petites zones 1, 2, 3 et 4 ; sur la mise en page 2 : les cartes des petites zones 5, 6, 7 et 8 ect....

J'espère avoir été clair

Merci par avance pour votre aide

Hors ligne

 

#2 Mon 12 December 2022 09:57

Alban Kraus
Participant actif
Lieu: Tulle (19)
Date d'inscription: 13 Jan 2022
Messages: 67

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonjour,

J'ai déjà fait ça pour une impression papier.

L'idée est de faire une mise en page avec la carte en haut à gauche, avec un atlas filtré sur les zones dont l'id a un modulo4 de 1 (1, 5, 9, 13 etc.), et avec la taille de papier définitive ; une mise en page semblable avec la carte en haut à droite ; idem en bas à gauche et droite. Vous obtiendrez ainsi 4 mises en pages, 4 atlas, 4 PDF « superposables ».

Pour l'impression papier, il suffit d'imprimer les PDF les uns par-dessus les autres.

Pour un document numérique, je vois deux possibilités. Soit vous avez accès à un bon outil de manipulation de PDF (j'utilise pdftk en ligne de commande, qui propose une opération "multistamp"). Soit vous pourriez exporter les atlas en SVG et faire un grand nombre de copier-coller ; ce qui sape un peu l'intérêt de l'atlas...

N'hésitez pas à nous dire comment vous avez finalement procédé !

Hors ligne

 

#3 Thu 08 August 2024 08:23

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonjour, pour les prochaines personnes qui chercheraient à faire la même chose, une solution proposée ici : https://gis.stackexchange.com/questions … atlas-page

Hors ligne

 

#4 Thu 08 August 2024 09:56

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

GlaDal a écrit:

Bonjour, pour les prochaines personnes qui chercheraient à faire la même chose, une solution proposée ici : https://gis.stackexchange.com/questions … atlas-page


j'utilise cette méthode pour mes atlas de miniatures  https://ressources.ingall-niger.org/doc … t_roue.pdf

il est nécessaire d'avoir une table de base avec des id qui se suivent parfaitement, 1 2 3 4 5 ... car la formule est basée sur le atlas_featureid + 1  qui est l'id de la page
si vous avez aussi un atlas qui générera plusieurs pages il faudra ajouter un attribut 'numéro de page' qui fait le lien avec le atlas_featrueid, par exemple si vous avez 4 cartes par page d'atlas, il faudra avoir 1 sur l'id1, 2 sur id5, 3 sur id9 ...

LJ

Hors ligne

 

#5 Thu 08 August 2024 10:47

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 564
Site web

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonjour,

GlaDal a écrit:

Bonjour, pour les prochaines personnes qui chercheraient à faire la même chose, une solution proposée ici : https://gis.stackexchange.com/questions … atlas-page


Qgis est formidable :-) et la communauté aussi... re :-)

Mais y'a des boulets... Je viens d'y jeter un œil. Pour plus de pédagogie pour les boulets de mon espèce, serait-il possible d'avoir une capture d’écran ? Je n'arrive pas à configurer correctement (cf capture d'ecran) : les carte 1 et carte 2 restent les même, et je ne vois pas où faire la même chose pour le titre des cartes.

Merci.


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

Géoscope

Hors ligne

 

#6 Thu 08 August 2024 15:14

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

bonjour
voici les quatre formules pour les coordonnées d'emprise à mettre sur la map2 comme dans l'image jointe
elles font référence à map1 il faut donc que cette map1 soit nommée ainsi
au passage tu es bien sur une projection métrique ?

Code:

coordonnées emprise
min_X  with_variable( 'w',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   x(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1 )))-@w/2)
min_Y  with_variable( 'h',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   y(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1)))-@h/2)
max_X  with_variable( 'w',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   x(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1 )))+@w/2)
max_Y  with_variable( 'h',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   y(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1 )))+@h/2)

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

Hors ligne

 

#7 Thu 08 August 2024 16:09

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 564
Site web

Re: QGIS: Atlas avec plusieurs polygones differents par page

C'est bien ce que j'avais fait, mais... je m'étais trompée de carte (map1 au lieu de map2... c'est couillon !).
Donc, nickel, ça marche. Reste ma question subsidiaire du titre ! Une idée de la formule du texte dynamique ?
Merci


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

Géoscope

Hors ligne

 

#8 Thu 08 August 2024 16:24

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

Code:

[%attributes((get_feature_by_id(@atlas_layername,@atlas_featureid + 1))) ['Nom']%]

Hors ligne

 

#9 Thu 08 August 2024 16:29

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 564
Site web

Re: QGIS: Atlas avec plusieurs polygones differents par page

laurent00 a écrit:

Code:

[%attributes((get_feature_by_id(@atlas_layername,@atlas_featureid + 1))) ['Nom']%]


Excellent !

Merci smile


Géoscope

Hors ligne

 

#10 Thu 27 February 2025 18:13

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 564
Site web

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonjour,

Après avoir réussi un atlas avec 2 cartes par pages (yeah !), je me lance dans la même chose mais avec 6 cartes.

laurent00 a écrit:

il est nécessaire d'avoir une table de base avec des id qui se suivent parfaitement, 1 2 3 4 5 ... car la formule est basée sur le atlas_featureid + 1  qui est l'id de la page
si vous avez aussi un atlas qui générera plusieurs pages il faudra ajouter un attribut 'numéro de page' qui fait le lien avec le atlas_featrueid, par exemple si vous avez 4 cartes par page d'atlas, il faudra avoir 1 sur l'id1, 2 sur id5, 3 sur id9 ...
LJ


Pour ma couche d'atlas, j'ai la colonne id (numéros qui se suivent parfaitement :-) ) et une colonne txt pour les numéros de page.
Je bloque dans la formule pour centrer les cartes 3 à 6. Dans les formules pour les coordonnées :
- pour le @atlas_featureid je pensais bêtement ajouter +2, puis +3... (ou garder la même formule mais en glissant d'une carte à l'autre en item_variable)
- mais à la fin de la formule y'a [@w/2] il faut aussi bouger cette valeur ?

Exemple pour le Xmin :

Carte 2

Code:

with_variable( 'w', bounds_width( map_get(item_variables('Carte 1'),'map_extent')),
   x(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1 )))-@w/2)

Carte 3 (qui ne marche pas)

Code:

with_variable( 'w', bounds_width( map_get(item_variables('Carte 1'),'map_extent')),
   x(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 2 )))-@w/2)

2 questions subsidiaires :
- si on a choisi "echelle fixe", y'aurait pas plus simple de renseigner seulement les coordonnées du centroïde de notre couche d'atlas ?
- pourquoi dans l'exemple de la réponse #6 de ce sujet, la variable du max Y est h alors qu'on a w pour les 3 autres coordonnées ?

Merci à vous


Géoscope

Hors ligne

 

#11 Mon 28 April 2025 20:30

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 564
Site web

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonsoir,

Hou hou, personne pour me sortir de l'impasse pour l'atlas avec mes 6 cadres ? @laurent00, ton exemple avec 12 cadres correspond exactement à ce que je cherche à faire. J'ai pourtant bien créé le champ 'numéro de page' qui fait le lien avec le atlas_featrueid, mais je n'arrive à cadrer correctement que les 2 premiers cadres :-(

Merci à vous.


Géoscope

Hors ligne

 

#12 Tue 29 April 2025 11:29

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonjour Elise,
Je fais un peu dans le désordre

- pourquoi dans l'exemple de la réponse #6 de ce sujet, la variable du max Y est h alors qu'on a w pour les 3 autres coordonnées ?


Euh... Le min Y fait également intervenir h, car h fait référence à la hauteur de l'étendue de carte, donc sur l'axe Y. Tout comme w (pour width) fait référence à la largeur de cette emprise, donc est sur l'axe x.

- si on a choisi "echelle fixe", y'aurait pas plus simple de renseigner seulement les coordonnées du centroïde de notre couche d'atlas ?


Je n'ai pas compris. Le centroïde serait renseigné où, dans quelle case?

(ou garder la même formule mais en glissant d'une carte à l'autre en item_variable)


Mais dans ce cas, l'étendue des "cartes en glissement" serait définie comment?

pour le @atlas_featureid je pensais bêtement ajouter +2, puis +3...


J'ai envie de dire, c'est ce qu'il y a de plus sage. et pas bête. L'idée est d'utiliser l'identifiant de l'entité atlas pour identifier les entités qui la suivent et utiliser la géométrie de chacune pour caler l'emprise de la carte correspondante. Et les entités atlas seraient définies évidemment toutes les 6 entités.

Carte 3 (qui ne marche pas)


Il faudra préciser ce qui ne marche pas. L'entité avec id = atlas_featureid +2 existe bien? Les formules sont correctement ajustées dans les 4 cases?

Hors ligne

 

#13 Tue 29 April 2025 21:22

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

bonsoir

Elise a écrit:

- mais à la fin de la formule y'a [@w/2] il faut aussi bouger cette valeur ?


non ne pas toucher @w/2

Code:

exemple pour le xmin de la carte 4
with_variable( 'w',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   x(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 3  )))-@w/2)

Dernière modification par laurent00 (Tue 29 April 2025 21:22)

Hors ligne

 

#14 Tue 29 April 2025 21:28

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

Elise a écrit:

- si on a choisi "echelle fixe", y'aurait pas plus simple de renseigner seulement les coordonnées du centroïde de notre couche d'atlas ?


pas possible d'utiliser les Xmin/max et Ymin/max qui définissent ton emprise et en même temps échelle fixe qui dit de régler une autre emprise

Dernière modification par laurent00 (Tue 29 April 2025 21:29)

Hors ligne

 

#15 Tue 29 April 2025 21:32

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 564
Site web

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonjour,

Euh... Le min Y fait également intervenir h, car h fait référence à la hauteur de l'étendue de carte, donc sur l'axe Y. Tout comme w (pour width) fait référence à la largeur de cette emprise, donc est sur l'axe x.


Ok, je comprends mieux.

Je n'ai pas compris. Le centroïde serait renseigné où, dans quelle case?


Justement, l'option ne semble pas exister, c'est juste que ça me semblait plus simple que de renseigner les 4 coordonnées :-)

pour le @atlas_featureid je pensais bêtement ajouter +2, puis +3...


J'ai envie de dire, c'est ce qu'il y a de plus sage. et pas bête. L'idée est d'utiliser l'identifiant de l'entité atlas pour identifier les entités qui la suivent et utiliser la géométrie de chacune pour caler l'emprise de la carte correspondante. Et les entités atlas seraient définies évidemment toutes les 6 entités.


Oui, c'est bien ce que j'ai construit : ma couche de couverture comprend les champs suivants :
- LIBELLE = le nom des cadres de carte
- TXT = le nom de la page

Ce qui ne marchait pas : dans ma colonne TXT je n'ai mis des valeurs que pour les cadres 1, 7, 13, 19 et vide pour les autres... il fallait donc ensuite filtrer l'atlas sur les lignes TXT non vide ("TXT">0)

Maintenant ça marche. Merci Santanna, tes questions m'ont permis de creuser au bon endroit pour trouver la solution. Yeah !


Géoscope

Hors ligne

 

#16 Tue 29 April 2025 21:36

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

je joins un micro tuto ici

Code:

tuto mise en oeuvre catalogue de monument X24 miniatures

1. couche en projection métrique 3857
2. fid de la couche numérotés de 1-> x sans interruption
3. ajout d'un colonne "catalog" avec le formule  
    if(($id-1)%24=0,1+($id-1)/24, NULL)   
qui numérote les pages du catalogue
Dans configuration Atlas filtrer avec "catalog" IS NOT NULL
4. ajustement coordonnées dans l'emprise
5. dans le rendu, affichage uniquement des miniatures qui ont un fid qui existe avec
    CASE 
        WHEN "fid" + 1 > count( "fid" )
            Then 0
            Else 100
    END


coordonnées emprise carte 2
min_X  with_variable( 'w',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   x(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1 )))-@w/2)
min_Y  with_variable( 'h',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   y(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1)))-@h/2)
max_X  with_variable( 'w',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   x(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1 )))+@w/2)
max_Y  with_variable( 'h',
   bounds_width( map_get(item_variables('map1'),'map_extent')),
   y(geometry(get_feature_by_id( @atlas_layername,  @atlas_featureid + 1 )))+@h/2)

et je joins mon fichier 24 miniatures qui évite de tout refaire, même si c en faisant qu'on apprend, comme moi.
https://ressources.ingall-niger.org/doc … _x24BG.zip

LJ

Dernière modification par laurent00 (Tue 29 April 2025 21:40)

Hors ligne

 

#17 Tue 29 April 2025 21:39

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 564
Site web

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonsoir,

Merci Laurent. Je viens de finir par comprendre :-)

D'ailleurs, je me suis trompée, la colonne de mes numéros de cadre, c'est bien une colonne qui s'appelle "ID". Sinon, le "atlas_featureid" ne fonctionnerait pas pas, c'est bien cela ?


Géoscope

Hors ligne

 

#18 Tue 29 April 2025 21:51

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

Elise a écrit:

la colonne de mes numéros de cadre, c'est bien une colonne qui s'appelle "ID". Sinon, le "atlas_featureid" ne fonctionnerait pas pas, c'est bien cela ?


on a pas la même sémantique !
colonne = champ se suppose
numéro de cadre = la carte 1 2 ... ? ou ton polygone ...
mon identifiant unique est "fid" et no "ID" je suis sur des couches .gpkg et ce "fid" est bien ramené par le "atlas_featureid"
donc pas sur de comprendre la question smile
LJ

Hors ligne

 

#19 Wed 30 April 2025 09:15

Elise
Participant assidu
Lieu: Argentat (19)
Date d'inscription: 16 Oct 2005
Messages: 564
Site web

Re: QGIS: Atlas avec plusieurs polygones differents par page

Bonjour,

laurent00 a écrit:

on a pas la même sémantique !
colonne = champ se suppose
numéro de cadre = la carte 1 2 ... ? ou ton polygone ...
mon identifiant unique est "fid" et no "ID" je suis sur des couches .gpkg et ce "fid" est bien ramené par le "atlas_featureid"
donc pas sur de comprendre la question smile
LJ


Oui, colonne = champ :-)
numéro de cadre, c'est mon polygone d'atlas.

Je suis sur du shp pour cet exemple.
Comment qgis trouve le bon champ pour "atlas_featureid" ? le "id" de la fin ne correspond pas au nom du champ pris en compte ?


Géoscope

Hors ligne

 

#20 Wed 30 April 2025 10:23

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

Re: QGIS: Atlas avec plusieurs polygones differents par page

Elise a écrit:

Comment qgis trouve le bon champ pour "atlas_featureid" ? le "id" de la fin ne correspond pas au nom du champ pris en compte ?


je ne suis clairement pas le mieux placé pour expliquer cela

atlas_featureid est une fonction qui renvoie le id de l'entité (identifiant unique)
https://documentation.qgis.org/3.40/fr/ … index.html

Le Feature ID est une valeur interne à QGIS, qui peut être différente d’un champ comme un identifiant logique (par ex. un champ id ou code_commune).
En général, c’est l’identifiant numérique unique attribué à chaque entité par QGIS (souvent appelé fid).

LJ

Hors ligne

 

Pied de page des forums

Copyright Association GeoRezo