Est-il possible d'accéder à QGIS Map Canvas en tant que variable ou valeur d'expression à utiliser dans le calculateur de champ ou le moteur d'étiquetage?
(c.-à-d. afin que vous puissiez créer une expression qui sélectionne / interroge des entités qui sont visibles / présentes dans une vue particulière de la toile de la même manière que le compositeur d'impression «filtre la légende par le contenu de la carte»)
(QGIS 2.18.1 [osgeo4w], win7)
EDIT:
Cas d'utilisation potentiel (fictif) 1 - Il y a 50 polygones dans une couche, actuellement il y a 20 polygones visibles dans la vue actuelle du canevas de carte, je voudrais styliser le bleu du polygone s'il y a <= 25 polygone visible ou les styliser en vert s'il y a> = 25 polygones visibles.
Cas d'utilisation potentiel (fictif) 2 - Il y a 50 polygones dans une couche, actuellement il y a 10 polygones visibles, 5 qui ont une valeur d'attribut "Maison" dans le champ / la colonne "Type de bâtiment" et 5 qui ont la valeur de 'Garage' dans le champ / la colonne "Type de bâtiment", visible dans la vue actuelle du canevas de la carte. Retour: la valeur égale au nombre de polygones qui sont des garages ... réponse = 5.
la source
is_selected
fonction pour savoir si une entité est sélectionnée. Cela pourrait valoir la peine d'avoir plus de détails sur ce que vous aimeriez faire.Réponses:
Un outil pour aller au-delà des variables actuellement disponibles serait une expression personnalisée python.
À ma connaissance, il s'agit du seul outil actuellement disponible pour accéder au canevas de carte de la manière dont vous décrivez et utilisez ces informations dans les expressions.
Pour résoudre votre cas d'utilisation fictif 1, vous pouvez faire quelque chose comme ceci:
Ensuite, vous pouvez configurer des styles basés sur des règles à l'aide de filtres tels que:
L'API de canevas complète peut être trouvée ici .
la source