Зробити лінії кривими за допомогою QGIS?


10

Я не маю великого досвіду роботи з QGIS і працюю над картою з лініями, що з'єднують місця, створені за допомогою плагіна mmqgis. Чи є простий спосіб зробити ці прямі лінії дещо кривими для естетичних цілей?

Я намагаюся досягти чогось, як карта нижче, але з кількома концентраторами. Я читав пропозиції, як це зробити за допомогою PostGIS та інших сучасних інструментів, тому я провів своє дослідження (включаючи інші публікації тут) і спробував використовувати декілька плагінів, і я спеціально прошу просте рішення, тому що я не мають великий досвід.

Приклад


чи є спосіб скасувати криву під час редагування чи скасувати точку, де ви її випадково розмістили?
3мм

Ласкаво просимо в GIS SE! Як новий користувач, будь ласка, не забудьте здійснити короткий тур, щоб дізнатись про цілеспрямований формат запитань та відповідей на цьому сайті. Якщо у вас є питання, скористайтеся посиланням Задати питання, а не публікуючи відповідь.
Енді

Якщо у вас є нове запитання, будь ласка, задайте його, натиснувши кнопку Задати питання . Додайте посилання на це питання, якщо це допомагає надати контекст. - З огляду
csk

Відповіді:


6

Якщо ви використовуєте QGIS 2.12 або пізнішої версії, у " Панелі оцифрування " з'явиться інструмент " Додати кругову рядок ". Або ви можете спробувати " плагін ".

(LHS) Додайте круговий рядок під час оцифрування, (RHS) Інструмент сплайну під час оцифрування

оцифрування

Ви можете бачити інструмент Додавання кругових рядків (LHS) малює кругову або напівкруглу лінію, тоді як інструмент Spline (RHS) інтерполює точки, щоб відповідати вашій лінії до кривої сплайну. Що б ви не вибрали, потрібно просто натиснути 3 точки: початкова точка, крива та кінцева точка.

І ви отримаєте:

результат

Є й інші інструменти, такі як CadTools, але це буде цікавіше, якщо ви знайдете його самостійно.


1
Дякую. Я не шукаю створення ліній, а кривих (не вручну) тих, які я вже створив за допомогою mmqgis. Також не шукаючи азарту, просто для того, щоб виконати роботу. Тому я прийшов сюди, тому будь-яка допомога буде вдячна! :)
darj

1
Зрозумів, спасибі І вибачте, що помилився. Тепер я розумію, що у вас уже є Hub Lines, створений плагіном MMQGIS.
Казухіто

6

Використовуйте стиль стрілок замість стилю Simple Line.

Наприклад, такі рядки зі стилем Simple Line:

введіть тут опис зображення

виглядати так зі стилем стрілки:

введіть тут опис зображення

Вимкнути головки стрілок, встановивши ширину та довжину голови на 0.

Як бачимо, пряма стає прямою стрілкою, тоді як лінії із середньою вершиною стають вигнутими стрілками. Розміщення середньої вершини визначає криву стрілки.

Для перетворення прямих ліній у вигнуті стрілки вам потрібно буде додати середню вершину до кожного рядка, а потім змістити цю вершину достатньо, щоб генерувати вигнуту стрілку.

Скористайтеся стилем Генератора геометрії з типом Геометрія: Рядок. Цей вираз створить лінію з середньою точкою 200 одиниць відстані на схід і північ від початкової середини лінії.

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

Змініть лінію для відображення у стилі стрілки. Відрегулюйте значення зміщення центроїда в виразі генератора геометрії, поки ви не будете задоволені формою стрілок. Якщо ви хочете, ви можете зробити їх пропорційними довжині початкового рядка, наприклад $length/10. Повний вираз буде:

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

Ось як це виглядає з оригінальними лініями в рожевому кольорі та створеними геометрією стрілками чорного кольору:

введіть тут опис зображення

Якщо вас не влаштовує розміщення середньої точки лінії, ви можете налаштувати їх вручну. Спочатку перетворіть створений геометрією стиль лінії у фактичний шар. Скопіюйте вираз з генератора геометрії в geometry by expressionінструмент (Processing toolbox). Потім використовуйте інструмент Vertex (панель оцифрування) для ручного переміщення вершин.

Примітка. Ця відповідь була зроблена за допомогою QGIS 3.4.


4

Ви повинні зробити ще кілька кроків: (У мене є голландська версія, тому, якщо це не правильний переклад, вибачте). Як і @bugmenot, але потім знову оберіть Заповнити та змініть його з символьного шару типу Стандартна заповнення на: 'Rand / Edge?: Стрілка. Я зробив поступовий заповнення кольором ефекту [geleiddelijke vulling] в останньому "Fill". Сподіваюся, це допомогло. введіть тут опис зображення


Дякую! Чи можна відрегулювати кут кривої, щоб він був більш плоским, як на зображенні, яке я розмістив?
darj

Я не думаю, що це можливо. Можливо, з певним сценарієм в Python, але це не моя чаша Теа.
Віллем
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.