Como criar etiquetas de texto com caixas de fundo?


13

Estou tentando criar alguns rótulos personalizados para recursos de ponto em uma camada de vetor de ponto QGIS e quero escrever um plugin python para fazer isso. Precisamos que nossos rótulos sejam apresentados com retângulos coloridos atrás deles (ou então!). Os rótulos são cadeias longas e são criados usando expressões e condicionais do mecanismo de identificação.

Eu pensei que a maneira mais fácil seria permitir que o usuário configure rótulos para a camada ativa da maneira que eles desejam e, em seguida, permita que meu plug-in possa pegar o texto do rótulo nos recursos da camada e usar as cadeias de texto para criar caixas. Meu problema é que não consigo encontrar uma maneira de acessar essas cadeias de texto na API QGIS. Como as seqüências de etiquetas geradas pelo mecanismo de etiquetas são armazenadas no QGIS e como posso acessá-las?


1
Por rótulos, você quer dizer os rótulos dos recursos de pontos individuais?
RK

Sim. E eu quero que seja feito no nível da camada, não no nível do compositor de impressão. Tentei gerar automaticamente caixas de texto explicativo porque não sabia que eram recursos do compositor de impressão, e isso era realmente feio.
MonsterMushroom

1
Você já pensou em uma forte cor de buffer atrás do texto? Eu fiz isso em um trabalho. Em outra Eu apenas disse o cliente não era uma opção .... Parece um pedido comum ....
Willy

1
O forte buffer de cores é a minha solução atual. No entanto, o cliente tinha as caixas (usando um script) em sua implementação no ArcGIS e deseja ver a mesma coisa no QGIS. (Estamos tentando alterar os sistemas.) Minha resposta atual é que essa não é uma opção, mas nunca é uma resposta divertida, e eu realmente gostaria de tirar algo do meu bolso. Além disso, caixas em torno de etiquetas devem ser algo que podemos fazer. Isso faz sentido.
MonsterMushroom

Penso que a resposta para isso será que, uma vez que os rótulos são gerados pelo mecanismo de rotulagem e renderizados na tela do mapa, eles são salvos como vetores svg e não como strings e, portanto, são irrecuperáveis. Vi isso em um blog, mas ainda não consegui (tive tempo para) confirmá-lo, de modo que essa não é uma resposta oficial. (Além disso, eu aprendi que os rótulos de blindagem estão sendo trabalhadas como um complemento para o muito antecipado 2.0)
MonsterMushroom

Respostas:


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.