Страница 1 из 1

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

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

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

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

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

Добавлено: 01 апр 2018, 10:18
darsvid
Для таких целей можно использовать 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

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

Добавлено: 01 апр 2018, 19:17
Prince660
Спасибо! Задача выполнена))