Essa dica é pra você que teve necessidade de colocar rótulos em feições com geometrias muito próximas e precisa mover os rótulos adicionando uma linha guia, ou linha de chamada entre o rótulo e as feições. Eu tive essa necessidade recentemente no trabalho e encontrei essa dica fantástica do Alexandre Neto, do blog SIG sem grilhetas, de como inserir rótulos com linha de chamada no QGIS.
O Alexandre usou uma view no Postgis para automatizar a criação das linha de chamada para os rótulos que são movidos de sua posição original. Veja o resultado abaixo:
No meu caso eu consegui resolver meu problema com os rótulo usando essa solução QGIS + Postgis. Mas essa solução, ao meu ver, esbarra em alguns problemas.
O principal deles é que nem todo mundo usa o Postgis, ou outro banco de dados espacial suportado pelo QGIS como o SpatiaLite, MSSQL Spatial ou Oracle Spatial. Tudo bem que depois da versão 2.14 você poderia adotar o recurso Virtual layers e fazer isso sem precisar instalar um desses banco de dados na sua máquina.
Mas convenhamos que isso limita o uso dessa solução para uma grande parcela dos usuários que não manjam dos paranauês de banco de dados e linguagem SQL.
O outro problema é estético e operacional, leia-se frescuragem desse que vós fala, que é a necessidade da criação de uma nova camada para renderizar as guias dos rótulos. Ou seja uma camada a mais no meio de trocentas outras que temos que lidar no dia a dia.
No exemplo acima a camada labels_leaders, é quem renderiza a guia que conecta o rótulo ao centroide da feição.
Criando rótulos com linha de chamada no QGIS
Pois bem, quebrando um pouco a cabeça podemos chegar num resultado idêntico ao do Alexandre. Mas no nosso caso sem a necessidade de um banco de dados espacial e nem daquela camada extra para renderizar as linhas de chamada.
Iremos usar apenas a tabela de atributos e a função de geração de geometria para resolver nosso problema. Lembrando que para isso você vai precisar do QGIS 2.14 ou superior, uma vez que o Gerador de Geometrias não está presente nas versões anteriores.
Veja o passo a passo no vídeo abaixo:
Expressões para a criação das guias ( no QGIS
Rótulo ao centróide com curva de 90º:
make_line ( make_point( "X" , "Y" ), -- posição do rótulo make_point( "X", y(centroid( $geometry ))), -- posição do ponto intermediário make_point( x(centroid( $geometry )), y(centroid( $geometry ))) --posição do centroide da geometria )
Rótulo ao centróide:
make_line ( make_point( "X" , "Y" ), -- posição do rótulo make_point( x(centroid( $geometry )), y(centroid( $geometry ))) --posição do centroide da geometria )
Rótulo ao ponto mais próximo:
make_line ( make_point( "X" , "Y" ), -- posição do rótulo closest_point( $geometry, make_point( "X" , "Y" ) ) --posição do ponto mais próximo )
Para mais tutorias de QGIS como esse acesse: https://narceliodesa.com/category/tutoriais/
O que vocês acharam deste tutorial
Rótulos com linha de chamada no QGIS ?
Aguardo seus comentários, dicas e sugestões.
💵 Faça uma doação para o canal via Picpay: https://app.picpay.com/user/narceliodesa
💵 Ou faça uma doação via PIX: [email protected]
⭐ Nos siga em todas as plataformas: https://linktr.ee/narceliodesa
📬 Contato comercial: [email protected]