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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Wed 04 December 2019 16:55

Groflo
Membre
Date d'inscription: 3 Jun 2013
Messages: 80

QGIS 3: des etiquettes d'une couche selon perimetre d'une autre

Bonjour,

Je réalise des cartes similaires pour différents territoires.
Pour l'un des types de carte, j'utilise un fond de carte national, et selon le territoire que je veux représenter, je zoom sur le territoire, avec une mise en forme permettant de l'isoler (polygones inversés avec fond blanc).

Seulement, les étiquettes que je veux faire apparaitre sont celles du fond de carte (qui est une maille de vecteurs).

De fait, si j'active les symboles pour ce fond de carte, les données du territoire mais aussi celle autour du territoire sont visibles.

Je n'ai pas trouvé comment faire pour dire à mon fond de carte : « n'affiche que les données qui sont sur le périmètre de la couche territoire » (ou son corollaire « n'affiche pas les symboles qui ne sont pas situés dans le vecteur territoire »).

Est-ce possible simplement, par une règle par exemple ? Sachant que j'ai un grand nombre de ce type de carte par territoire (une 30aine environ de fonds de carte nationaux à peu près), si j'avais quelque chose de simple ça m'arrangerait !

Merci par avance, Groflo

Hors ligne

 

#2 Wed 04 December 2019 17:03

GlaDal
Membre
Date d'inscription: 30 Aug 2013
Messages: 482

Re: QGIS 3: des etiquettes d'une couche selon perimetre d'une autre

Oui c'est possible, il suffit de mettre l'expression suivante dans l'onglet étiquetage des couches concernées :

CASE WHEN NOT disjoint(centroid($geometry),@atlas_geometry) THEN "CHAMPetiquette" ELSE '' END

Hors ligne

 

#3 Thu 05 December 2019 12:02

Groflo
Membre
Date d'inscription: 3 Jun 2013
Messages: 80

Re: QGIS 3: des etiquettes d'une couche selon perimetre d'une autre

Bonjour,

Merci pour votre réponse, mais ça ne fonctionne pas. Ou plus précisément, je n'ai pas trouvé comme le faire fonctionner.

J'ai par exemple :
- Une couche EPCI, symbologie en polygones inversés pour masquer tout ce qui dépasse de la couche ;
- Ma couche « fond de carte », sur laquelle en plus je veux afficher les étiquettes.
J'ai également toute une série de couche fond cartes autres en dessous, mais non visibles (je modifie la visibilité de chacune pour extraire la carte qui m'intéresse à chaque fois, selon les cas).

Si je mets sur ma couche fond de carte l'expression que vous avez donnée, ça continue de m'afficher partout les étiquettes, comme si je n'avais rien changé.

J'ai ensuite pensé que ça pouvait en fait agir sur le composeur de cartes, mais lorqsue je fais une nouvelle mise en page, alors que les étiquettes s'affichent sur ma fenêtre de travail, elles ne s'affichent nulle part pas dans le composeur de cartes.

Bref, une idée de ce que je fais de travers ?

Merci.

Hors ligne

 

#4 Thu 05 December 2019 13:08

GlaDal
Membre
Date d'inscription: 30 Aug 2013
Messages: 482

Re: QGIS 3: des etiquettes d'une couche selon perimetre d'une autre

Bonjour,

Je suis parti du principe que vous travaillez avec un atlas...

Hors ligne

 

#5 Thu 05 December 2019 14:58

Groflo
Membre
Date d'inscription: 3 Jun 2013
Messages: 80

Re: QGIS 3: des etiquettes d'une couche selon perimetre d'une autre

GlaDal a écrit:

Bonjour,

Je suis parti du principe que vous travaillez avec un atlas...


Ah d'accord je comprends mieux. Mais non, pas d'atlas, malheureusement (ça me simplifierait pas mal la vie), car mon atlas ne serait pas sur plusieurs parties d'une couche, mais sur plusieurs couches ! (j'avais d'ailleurs créé un sujet à ce propos ici-même).

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |