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

GEODATA DAYS 2024

#1 Fri 19 March 2021 18:00

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

QGIS: Etiquettes basees sur des regles

Bonjour,,
Je dois effectuer un atlas sur la représentation de tronçons de lignes. J'arrive à réaliser l'atlas mais aussi l'étiquetage sur le tronçon mis en valeur sur l'atlas avec cette expression :
CASE WHEN $id=@atlas_featureid then  "troncon" END
Je précise que l'étiquetage est basé sur deux types : TRACE et VARIANTE;

Ce que je n'arrive pas à faire, c'est l'étiquetage des autres tronçons.
J'ai bien dupliqué la couche, fait un catégorisé sur le type et l'étiquetage qui va avec. Le problème est que l'étiquetage de la couche dupliquée entre en conflit avec l'étiquetage de la couche principale. En effet lorsque ne s'affiche  que l'étiquette du tronçon visible dans l'atlas, il y a aussi la même étiquette mais de la couche dupliquée.
Comment faire pour afficher l'étiquetage du tronçon visible et les autres, sans que ceux-ci n'entrent en conflit.
En espérant avoir été clair, Merci.

Hors ligne

 

#2 Fri 19 March 2021 20:37

Julien81
Participant assidu
Lieu: Giroussens
Date d'inscription: 14 Jan 2019
Messages: 171

Re: QGIS: Etiquettes basees sur des regles

Bonjour
Peut-être employer l'expression "inverse" sur votre couche dupliquée, genre :
CASE WHEN $id=!@atlas_featureid then  "troncon" END

si j'ai bien compris et que le conflit d'étiquette ne concerne du coup que l'entité courante (double étiquette, couche+couche dupliquée)

Hors ligne

 

#3 Fri 19 March 2021 22:13

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Etiquettes basees sur des regles

Peut-être employer l'expression "inverse" sur votre couche dupliquée, genre :
CASE WHEN $id=!@atlas_featureid then  "troncon" END


Merci c'était presque cela. Sur la couche dupliquée j'ai mis
Peut-être employer l'expression "inverse" sur votre couche dupliquée, genre :
CASE WHEN $id is not @atlas_featureid then  "troncon" END

Et ça marche. Encore merci.

Par contre sur les communes qui sont concernées par le tronçon sur l'atlas, peut-on faire la même chose. C'est-à-dire un symbole lorsqu'elles sont traversées pas le tronçon dans l'atlas et un autre symbole lorsque ce n'est pas le cas?

Hors ligne

 

#4 Fri 19 March 2021 22:25

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Etiquettes basees sur des regles

oulala, je reposte pas très clair tout cela

DONC :

Merci c'était presque cela. Sur la couche dupliquée j'ai mis

CASE WHEN $id is not @atlas_featureid then  "troncon" END

Et ça marche. Encore merci.

Par contre sur les communes qui sont concernées par le tronçon sur l'atlas, peut-on faire la même chose. C'est-à-dire un symbole lorsqu'elles sont traversées pas le tronçon dans l'atlas et un autre symbole lorsque ce n'est pas le cas?

Hors ligne

 

#5 Sat 20 March 2021 21:13

Julien81
Participant assidu
Lieu: Giroussens
Date d'inscription: 14 Jan 2019
Messages: 171

Re: QGIS: Etiquettes basees sur des regles

Bonjour
super si vous avez pu faire l'ajustement pour votre couche dupliquée!
Oui je pense que si vous rapatriez par exemple le code insee de vos communes sur chaque tronçon de cable (1 tronçon serait ainsi associé à une commune), vous pourriez ensuite appliquer une expression sur votre couche commune du même genre en cas de correspondance des codes entre l'entité de l'atlas de votre couche troncon et la couche commune, une symbologie catégorisée :

Code:

CASE WHEN attribute(@atlas_feature, 'insee_com')="INSEE" THEN 'Commune du tronçon courant de l''atlas'
ELSE 'Autres Communes' END

Expression sur la couche commune bien entendu, et dans la mesure ou vous disposez d'un code insee par troncon couche qui vous sert pour l'atlas!

Après on peut tout autant utiliser une expression vérifiant l'intersection des géometries si vous n'avez/ne voulez pas d'identifiant commun mais selon le volume d'entités dans vos couches etc.... le faire en dynamique sur les géom peut être long pour l'affichage de vos symbologies catégorisées..

Hors ligne

 

#6 Mon 22 March 2021 12:07

conejo
Participant assidu
Lieu: Lunel
Date d'inscription: 2 Dec 2005
Messages: 1656

Re: QGIS: Etiquettes basees sur des regles

Bonjour,

Je suis un peu déconcerté par votre requête. Pourriez-vous m'aiguiller là-dessus :

Couche commune : COMMUNES_TRACE.shp
Champ insee de COMMUNES_TRACE.shp : INSEE_COM
Couche des tronçons : test.shp
Ce shape contient le code insee rapatrié de la couche COMMUNES_TRACE.shp

Pourriez-vous adapter votre requête avec les éléments cités plus haut.

CASE WHEN attribute(@atlas_feature, 'insee_com')="INSEE" THEN 'Commune du tronçon courant de l''atlas'
ELSE 'Autres Communes' END

Merci.

Hors ligne

 

#7 Mon 22 March 2021 21:42

Julien81
Participant assidu
Lieu: Giroussens
Date d'inscription: 14 Jan 2019
Messages: 171

Re: QGIS: Etiquettes basees sur des regles

Bonjour

1-je voulais dire que du coup dans votre couche test.shp il faut également un code insee par entité (calculatrice de champ permet de le récupérer de différentes manières, ou boite à outils ou SQL), comme j'ai compris que c'est cette couche qui vous sert de couche d'atlas!
2-Ensuite, créer un style catégorisé sur COMMUNE_TRACE.shp avec l'expression citée, seul le 'insee_com' est peut être à remplacer fonction du nom que vous donnerez au champ des codes insee en 1

Code:

CASE WHEN attribute(@atlas_feature, 'insee_com')="INSEE_COM" THEN 'Commune du tronçon courant de l''atlas'
ELSE 'Autres Communes' END

Ainsi vous aurez deux catégories (Peut-être à créer manuellement si vous n'avez pas activé le mode atlas) pour la couche commune que vous pourriez étiquetter sur le même principe que la différentiation symbologique opérée par l'expression :
A-une catégorie 'Autres communes' qui sera le symbole/étiquette de base (toutes les communes sauf B)
B-une catégorie 'Commune du tronçon courant de l'atlas' dès lors que l'atlas est activé avec votre couche test.shp, pour la commune ayant le même code insee que le tronçon courant de l'atlas

Dernière modification par Julien81 (Mon 22 March 2021 21:45)

Hors ligne

 

Pied de page des forums

Powered by FluxBB