Есть ли функция QGIS или плагин для рисования волнистой линии?
Я использовал Spline Tool для рисования некоторых волн вручную, но это отнимает много времени. Если возможно, я хотел бы нарисовать что-то вроде:
Inkscape Function Plotter
( sin(x)
кривая).
qgis
line
visualisation
linestring
Казухито
источник
источник
Ответы:
Я предлагаю решение с использованием PyQGIS. Это должно работать как для слоев Linestring, так и для MultiLineString.
Это решение основано на создании полукруглых колец, поэтому вам необходимо установить значение для диаметра (то есть
step
переменную в коде ниже). Шаг, который вы выберете, не будет реальным используемым шагом, потому что он регулируется на основе длины строки (но он будет действительно похож на первоначально установленное значение). Вам нужно сделать несколько попыток, прежде чем найти лучшее значение дляstep
переменной.В коде также требуется второй (необязательный) параметр (так называемый
crv_angle
), который помогает уменьшить или увеличить кривизну колец (я выполнил несколько тестов для этого, поэтому я рекомендую оставить угол в 45 градусов по умолчанию, так как это приведет к реальной окружности кольца).Вам нужно только запустить этот код из консоли Python:
и он создаст новый слой памяти строки с ожидаемым результатом:
источник
Краткий ответ: вы можете получить его, используя пользовательский SVG. Смотрите в нижней части этого поста для одного.
Длинный ответ:
Я считаю, что лучше представить это, чем изменять геометрию линии. Если вы хотите переместить ребро или выполнить другие действия с геометрией, управлять им будет кошмаром, если покачивания являются частью геометрии, а не просто представлением прямой линии.
Вы можете играть с линией маркера стиля. Есть способ легко приблизиться к тому, что вам нужно, и с небольшим усилием, вероятно, можно получить его точно.
Чтобы получить это, вы должны стилизовать линию с двумя линиями маркера. Каждая линия маркера состоит из простого маркера, полукруга. 1-й повернут на 180. Оба установлены прозрачными.
На линии маркера вы указываете, что один из них должен быть смещен, чтобы два символа были нарисованы не друг напротив друга, а рядом. Если вы используете offest = 1/2 * размер интервала, на выходе будет синусоидальная кривая. Я предлагаю вам поиграть с размером интервала, смещением и размерами символов.
Основным ограничением этого подхода является линия диаметра полукругов, которая суммируется с исходной линией. Если ваш фон белый (или любой другой цвет), вы можете добавить третью простую строку, используя цвет фона.
** РЕДАКТИРОВАТЬ **
Другой вариант избавиться от центральной линии - создать новый символ SVG. Я изменил полукруг, только живя закругленной частью. Это работает, хотя эллипс 1/2 может быть более привлекательным. Скриншот был сделан с использованием размера символа 10, интервал 4, смещение 2.
сохраните приведенный ниже код в файле half_circle_line.svg и убедитесь, что путь к svg указан в
QGIS // Settings / Options / System / SVG Paths
источник
Pen style
чтобы Нет Pen :)