Pages: 1
- Sujet précédent - QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ? - Sujet suivant
#1 Wed 27 November 2019 18:57
- kagou
- Participant occasionnel
- Date d'inscription: 7 Apr 2010
- Messages: 27
QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Objet: Ne pas tout afficher d'un calque lors de la génération d'un Atlas ?
Je gère des plans pour l'éclairage public et on tourne sous QGIS 3.10
J'ai donc un fond cadastre, des calques (armoire/lampes/réseaux électriques) et j'utilise une couche zone (polygone) afin de délimiter mes lampes par armoire et de générer un Atlas me permettant d'imprimer une page par armoire et lampes associées.
Mon problème est que sur certaines pages on peut voir l'armoire et les lampes associées mais également d'autres lampes d'autres postes car les zones s'imbriquent ou se touchent.
Comment afficher uniquement les bonnes lampes dans mon atlas ?
Sur l'image jointe on voit les lampes du poste J mais je ne veux plus y voir les lampes des postes B D J et E
Help ? Merci
Dernière modification par kagou (Wed 27 November 2019 18:58)
Hors ligne
#2 Wed 27 November 2019 22:35
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Bonsoir,
Réponse rapide après lecture rapide :
Vous itérez sur quelle couche pour la génération des pages de l'atlas ?
Vous pouvez probablement utiliser $id = @atlas_featureid dans le filtre de votre symbologie.
Plus d'infos ici (en anglais) : http://www.qgistutorials.com/en/docs/3/ … ation.html
Hors ligne
#3 Thu 28 November 2019 00:02
- kagou
- Participant occasionnel
- Date d'inscription: 7 Apr 2010
- Messages: 27
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
J'ai dans l'ordre :
couche polygone ZONE dessinées pour englober toutes les lampes d'une même armoire
couche point lampes
couche point armoire
couche polyligne reseaux
couche WMS cadastre
J'itère donc sur ZONE.
Le souci avec $id = @atlas_featureid c'est que la couche ZONE joue un role de masque sur absolument tout ce qui est en dessous. y compris le cadastre
Ce sera la solution si la couche cadastre pouvait rester totalement visible tout le temps malgré le masque créé par ZONE.
Le masque de ZONE s'appliquerait sur lampe/armoire et reseaux mais pas sur cadastre.
Un autre problème c'est que ce masque ne s'applique pas aux étiquettes... Voir image
Est ce possible ? Merci en tout cas de votre réponse fort pertinente
Dernière modification par kagou (Thu 28 November 2019 00:10)
Hors ligne
#4 Thu 28 November 2019 08:55
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1035
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Bonjour,
As-tu tester cette fonction (à saisir pour une symbo suivant un ensemble de règles) : CASE
WHEN within( $geometry , @atlas_geometry ) = 1 THEN intersects( $geometry , @atlas_geometry )
ELSE NULL
END
Hors ligne
#5 Thu 28 November 2019 09:02
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1035
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Et si tu as un champ qui discrime la dépendence à l'armoire (est-ce clair ? Pas sûr), tu peux saisir toujours sous la symbo par ensemble de règles : attribute(@atlas_feature, 'ARMOIRE')="ARMOIRE"
Au plaisir,
Hors ligne
#6 Thu 28 November 2019 09:21
- GlaDal
- Participant assidu
- Date d'inscription: 30 Aug 2013
- Messages: 1035
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Et pour compléter, pour tes étiquettes tu peux travailler avec cette expression : intersects( $geometry, geometry( get_feature( 'couche_d'intersection', 'champs_de_référence', 'valeur du champs sélectionnée') ) )
Hors ligne
#7 Thu 28 November 2019 14:05
- kagou
- Participant occasionnel
- Date d'inscription: 7 Apr 2010
- Messages: 27
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
c'est du lourd je vais regarder ça ce soir merci !
Hors ligne
#8 Thu 28 November 2019 16:18
- kagou
- Participant occasionnel
- Date d'inscription: 7 Apr 2010
- Messages: 27
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Bonjour,
As-tu tester cette fonction (à saisir pour une symbo suivant un ensemble de règles) : CASE
WHEN within( $geometry , @atlas_geometry ) = 1 THEN intersects( $geometry , @atlas_geometry )
ELSE NULL
END
Tu peux m'expliquer ce que cela veut dire ? sur une couche de point pour les lampes
QUAND il est vrai que ma lampe est dans le polygone qui me sert de couche pour générer l'atlas ALORS intersect ? SINON NULL ?
Cela me semble un peu trop complexe et a le même effet que le code suivant.
Du coup j'ai juste mis :
Code:
within( $geometry , @atlas_geometry )
dans FILTRE pour ma symbologie.
Cela fonctionne superbement pour l'Atlas généré.
Le seul souci c'est que je ne vois plus mes lampes quand je travaille sous QGIS, ou seulement celle d'une armoire.
Il faudrait pouvoir ajouter un test disant :
j'affiche mon symbole si je suis sous QGIS (pas dans un atlas) OU si lors de la génération d'un atlas il est contenu dans la géométrie de la zone servant à l'Atlas
Hors ligne
#9 Thu 28 November 2019 16:28
- kagou
- Participant occasionnel
- Date d'inscription: 7 Apr 2010
- Messages: 27
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Et si tu as un champ qui discrime la dépendence à l'armoire (est-ce clair ? Pas sûr), tu peux saisir toujours sous la symbo par ensemble de règles : attribute(@atlas_feature, 'ARMOIRE')="ARMOIRE"
Au plaisir,
Pour cette proposition en effet en mettant dans le FILTRE de ma symbologie de mes lampes :
Code:
attribute(@atlas_feature, 'CODE')="CODEA"
Quand c'est la Zone pour le poste A (ZONE.CODE), et que la lampe est bien sur la même armoire (LAMPE.CODEA) alors elle s'affiche .
Même souci que précédemment, pour l'atlas c'est nickel (y compris avec les étiquettes) et c'est même plus efficaces par contre sous QGIS tout ne s'affiche pas. Doit falloir ajouter un test pour savoir si on est en affichage pour générer un ATLAS ou si on est en train de travailler sous QGIS.
En tout cas énorme merci pour ces astuces !
Dernière modification par kagou (Thu 28 November 2019 16:29)
Hors ligne
#10 Fri 29 November 2019 10:37
- odurr
- Participant assidu
- Lieu: Longwy
- Date d'inscription: 5 Sep 2005
- Messages: 201
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Bonjour,
il faut que vous fassiez deux styles pour votre couche; un style réservé au composeur que vous pourrez mettre dans un thème pour votre atlas et un style pour travaillez dans QGIS où vous n'aurez pas la règle de l'atlas et le tour sera joué.
Cordialement
Olivier
Hors ligne
#11 Fri 29 November 2019 10:57
- kagou
- Participant occasionnel
- Date d'inscription: 7 Apr 2010
- Messages: 27
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Bonjour,
il faut que vous fassiez deux styles pour votre couche; un style réservé au composeur que vous pourrez mettre dans un thème pour votre atlas et un style pour travaillez dans QGIS où vous n'aurez pas la règle de l'atlas et le tour sera joué.
Cordialement
Olivier
Je ne sais pas où forcer l'utilisation d'un thème spécial impression pour l'atlas
Hors ligne
#12 Fri 29 November 2019 10:58
- kagou
- Participant occasionnel
- Date d'inscription: 7 Apr 2010
- Messages: 27
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Bonjour,
il faut que vous fassiez deux styles pour votre couche; un style réservé au composeur que vous pourrez mettre dans un thème pour votre atlas et un style pour travaillez dans QGIS où vous n'aurez pas la règle de l'atlas et le tour sera joué.
Cordialement
Olivier
Je ne sais pas où forcer l'utilisation d'un thème spécial impression pour l'atlas
Hors ligne
#13 Fri 29 November 2019 15:59
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 416
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
La doc est ici (encore en anglais pour l'instant pour la v3.4) : https://docs.qgis.org/3.4/fr/docs/user_ … eme#layers
Il faut aller dans les propriétés de l'objet carte (dans le composeur d'impression), et cocher Suivre le thème de la carte + choisir le thème souhaité.
Auparavant il faut donc avoir créé le thème dans QGis, tu sais faire ?
Dans le panneau des couches il faut sélectionner les couches que tu souhaites visibles et les styles souhaités. Puis cliquer sur l'oeil dans la barre du haut et Ajouter un thème.
La doc est ici : https://docs.qgis.org/3.4/fr/docs/user_ … map-themes
Hors ligne
#14 Sun 01 December 2019 15:23
- kagou
- Participant occasionnel
- Date d'inscription: 7 Apr 2010
- Messages: 27
Re: QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ?
Merci à tous tout fonctionne désormais comme voulu !
Dernière modification par kagou (Sun 01 December 2019 15:23)
Hors ligne
Pages: 1
- Sujet précédent - QGIS 3.10: Ne pas tout afficher lors de la Generation d'un Atlas ? - Sujet suivant