Suite

Étiqueter uniquement les entités sélectionnées à l'aide de QGIS ?

Étiqueter uniquement les entités sélectionnées à l'aide de QGIS ?


Est-il possible de créer une expression qui n'étiquette que l'entité sélectionnée dans QGIS ? Je l'ai essayé avec cette expression dans l'onglet étiquette :

attribut( $currentfeature, 'LAENGE' )

mais il étiquette tout et pas seulement les sélectionnés :


Oui, c'est possible, en utilisant le nouvel éditeur de fonctions Python dans la version 2.8 ou ultérieure. Pour un bon tutoriel, regardez cette vidéo youtube

Votre expression existante affichera toujours la valeur du champ "LAENGE" pour toutes les fonctionnalités, cela fonctionne comme prévu.

Ce que vous voulez vraiment, c'est une fonction $is_selected() qui évalue à True si la fonctionnalité est sélectionnée, ou à False si ce n'est pas le cas.

Créez une fonction python comme celle-ci et nommez-la "is_selected"

de qgis.core import * de qgis.gui import * de qgis.utils import * @qgsfunction(args=0, group="Python") def is_selected(values,feature,parent): layer = qgis.utils.iface.activeLayer () renvoie feature.id() dans layer.selectedFeaturesIds()

Vous pouvez désormais ajouter dynamiquement des étiquettes uniquement aux entités sélectionnées (cela ralentira cependant le rendu, alors soyez prudent si vous avez beaucoup de polygones)

Voici un exemple, j'ai étiqueté chaque polygone avec la valeur is_selected()

Vous devriez maintenant pouvoir l'utiliser dans une instruction CASE pour étiqueter uniquement les entités sélectionnées.

Pourriez-vous vérifier Lors de l'itération sur une couche vectorielle avec pyqgis, comment puis-je vérifier si une entité est sélectionnée?, ce que j'ai trouvé utile pour résoudre ce problème.


Voir la vidéo: La Minute QGIS: Comment faire une sélection géographique?