Как отобразить объекты разными стилями в зависимости от атрибутов?

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
Аватара пользователя
Prince660
Активный участник
Сообщения: 129
Зарегистрирован: 25 мар 2011, 20:12
Репутация: 8
Откуда: г. Симферорполь
Контактная информация:

Как отобразить объекты разными стилями в зависимости от атрибутов?

Сообщение Prince660 » 31 мар 2018, 22:33

Думаю задача уже давно где-то решена (не знаю где), ибо должна быть востребованной. Суть вопроса:
Есть линейный слой с горизонталями. Нужно отобразить все горизонтали одним цветом и одной толщиной за исключением тех что которые кратны 100 - эти нужно отобразить чуть большей толщиной и отобразить подписи к ним. (Вариант вручную каждому значению стиль выбирать - утомительный.)
Короче говоря должно получиться как на генштабовской карте - горизонтали имеют одну толщину и цвет, а основные горизонтали немного толще и имеют подпись высот.

Stasss
Участник
Сообщения: 58
Зарегистрирован: 15 фев 2018, 18:07
Репутация: 2
Откуда: оттуда

Re: Как отобразить объекты разными стилями в зависимости от атрибутов?

Сообщение Stasss » 01 апр 2018, 09:34

Кратные 100 - это значит справа (в конце) стоит минимум два нуля "00". Так?
Тогда можно использовать Right$() для проверки этих двух нулей...

Аватара пользователя
darsvid
Активный участник
Сообщения: 156
Зарегистрирован: 29 июн 2012, 12:40
Статьи: 5
Проекты: 1
Репутация: 107
Откуда: Kyїv, Ukraine
Контактная информация:

Re: Как отобразить объекты разными стилями в зависимости от атрибутов?

Сообщение darsvid » 01 апр 2018, 10:18

Для таких целей можно использовать Data defined override. На вкладке Style параметр толщины линии Width задать следующим выражением через Edit:

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

case when  "value"  % 100 = 0 then 2 else 1 end
оператор % проверяет кратность и если остаток равен 0, то линия отображается утолщенной

Аналогичным образом можно отрегулировать и подписи. Например, если нужно подписывать только утолщенные горизонтали, то используем выражение:

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

case when  "value" %100 = 0 then "value" else NULL end

Аватара пользователя
Prince660
Активный участник
Сообщения: 129
Зарегистрирован: 25 мар 2011, 20:12
Репутация: 8
Откуда: г. Симферорполь
Контактная информация:

Re: Как отобразить объекты разными стилями в зависимости от атрибутов?

Сообщение Prince660 » 01 апр 2018, 19:17

Спасибо! Задача выполнена))

Ответить

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

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

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