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

- 11.png (39.86 КБ) 2448 просмотров
Re: Символ откос в QGIS
Добавлено: 23 апр 2025, 19:42
bingeomap
Кирилл R. писал(а): ↑23 апр 2025, 18:55
Мне удалось нечто подобное только с генератором геометрии при использовании встроенных функций, да и то оно выглядит приемлемо только на прямолинейных участках. Задача непростая, но я уверен, что с использованием Python в генераторе геометрии, можно сделать очень красивый откос.
11.png
Спасибо, Кирилл. А детально можете описать именно этот пример как сделали и выложит Питон код? Вы это на Питоне сделали?
Re: Символ откос в QGIS
Добавлено: 24 апр 2025, 13:58
Кирилл R.
bingeomap писал(а): ↑23 апр 2025, 19:42
Спасибо, Кирилл. А детально можете описать именно этот пример как сделали и выложит Питон код? Вы это на Питоне сделали?
Вот. Изучайте.
https://disk.yandex.ru/d/oF66By1l4qRFnQ
Сделано, как я уже написал, на встроенных функциях QGIS без использования Python. Но я уверен, что с Python можно сделать все красивее и наверное даже более оптимизированно.
Слой должен быть полигональным и в нем должно быть обязательно поле "top", тип Integer. Рисовать надо начинать с одной из крайних точек бровки. Номер вершины, которая будет последней на бровке, надо записать в поле "top".

- Снимок экрана 2025-04-24 135421.png (105.49 КБ) 2350 просмотров
На скрине показал порядок указания вершин полигона. В поле top в данном случае пойдет значение "3".
Re: Символ откос в QGIS
Добавлено: 25 апр 2025, 09:20
bingeomap
Спасибо большое, Кирилл. Буду изучать.
И ещё, один спец. в Телеграм канале (Вася Швалев), тоже дал один вариант. Но, это для объектов мултилиний, пока не изучал, изучу в удобное время и сравню с вашим вариантом.
Выложу суда код, для на всяких случай, может быт кому то понадобится....:
Код для отрисовки линий сплошной и пунктирной линиями:
Код для длинных палочек:
Код: Выделить всё
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)
)