#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
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
Re: QGIS: Atlas avec plusieurs polygones differents par page
Bonjour,
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.
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)
Hors ligne
#7 Thu 08 August 2024 16:09
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
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
Re: QGIS: Atlas avec plusieurs polygones differents par page
Code:
[%attributes((get_feature_by_id(@atlas_layername,@atlas_featureid + 1))) ['Nom']%]
Excellent !
Merci
Géoscope
Hors ligne
#10 Thu 27 February 2025 18:13
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.
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
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
- 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
- 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
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
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
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
LJ
Hors ligne
#19 Wed 30 April 2025 09:15
Re: QGIS: Atlas avec plusieurs polygones differents par page
Bonjour,
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
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
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