Символ откос в QGIS

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
bingeomap
Гуру
Сообщения: 506
Зарегистрирован: 06 июл 2012, 08:37
Репутация: 53
Откуда: Азербайджан, Баку

Символ откос в QGIS

Сообщение bingeomap » 23 апр 2025, 13:44

Здравствуйте. Как в КуГИС можно создавать полигональный символ откоса (для крутого склона) в масштабе, как в стандарте ГУГК (Условные знаки для топографических карт масштабов 1:500 - 1:5000)? Вообще такое возможно?
С уважением,
Биннат Халилов

Кирилл R.
Участник
Сообщения: 62
Зарегистрирован: 30 апр 2012, 21:48
Репутация: 26
Откуда: Астрахань

Re: Символ откос в QGIS

Сообщение Кирилл R. » 23 апр 2025, 18:55

bingeomap писал(а):
23 апр 2025, 13:44
Здравствуйте. Как в КуГИС можно создавать полигональный символ откоса (для крутого склона) в масштабе, как в стандарте ГУГК (Условные знаки для топографических карт масштабов 1:500 - 1:5000)? Вообще такое возможно?
Мне удалось нечто подобное только с генератором геометрии при использовании встроенных функций, да и то оно выглядит приемлемо только на прямолинейных участках. Задача непростая, но я уверен, что с использованием Python в генераторе геометрии, можно сделать очень красивый откос.
11.png
11.png (39.86 КБ) 2205 просмотров

Аватара пользователя
bingeomap
Гуру
Сообщения: 506
Зарегистрирован: 06 июл 2012, 08:37
Репутация: 53
Откуда: Азербайджан, Баку

Re: Символ откос в QGIS

Сообщение bingeomap » 23 апр 2025, 19:42

Кирилл R. писал(а):
23 апр 2025, 18:55
Мне удалось нечто подобное только с генератором геометрии при использовании встроенных функций, да и то оно выглядит приемлемо только на прямолинейных участках. Задача непростая, но я уверен, что с использованием Python в генераторе геометрии, можно сделать очень красивый откос.
11.png
Спасибо, Кирилл. А детально можете описать именно этот пример как сделали и выложит Питон код? Вы это на Питоне сделали?
С уважением,
Биннат Халилов

Кирилл R.
Участник
Сообщения: 62
Зарегистрирован: 30 апр 2012, 21:48
Репутация: 26
Откуда: Астрахань

Re: Символ откос в QGIS

Сообщение Кирилл R. » 24 апр 2025, 13:58

bingeomap писал(а):
23 апр 2025, 19:42
Спасибо, Кирилл. А детально можете описать именно этот пример как сделали и выложит Питон код? Вы это на Питоне сделали?
Вот. Изучайте. https://disk.yandex.ru/d/oF66By1l4qRFnQ
Сделано, как я уже написал, на встроенных функциях QGIS без использования Python. Но я уверен, что с Python можно сделать все красивее и наверное даже более оптимизированно.

Слой должен быть полигональным и в нем должно быть обязательно поле "top", тип Integer. Рисовать надо начинать с одной из крайних точек бровки. Номер вершины, которая будет последней на бровке, надо записать в поле "top".
Снимок экрана 2025-04-24 135421.png
Снимок экрана 2025-04-24 135421.png (105.49 КБ) 2107 просмотров
На скрине показал порядок указания вершин полигона. В поле top в данном случае пойдет значение "3".

Аватара пользователя
bingeomap
Гуру
Сообщения: 506
Зарегистрирован: 06 июл 2012, 08:37
Репутация: 53
Откуда: Азербайджан, Баку

Re: Символ откос в QGIS

Сообщение bingeomap » 25 апр 2025, 09:20

Спасибо большое, Кирилл. Буду изучать.
И ещё, один спец. в Телеграм канале (Вася Швалев), тоже дал один вариант. Но, это для объектов мултилиний, пока не изучал, изучу в удобное время и сравню с вашим вариантом.
Выложу суда код, для на всяких случай, может быт кому то понадобится....:

Код для отрисовки линий сплошной и пунктирной линиями:

Код: Выделить всё

if(@geometry_part_num=2,'dot','solid')
Код для длинных палочек:

Код: Выделить всё

intersection(

concave_hull(
nodes_to_points($geometry),0.1),

extend(
simplify(
rotate(
apply_dash_pattern(geometry_n(@geometry,1),
array(1,0)),90,per_part:=true),5),15,0)
)
Код коротких палочек:

Код: Выделить всё

intersection(
concave_hull(
nodes_to_points($geometry),0.1),

simplify(
rotate(
apply_dash_pattern(geometry_n(@geometry,1),
array(1,0),pattern_offset:=0.5),90,per_part:=true),5)
)
С уважением,
Биннат Халилов

Ответить

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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя