Impedindo que rótulos de texto se sobreponham a outros marcadores no QGIS?


14

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:

  1. Camada de estradas rotulada usando o novo mecanismo de identificação.
  2. 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:

  1. Adicionando uma coluna ao arquivo dbf da camada de ponto.
  2. Preenchendo a coluna adicionada com Nulo ou com um espaço.
  3. Ativando a etiquetagem [novo estilo] do QGIS para a coluna adicionada.

É este o caminho a seguir ou existe um método melhor?

Mapa de exemplo

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.

  1. 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 .)
  2. 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.

Mapa de amostra 2

Testado com o QGIS 1.7 e um compilado recentemente de 1.8 no Mac OS 10.7.4.


1
Você também pode responder suas próprias perguntas. Gostaria de votar na sua solução.
Subterrâneo

Você pode fazer concatenação como eu fiz: aqui
jlSta 22/02

Respostas:


8

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:

  1. Abra o arquivo dbf com um aplicativo de planilha como o LibreOffice, Excel ou o plug-in QGIS Table Manager.
  2. Adicione uma coluna à tabela. Se um tipo de dados for necessário, use string.
  3. Preencha as células com um espaço sem quebra . Depois de concluído, salve as alterações. (Consulte esta página da Wikipedia para obter informações sobre como digitar um espaço sem quebra.)
  4. Abra as configurações de rotulagem de camada para a camada de ponto. Na guia Avançado, defina o canal como Acima do ponto e defina a prioridade de forma que seja mais alta do que qualquer outra camada rotulada.

2
Na versão 2.14, você nem precisa adicionar uma nova coluna, basta colocar '' como o rótulo #
raphael

3

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.


1

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


0

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.


Não, eu não tentei fazer isso. A principal razão pela qual não alterei o posicionamento da etiqueta é porque, em outras áreas do mapa (não na foto), a rede de estradas é consideravelmente mais densa. No exemplo acima, mover o ícone em cerca de 2 mm (qualquer direção) corrige o problema. No entanto, em outras partes do mapa, provavelmente empurraria o ícone para outro rótulo.
dman

Experimente, o rótulo provavelmente mudará para uma nova posição dinâmica. Talvez não seja o que você deseja, mas a única maneira de descobrir é tentar. A opção que eu uso está na guia avançada da nova ferramenta de etiquetas (que é encontrada na barra de ferramentas e não na caixa de diálogo de propriedades da camada).
Willy
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.