Existe uma maneira no QGIS de impedir que rótulos de texto se sobreponham a ícones usados para rotular uma camada de ponto?
No mapa de exemplo mostrado abaixo, existem duas camadas:
- Camada de estradas rotulada usando o novo mecanismo de identificação.
- Uma camada de pontos que usa ícones svg para mostrar os escudos da estrada.
Eu tenho outros casos de uso para isso, como impedir a sobreposição de ícones de estações ferroviárias. Neste exemplo, eu poderia simplesmente mudar o ponto, no entanto, em outros casos, como uma estação de metrô, isso não é uma solução viável.
Uma possível solução que estou considerando envolveria:
- Adicionando uma coluna ao arquivo dbf da camada de ponto.
- Preenchendo a coluna adicionada com Nulo ou com um espaço.
- Ativando a etiquetagem [novo estilo] do QGIS para a coluna adicionada.
É este o caminho a seguir ou existe um método melhor?
Informações sobre o QGIS: Estou usando as versões 1.7.4 e uma versão compilada recentemente do 1.8 no Mac OS 10.7.4. As versões Linux e Windows também estão disponíveis para mim.
Atualização de progresso : O método que descrevi acima funciona, embora sejam necessárias duas modificações no processo.
- Em vez de usar um caractere de espaço ou um Nulo , um espaço sem quebra deve ser usado. Durante o teste, os campos com Nulo não são renderizados e os campos com apenas um (s) espaço (s) são convertidos em Nulo . (Consulte esta página da Wikipedia para obter informações sobre como digitar um espaço sem quebra .)
- Ao definir as configurações de rotulagem de camada, na guia Avançado, defina o posicionamento como Acima do ponto . Defina também a prioridade de forma que seja mais alta do que qualquer outra camada rotulada.
Dependendo do tamanho do ícone usado, algumas experiências podem ser necessárias para que as coisas funcionem conforme o esperado. Dependendo da circunstância, pode ser mais fácil usar vários caracteres do que tentar aumentar o peso e / ou o tamanho da fonte.
Testado com o QGIS 1.7 e um compilado recentemente de 1.8 no Mac OS 10.7.4.
Respostas:
A melhor solução consistente que tenho até agora é nos moldes do que expus acima. Supondo que um arquivo SHP seja usado, as etapas são:
fonte
Eu sei que isso é antigo, mas você pode adicionar uma coluna "Coordenada X" e "Coordenada Y" (precisão dupla) à tabela que contém essas informações e, em seguida, vá para a guia "Configurações definidas por dados" em Rótulos nas propriedades da camada e altere Coordenada X e Y coordenadas em conformidade. Depois de fazer isso, você pode mover o rótulo à mão livre usando o botão Mover rótulo.
fonte
Acabei de publicar outra resposta para um problema semelhante. A abordagem usa símbolos svg em vez de camadas e utiliza a substituição de dados definida para definir o caminho para um símbolo svg distinto para cada valor de atributo, cp. minha resposta aos símbolos acima dos rótulos no mapa QGIS
fonte
Você pode experimentar o deslocamento do rótulo.
Acho que permite que o posicionamento da etiqueta seja mais dinâmico, se eu o definir para 2 mm ou mais.
fonte