Faire des lignes courbes avec QGIS?


10

Je n'ai pas beaucoup d'expérience avec QGIS et je travaille sur une carte avec des lignes reliant des emplacements créés avec le plugin mmqgis. Existe-t-il un moyen facile de rendre ces lignes directes quelque peu sinueuses à des fins esthétiques?

J'essaie de réaliser quelque chose comme la carte ci-dessous mais avec plusieurs hubs. J'ai lu des suggestions sur la façon de le faire avec PostGIS et d'autres outils avancés, j'ai donc fait mes recherches (y compris d'autres articles ici) et essayé d'utiliser plusieurs plugins, et je demande spécifiquement une solution facile parce que je ne le fais pas ont beaucoup d'expérience.

Exemple


existe-t-il un moyen d'annuler la courbe lors de l'édition ou d'annuler un point où vous l'avez accidentellement placé?
3 mm le

Bienvenue dans GIS SE! En tant que nouvel utilisateur, assurez-vous de faire le petit tour pour en savoir plus sur le format de questions / réponses ciblé de ce site. Si vous avez une question, veuillez utiliser le lien Poser une question plutôt que de poster une réponse.
Andy

Si vous avez une nouvelle question, veuillez la poser en cliquant sur le bouton Poser une question . Incluez un lien vers cette question si cela permet de fournir un contexte. - De l'avis
csk

Réponses:


6

Si vous utilisez QGIS 2.12 ou une version ultérieure, vous disposerez de l' outil " Ajouter une chaîne circulaire " dans la " Barre d'outils de numérisation ". Ou vous pouvez essayer le " plugin Spline ".

(LHS) Ajouter un outil de chaîne circulaire pendant la numérisation, (RHS) Outil spline pendant la numérisation

numérisation

Vous pouvez voir l' outil Ajouter une chaîne circulaire (LHS) dessine une ligne circulaire ou semi-circulaire, tandis que l' outil Spline (RHS) interpole des points pour ajuster votre ligne à la courbe spline. Quel que soit votre choix, il vous suffit de cliquer sur 3 points: point de départ, point de courbe et point d'arrivée.

Et vous obtiendrez:

résultat

Il existe d'autres outils tels que CadTools mais ce sera plus excitant si vous le trouvez vous-même.


1
Merci. Je ne cherche pas à créer des lignes, mais à courber (pas manuellement) celles que j'ai déjà créées avec mmqgis. Ne cherchez pas non plus l'excitation, juste quelque chose pour faire le travail. C'est pourquoi je suis venu ici, donc toute aide serait appréciée! :)
darj

1
J'ai compris, merci. Et désolé de m'être trompé. Maintenant, je comprends que vous avez déjà des lignes Hub créées par le plugin MMQGIS.
Kazuhito

6

Utilisez le style Flèches au lieu du style Ligne simple.

Par exemple, ces lignes avec un style de ligne simple:

entrez la description de l'image ici

ressemble à ceci avec le style de flèche:

entrez la description de l'image ici

Vous pouvez désactiver les têtes de flèche en définissant la largeur et la longueur de la tête sur 0.

Comme vous pouvez le voir, la ligne droite devient une flèche droite, tandis que les lignes avec un sommet central deviennent des flèches courbes. Le placement du sommet central détermine la courbe de la flèche.

Pour convertir vos lignes droites en flèches courbes, vous devrez ajouter un sommet central à chaque ligne, puis décaler ce sommet suffisamment pour générer une flèche courbe.

Utilisez le style de générateur de géométrie avec le type de géométrie: chaîne linéaire. Cette expression créera une ligne avec un point médian de 200 unités de distance à l'est et au nord du point médian d'origine de la ligne.

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

Modifiez la ligne à afficher en tant que style de flèche. Ajustez les valeurs de décalage du centre de gravité dans l'expression du générateur de géométrie jusqu'à ce que vous soyez satisfait de la forme des flèches. Si vous le souhaitez, vous pouvez les rendre proportionnels à la longueur de la ligne d'origine, par exemple $length/10. L'expression complète serait:

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

Voici à quoi cela ressemble, avec les lignes originales en rose et les flèches générées par la géométrie en noir:

entrez la description de l'image ici

Si vous n'êtes pas satisfait du placement au milieu de la ligne, vous pouvez les ajuster manuellement. Tout d'abord, convertissez le style de ligne généré par la géométrie en une couche réelle. Copiez l'expression du générateur de géométrie dans l' geometry by expressionoutil (boîte à outils Traitement). Utilisez ensuite l'outil Vertex (barre d'outils de numérisation) pour déplacer manuellement les sommets.

Remarque: Cette réponse a été faite avec QGIS 3.4.


4

Vous devez faire quelques étapes supplémentaires: (J'ai la version néerlandaise, donc si ce n'est pas la bonne traduction, désolé). Comme @bugmenot l'a fait, mais choisissez à nouveau Remplir et changez-le de Remplissage standard de type de calque de symbole en: 'Rand / Bord?: Flèche. J'ai fait un remplissage graduel avec effet de couleur [geleiddelijke vulling] dans le dernier "Fill". J'espère que ça aide. entrez la description de l'image ici


Merci! Est-il possible d'ajuster l'angle de la courbe pour qu'elle soit plus plate comme dans l'image que j'ai postée?
darj

Je ne pense pas que ce soit possible. Peut-être avec quelques scripts en Python, mais ce n'est pas ma tasse de thé.
Willem
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.