Comment créer des étiquettes de texte avec des boîtes d'arrière-plan?

13

J'essaie de créer des étiquettes personnalisées pour les entités ponctuelles dans une couche vectorielle de points QGIS, et je veux écrire un plugin python pour le faire. Nous avons besoin que nos étiquettes soient présentées avec des rectangles teintés de couleur derrière eux (ou bien!). Les étiquettes sont de longues chaînes et sont créées à l'aide d'expressions et de conditions du moteur d'étiquetage.

Je pensais que le moyen le plus simple serait de laisser l'utilisateur configurer les étiquettes du calque actif comme il le souhaite, puis de laisser mon plugin récupérer le texte de l'étiquette des entités du calque et utiliser les chaînes de texte pour créer des boîtes. Mon problème est que je ne trouve pas un moyen d'accéder à ces chaînes de texte dans l'API QGIS. Comment les chaînes d'étiquettes générées par le moteur d'étiquetage sont-elles stockées dans QGIS et comment puis-je y accéder?

MonsterMushroom
la source
1
Par étiquettes, entendez-vous les étiquettes des entités ponctuelles individuelles?
RK
Oui. Et je veux que cela se fasse au niveau des calques, pas au niveau du compositeur d'impression. J'ai essayé de générer automatiquement des zones de légende de texte parce que je ne savais pas que c'était des fonctionnalités de compositeur d'impression, et c'était vraiment moche.
MonsterMushroom
1
Avez-vous pensé à une couleur de tampon forte derrière le texte? Je l'ai fait sur un travail. Sur un autre, je viens de dire au client que ce n'était pas une option .... Cela semble une demande courante ....
Willy
1
Le tampon de couleur fort est ma solution actuelle. Cependant, le client avait les boîtes (à l'aide d'un script) dans son implémentation ArcGIS, et il souhaite voir la même chose dans QGIS. (Nous essayons de changer de système.) Ma réponse actuelle est que ce n'est pas une option, mais ce n'est jamais une réponse amusante, et j'aimerais vraiment sortir quelque chose de ma poche. De plus, les boîtes autour des étiquettes devraient être quelque chose que nous pouvons faire. C'est tout à fait logique.
MonsterMushroom
Je pense que la réponse à cela va être qu'une fois que les étiquettes sont générées par le moteur d'étiquetage et rendues sur le canevas de carte, elles sont enregistrées en tant que vecteurs svg, et non en tant que chaînes et sont donc irrécupérables. J'ai vu cela sur un blog mais je n'ai pas encore pu (eu le temps de) le confirmer, ce n'est donc pas une réponse officielle. (En outre, j'ai appris que les étiquettes de bouclier sont en cours d'élaboration en tant qu'addition pour le très attendu 2.0)
MonsterMushroom

Réponses:

1

Dans QGIS 2.0, vous pouvez créer des rectangles d'arrière-plan, des ovales ou des formes SVG personnalisées sans avoir besoin d'un plugin. Accédez simplement aux Propriétés du calque | Étiquette | Section de fond.

entrez la description de l'image ici

Si vous voulez coder quelque chose. Cela pourrait être un point de départ: http://doc.qgis.org/api/qgspallabeling_8cpp_source.html#l04333

obscur
la source
Charmant! 2.0 va être cinq types de cool. Nous l'attendons avec haleine.
MonsterMushroom