Fazendo linhas curvas usando QGIS?

10

Não tenho muita experiência com o QGIS e estou trabalhando em um mapa com linhas que conectam locais criados com o plug-in mmqgis. Existe uma maneira fácil de tornar essas linhas diretas um pouco curvilíneas para fins estéticos?

Estou tentando conseguir algo como o mapa abaixo, mas com vários hubs. Eu li sugestões sobre como fazer isso com o PostGIS e outras ferramentas avançadas, por isso fiz minha pesquisa (incluindo outras postagens aqui) e tentei usar vários plug-ins, e estou especificamente pedindo uma solução fácil, porque não tem muita experiência.

Exemplo

darj
fonte
existe uma maneira de desfazer a curva ao editar ou desfazer um ponto em que você a colocou acidentalmente?
3mm
Bem-vindo ao GIS SE! Como novo usuário, faça um breve tour para aprender sobre o formato de perguntas e respostas focado neste site. Se você tiver uma pergunta, use o link Fazer pergunta em vez de postar uma resposta.
Andy
Se você tiver uma nova pergunta, faça-o clicando no botão Fazer pergunta . Inclua um link para esta pergunta se ela ajudar a fornecer contexto. - Do comentário
csk

Respostas:

6

Se você estiver usando o QGIS 2.12 ou posterior, terá a ferramenta " Adicionar cadeia circular " em " Barra de ferramentas de digitalização ". Ou você pode tentar o " plugin Spline ".

(LHS) Adicionar ferramenta de cadeia circular durante a digitalização, (RHS) Ferramenta spline durante a digitalização

digitalização

Você pode ver a ferramenta Adicionar seqüência circular (LHS) desenha uma linha circular ou semi-circular, enquanto a ferramenta Spline (RHS) interpola pontos para ajustar sua linha à curva spline. Qualquer que seja a sua escolha, basta clicar em 3 pontos: ponto inicial, ponto da curva e ponto final.

E você receberá:

resultado

Existem outras ferramentas, como o CadTools, mas será mais interessante se você o encontrar.

Kazuhito
fonte
11
Obrigado. Não estou procurando criar linhas, mas curvar (não manualmente) as que já criei com o mmqgis. Também não está procurando emoção, apenas algo para fazer o trabalho. É por isso que eu vim aqui, então qualquer ajuda seria apreciada! :) #
26416 darj
11
Entendi, obrigado. E desculpe, eu estava enganado. Agora eu entendo que você já possui as Linhas de Hub criadas pelo plug-in MMQGIS.
Kazuhito
6

Use o estilo de setas em vez do estilo de linha simples.

Por exemplo, estas linhas com estilo de linha simples:

insira a descrição da imagem aqui

parecido com este no estilo Arrow:

insira a descrição da imagem aqui

Você pode desativar as pontas das setas, definindo a largura e o comprimento da cabeça como 0.

Como você pode ver, a linha reta se torna uma seta reta, enquanto as linhas com um vértice do meio se tornam setas curvas. A colocação do vértice do meio determina a curva da seta.

Para converter suas linhas retas em setas curvas, você precisará adicionar um vértice do meio a todas as linhas e depois compensá-lo o suficiente para gerar uma seta curva.

Use o estilo Geometry Generator com o tipo Geometry: Linestring. Essa expressão criará uma linha com um ponto médio de 200 unidades de distância a leste e norte do ponto médio original da linha.

  make_line( start_point( $geometry), translate( centroid( $geometry), 200,200), end_point($geometry))

Altere a linha para exibir como um estilo de seta. Ajuste os valores de deslocamento do centróide na expressão do gerador de geometria até ficar satisfeito com a forma das setas. Se desejar, você pode torná-los proporcionais ao comprimento da linha original, por exemplo $length/10. A expressão completa seria:

make_line( start_point( $geometry), translate( centroid( $geometry), $length/10, $length/10), end_point($geometry))

Veja como é, com as linhas originais em rosa e as setas geradas pela geometria em preto:

insira a descrição da imagem aqui

Se você não estiver satisfeito com o posicionamento do ponto médio da linha, poderá ajustá-los manualmente. Primeiro, converta o estilo de linha gerado pela geometria em uma camada real. Copie a expressão do gerador de geometria para a geometry by expressionferramenta (caixa de ferramentas Processando). Em seguida, use a ferramenta Vertex (barra de ferramentas Digitalização) para mover manualmente os vértices.

Nota: Esta resposta foi feita com o QGIS 3.4.

csk
fonte
4

Você precisa fazer mais algumas etapas: (Eu tenho a versão em holandês, por isso, se não for a tradução correta, desculpe). Como o @bugmenot fez, mas escolha novamente Fill e altere-o de Symbol Layer Type Preenchimento padrão para: 'Rand / Edge?: Arrow. Fiz um preenchimento gradual com vários efeitos [geleiddelijke vulling] no último 'Preenchimento'. Espero que tenha ajudado. insira a descrição da imagem aqui

Willem
fonte
Obrigado! É possível ajustar o ângulo da curva para que fique mais plana como na imagem que publiquei?
27416 darj
Eu não acho que isso é possível. Talvez com alguns scripts em Python, mas essa não é a minha xícara de chá.
Willem