Estou tentando obter o mesmo estilo de etiqueta que a orientação de posicionamento perpendicular do ArcGIS no QGIS. Como o QGIS não possui esse recurso como padrão, a opção seria usar um posicionamento personalizado para isso.
Um exemplo do ArcGIS:
Uma solução alternativa no QGIS
Definições:
Coordenada definida pelos dados X (rótulo no meio da linha):
$x_at( num_points( $geometry)/2)
Coordenada definida pelos dados Y (igual à localização de X):
$y_at( num_points( $geometry)/2)
Rotação definida pelos dados:
angle_at_vertex( $geometry , num_points( $geometry)/2)
Para apenas 2/3 rótulos, o posicionamento é aceitável. Para linhas com muitas quebras com ângulos diferentes, é mais difícil obter um bom rótulo.
O ArcGIS parece pesquisar o segmento de linha com menos quebras ou um segmento reto. Existe uma maneira de obter coordenadas ou geometria do segmento de linha mais reta usando o construtor Expression para um melhor posicionamento da etiqueta?
line_interpolate_angle($geometry, some lenght)
e tendo váriosangle_at_vertex( $geometry , num_points( $geometry))
. Um loop sobre essa função pode ser uma abordagem, mas eu não posso fazê-lo diretamente no construtorRespostas:
Solução real
Suponha que este tipo de geometrias:
Eu tentei encontrar uma boa colocação. Também estou trabalhando com atlas, então usei uma distância de 3% do recurso atlas da parte central da linha de interpolação por vértices do recurso para colocar rótulos:
Algo assim:
E eu crio uma seta do vértice médio do recurso para o rótulo:
Definições:
Seta:
Gerador de geometria
Rótulo
Dados definem X
Dados definem Y
Talvez isso possa ser útil para alguém.
Se houver uma abordagem melhor, fico feliz em recebê-la.
fonte