Existe-t-il une fonction ou un plugin QGIS pour tracer une ligne ondulée?
J'ai utilisé Spline Tool pour dessiner manuellement quelques vagues, mais cela prend du temps. Si possible, je voudrais dessiner quelque chose comme:
Inkscape Function Plotter
( sin(x)
courbe).
qgis
line
visualisation
linestring
Kazuhito
la source
la source
Réponses:
Je propose une solution utilisant PyQGIS. Cela devrait fonctionner à la fois pour les couches Linestring et MultiLineString.
Cette solution est basée sur la création d'anneaux semi-circulaires, vous devez donc définir une valeur pour le diamètre (c'est-à-dire la
step
variable dans le code ci-dessous). Le pas que vous choisissez ne sera pas le vrai pas utilisé car il est ajusté en fonction de la longueur de la ligne (mais il serait vraiment similaire à la valeur initialement définie). Vous devez faire quelques tentatives avant de trouver la meilleure valeur pour lastep
variable.Le code nécessite également un deuxième paramètre (facultatif) (appelé
crv_angle
), qui permet de diminuer ou d'augmenter la courbure des anneaux (j'ai effectué quelques tests pour cela, je suggère donc de laisser 45 degrés comme angle par défaut car cela conduirait à une véritable circulaire anneaux).Il vous suffit d'exécuter ce code à partir de la console Python:
et cela créera une nouvelle couche de mémoire de ligne avec le résultat attendu:
la source
Réponse courte: vous pouvez l'obtenir en utilisant un SVG personnalisé. Voir le bas de ce post pour un.
Longue réponse:
Je pense qu'il vaut mieux le représenter que de modifier la géométrie de la ligne. Si vous souhaitez déplacer un bord ou effectuer d'autres actions sur la géométrie, ce serait un cauchemar à gérer si les ondulations font partie de la géométrie au lieu d'une simple représentation d'une ligne droite.
Vous pouvez jouer avec la ligne de marqueur de style. Il existe un moyen de se rapprocher facilement de ce dont vous avez besoin, et avec un peu plus d'effort, il est probablement possible de l'obtenir exactement.
Pour obtenir cela, vous devez styliser la ligne avec deux lignes de marqueur. Chaque ligne de marqueur est constituée d'un marqueur simple, le demi-cercle. Le premier est tourné de 180. Les deux sont définis sur transparent.
Sur la ligne Marqueur, vous demandez à l'un d'eux d'être décalé afin que les deux symboles ne soient pas dessinés l'un en face de l'autre, mais côte à côte. Si vous utilisez la taille d'intervalle offest = 1/2 *, la sortie sera une courbe sinusoïdale. Je vous suggère de jouer avec la taille de l'intervalle, le décalage et la taille des symboles.
La principale limitation de cette approche est la ligne de diamètre des demi-cercles, qui correspond à la ligne d'origine. Si votre arrière-plan est blanc (ou n'importe quelle couleur unie), vous pouvez ajouter une troisième ligne simple en utilisant la couleur d'arrière-plan.
** MODIFIER **
Une autre option pour se débarrasser de la ligne médiane est de créer un nouveau symbole SVG. J'ai modifié la demi-courbe, ne vivant que la partie arrondie. Cela fonctionne, même si une 1/2 ellipse pourrait être plus attrayante. La capture d'écran a été effectuée à l'aide de la taille de symbole 10, intervalle 4, décalage 2.
enregistrez le code ci-dessous dans un fichier half_circle_line.svg et assurez-vous que le chemin vers le svg est défini dans
QGIS // Settings / Options / System / SVG Paths
la source
Pen style
pour No Pen :)