Existe uma função QGIS ou plugin para desenhar uma linha ondulada?
Eu usei a Spline Tool para desenhar manualmente algumas ondas, mas isso consome tempo. Se possível, eu gostaria de desenhar algo como:
Inkscape Function Plotter
( sin(x)
curva).
qgis
line
visualisation
linestring
Kazuhito
fonte
fonte
Respostas:
Proponho uma solução usando PyQGIS. Deve funcionar para as camadas Linestring e MultiLineString.
Esta solução é baseada na criação de anéis semicirculares, então você precisa definir um valor para o diâmetro (ou seja, a
step
variável no código abaixo). A etapa escolhida não será a real usada, pois é ajustada com base no comprimento da linha (mas seria muito semelhante ao valor definido inicialmente). Você precisa fazer algumas tentativas antes de encontrar o melhor valor para astep
variável.O código também requer um segundo parâmetro (opcional) (chamado
crv_angle
), que ajuda a diminuir ou aumentar a curvatura dos anéis (realizei alguns testes para isso, então sugiro deixar 45 graus como ângulo padrão, pois isso levaria a uma circular real argolas).Você só precisa executar este código no Python Console:
e criará uma nova camada de memória de linha com o resultado esperado:
fonte
Resposta curta: você pode obtê-lo usando um SVG personalizado. Veja a parte inferior deste post para um.
Resposta longa:
Eu acredito que é melhor representá-lo do que modificar a geometria da linha. Se você deseja mover uma aresta ou executar outras ações na geometria, seria um pesadelo gerenciar se as manobras são parte da geometria, em vez de apenas uma representação de uma linha reta.
Você pode jogar com a linha de marcador de estilo. Existe uma maneira de se aproximar facilmente do que você precisa e, com um pouco mais de esforço, é provável que seja possível obtê-lo exatamente.
Para conseguir isso, você estilizaria a linha com duas linhas de marcador. Cada linha do marcador é composta de um marcador simples, o semicírculo. O primeiro é girado em 180. Ambos estão definidos como transparentes.
Na linha Marcador, você instrui um deles a ser deslocado para que os dois símbolos não sejam desenhados um frente ao outro, mas lado a lado. Se você usar o tamanho do intervalo offest = 1/2 *, a saída será uma curva sinusoidal. Eu sugiro que você brinque com o tamanho do intervalo, deslocamento e tamanho dos símbolos.
A principal limitação dessa abordagem é a linha de diâmetro dos semicírculos, que soma à linha original. Se o fundo for branco (ou qualquer cor lisa), você poderá adicionar uma terceira linha simples usando a cor de fundo.
** EDIT **
Outra opção para se livrar da linha central é criar um novo símbolo SVG. Modifiquei a meia curva, vivendo apenas a parte arredondada. Funciona, embora uma elipse de 1/2 possa ser mais atraente. A captura de tela foi feita usando o tamanho do símbolo 10, intervalo 4, deslocamento 2.
salve o código abaixo em um arquivo half_circle_line.svg e verifique se o caminho para o svg está definido em
QGIS // Settings / Options / System / SVG Paths
fonte
Pen style
que nenhuma pena :)