Создание сложных типов линий (с использованием маркера)

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Nikolya2048
Интересующийся
Сообщения: 45
Зарегистрирован: 24 фев 2016, 14:41
Репутация: 0

Создание сложных типов линий (с использованием маркера)

Сообщение Nikolya2048 » 11 окт 2021, 23:12

Всем добрый день! Есть вопрос по созданию сложных типов линий в QGIS. Сделал в SVG маркер, который должен повторяться через каждые 50 мм на листе. Вычислил, что со всеми отступами линия должна быть длиной 44 мм. Начал составлять линию, которая в итоге выглядет не так как нужно. Во вложении пример того, что не получается. По идее рыбка должна занять место в разрыве линии. Как реализовать?
Вложения
Пример.png
Пример.png (12.24 КБ) 2699 просмотров

Ivor
Завсегдатай
Сообщения: 345
Зарегистрирован: 11 дек 2006, 09:46
Репутация: 102
Откуда: Иркутск

Re: Создание сложных типов линий (с использованием маркера)

Сообщение Ivor » 12 окт 2021, 00:53

Никак. Это баг QGis с масштабированием и округлением. Всё не соберусь им багрепорт написать по этому поводу.

Nikolya2048
Интересующийся
Сообщения: 45
Зарегистрирован: 24 фев 2016, 14:41
Репутация: 0

Re: Создание сложных типов линий (с использованием маркера)

Сообщение Nikolya2048 » 12 окт 2021, 11:09

Ivor, и это никак не решить? Может это можно как-то обойти, но что бы линии были как надо

konst555
Активный участник
Сообщения: 210
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Создание сложных типов линий (с использованием маркера)

Сообщение konst555 » 12 окт 2021, 14:11

В вашем случае обойти проблему иногда можно при помощи маркера-подложки.
Выглядеть это должно так:
-Line
- Marker Line
- SVG Marker
- Simple Marker (или второй SVG маркер-маска подложка фонового цвета)
- Simple Line

Если фон однотонный, то это вполне работает.

Nikolya2048
Интересующийся
Сообщения: 45
Зарегистрирован: 24 фев 2016, 14:41
Репутация: 0

Re: Создание сложных типов линий (с использованием маркера)

Сообщение Nikolya2048 » 12 окт 2021, 15:16

konst555, спасибо за подсказку, попробую)

Nikolya2048
Интересующийся
Сообщения: 45
Зарегистрирован: 24 фев 2016, 14:41
Репутация: 0

Re: Создание сложных типов линий (с использованием маркера)

Сообщение Nikolya2048 » 13 окт 2021, 14:52

konst555, да, так работает. Когда используется непрерывная линия можно использовать маску под определнным маркером, тогда все хорошо. При чем маркеры он расставляет правильно, а вот линию разрывает не точно

konst555
Активный участник
Сообщения: 210
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Создание сложных типов линий (с использованием маркера)

Сообщение konst555 » 14 окт 2021, 08:58

symbol_line.png
symbol_line.png (78.56 КБ) 2443 просмотра
symbol_line.png
symbol_line.png (78.56 КБ) 2443 просмотра
Вложения
symbol_line_prop.png
symbol_line_prop.png (72.25 КБ) 2443 просмотра

konst555
Активный участник
Сообщения: 210
Зарегистрирован: 11 авг 2015, 16:13
Репутация: 45

Re: Создание сложных типов линий (с использованием маркера)

Сообщение konst555 » 14 окт 2021, 09:30

Извините, случайно дублировал картинку.
Есть еще один способ делать такие линии. Лично мне он очень сильно не нравится, но широко используется в других ГИС програмах.

На картинке показана сама идея - наложение на линию символа из символьных шрифтов.
В функцию char() подставляется десятичное значение, а в таблице символов - шестнадцатеричное. Имейте это ввиду. Если лень считать, то воспользуйтесь калькулятором для перевода.
Задаем выравнивание на линию, устанавливаем промежуток повторения.
Назначаем размер маски, указываем какой объект маскировать (нашу линию).
Устанавливаем цвет, размер для линии и символа.
Готово.

Какие есть недостатки у этого метода.
- Отрисовка линии и символов (подписей) не идет одновременно. Поэтому, если выше будет объект, то символы будут проступать на нем. Возможно, это можно упорядочить. Не пробовал.
- Нужно наличие шрифта, символов. Мы знаем сколько таскает с собой символьных шрифтов ArcGIS, MapInfo и др. Конечно проще использовать SVG картинки, но подписи - это текстовый объект. Даже добавленный HTML не поддерживает SVG (может начнет когда нибудь ?)
- Символ не будет отображаться в легенде. Это можно обойти, если тупо нарисовать картинку легенды как патч один раз и использовать его. Тогда внешний вид будет как надо, а цвет будет соответствовать цвету линии.

Главное достоинство: нет никаких лишних контуров, нижние слои могут быть любые.

Удачи!
Спасибо за вопрос. Давно хотел вернуться к этой проблеме, но не было необходимости в таких линиях.

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot] и 10 гостей