#1 Fri 10 April 2015 10:28
- maureen albouy
- Participant occasionnel
- Date d'inscription: 28 Jan 2015
- Messages: 33
QGIS 2.2.0 : Etiquettage sur un Atlas
Bonjour,
Je souhaite réaliser un Atlas avec les départements de ma région. Pour une question de lisibilité je souhaite afficher le nom des communes comprise uniquement sur le département représenté.
J'ai essayé ceci : Case when $id<>$atlasfeatureid then "NOM_COMM" END (formule trouvé sur Internet) mais cela ne fonctionne pas.
Comment faire ?
Merci
Hors ligne
#2 Fri 10 April 2015 10:56
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3881
Re: QGIS 2.2.0 : Etiquettage sur un Atlas
Bonjour,
QGIS 2.2, ça commence à dater donc je ne sais pas si mes solutions vont être adaptées. Beaucoup de choses ont évolué depuis, notamment sur l'atlas et sur les fonctions de relations entre couches donc...
Le code que vous utilisez va étiqueter les communes (en fait, il n'y en aura au max qu'une qui y échappera) dont le numéro d'identification (je pense que c'est l'ordre de rangement dans la table attributaire, pas trop sûr) est différent du numéro d'identification du département en cours d'atlas.
Je souhaite réaliser un Atlas avec les départements de ma région
J'en déduis donc que la couche "departement" est la couche de couverture.
Supposons que vous ayez:
- couche "departement" : code_dep, nom_dep
- couche "commune" : code_dep, code_insee, nom_commune
Dans l'onglet étiquetage de la couche "commune", la formule:
- avec une requête spatiale
Code:
case when within($geometry, $atlasgeometry) then "nom_commune" END
ou
Code:
case when within($geometry, buffer($atlasgeometry, 50)) then "nom_commune" END
des fois qu'il y aurait des problèmes de topologie entre couches (on ne sait jamais). Je pense qu'elle doit consommer de la mémoire pour ces tests mais il me semble que toutes ces fonctions existaient déjà.
- avec une requête attributaire mais attribute est une fonction apparue avec la 2.6, de mémoire.
Code:
case when "code_dep" = attribute ($atlasfeature,'code_dep') then "nom_commune" END
ou s'il n'y a pas le champ code_dep dans la couche "commune"
Code:
case when left("code_insee",2) = attribute ($atlasfeature, 'code_dep') then "nom_commune" END
Je crois avoir lu que le plugin Mask gérait quelque chose du genre mais est-ce que ces fonctionnalités sont tributaires de la version de QGIS? Je vous laisse tester.
Quoi qu'il en soit, je ne peux que vous inviter à faire évoluer votre version de QGIS et ce, d'autant que la 2.8 va être maintenue pendant un an... sans parler de toutes les évolutions qu'il y a eu cette année et dont vous ne bénéficiez pas.
Dernière modification par SANTANNA (Fri 10 April 2015 11:35)
Hors ligne
#3 Fri 10 April 2015 11:24
- maureen albouy
- Participant occasionnel
- Date d'inscription: 28 Jan 2015
- Messages: 33
Re: QGIS 2.2.0 : Etiquettage sur un Atlas
Oui je sais bien qu'il y a beaucoup plus récent, et ça ne tiendrais qu'à moi je travaillerais sur la dernière version. Mais il faut faire avec les moyens du bord ^^
En revanche, à moins que j'ai mal compris je crois que votre message n'est pas terminé
Hors ligne