Eu desenhei um mapa de fluxo OD usando o gerador de geometria QGIS, usando a seguinte expressão:
make_line( centroid( $geometry ),
centroid( geometry( get_feature( 'Layer2', 'Attribute1', attribute(
$currentfeature, 'Attribute2') ) ) ) )
Fiz tudo bem, definindo a largura das minhas linhas de acordo com os atributos.
Mas quando amplio o zoom para o "hub", as linhas vinculadas a lugares fora da tela do mapa não são exibidas. Eu acho que é porque os recursos não devem aparecer no mapa.
Tentei desmarcar a opção "Recortar recursos até a extensão da tela" no menu avançado, tanto no nível "Gerador de geometria" quanto nos níveis de "Linha", mas ainda não aparece.
Eu gostaria que todas as minhas linhas aparecessem, mesmo quando ampliadas no hub.
qgis
symbology
mapcanvas
geometry-generator
mamouthautapis
fonte
fonte
Respostas:
O problema aqui é que não há dados reais dizendo "há uma linha aqui". Sua expressão faz parte do estilo de camada e só é encontrada no processo de renderização quando dois pontos aplicáveis também estão sendo renderizados.
Tente usar a ferramenta Distância até o hub mais próximo , encontrada na caixa de ferramentas de processamento em Ferramentas de análise vetorial. Observo que você está selecionando polígonos específicos para seus raios e estilizando as linhas de acordo com outros atributos. Isso é possível, mas você precisará fazer algumas coisas para se preparar. Felizmente, a ferramenta usa automaticamente os centróides quando as entradas de polígonos são escolhidas.
A saída resultante mantém todos os atributos da entrada da camada 'SPOKES'; portanto, os atributos necessários para o estilo da linha ainda estarão presentes. Como sua própria camada vetorial, as linhas permanecerão visíveis em todos os níveis de zoom, independentemente da visibilidade de qualquer ponto de extremidade.
Se você estiver familiarizado com o Graphical Modeler, pode até criar essas etapas em um único processo para não sobrecarregar sua área de trabalho com camadas desnecessárias.
fonte
Foi encontrada a seguinte solução alternativa: Use uma camada virtual adicional em vez de um gerador de geometria para exibir as linhas.
Definição da camada virtual:
(a geometria original pode ser referenciada usando
m.geometry
)Para garantir que a camada virtual seja atualizada quando my_layer for editado, vá para propriedades da camada | dependências e verifique se my_layer está marcado (que está acinzentado por padrão).
fonte