Як встановити прозорість на багатокутник у файлі форми у QGIS?


13

Як встановити прозорість на багатокутник у файлі форми у QGIS?

Наприклад:

багатокутник із полем "значення" = 1 повинен бути повністю прозорим, тоді як поле з полем "значення" = 0,4 має мати значення 40% прозорості. Колір полігонів повинен залежати від іншого поля. Переважно, я б це робив за допомогою одного шару, але з використанням двох шарів з деякими режимами змішування також добре.

Відповіді:


17

Для цього можна використовувати властивості, визначені даними. Використовуйте вкладку стилів у властивостях шару та натисніть кнопку виразу праворуч від кольору.

Там ви можете використовувати функцію color_rgba( red, green, blue, alpha )для створення кольору. Усі значення повинні бути від 0 до 255.

Приклад:

color_rgba( 255, 0, 0, ( 1 - "transparency" ) * 255 )

Це дасть вам абсолютно червоний стиль із альфа-ознакою, визначеною у полі "прозорість", відповідно до ваших специфікацій у питанні.

У редакторі виразів ви знайдете ряд інших функцій, пов'язаних із кольором, які можуть краще відповідати вашим потребам, просто вивчіть їх та прочитайте їх документацію безпосередньо в редакторі виразів.

Інший приклад для номінальних (якісних) значень, які ви зазвичай класифікуєте, - це робота в просторі hsv:

Існує функція color_hsva( hue, saturation, value, alpha )створення кольору. Значення повинні бути між

  • відтінок: 0-360 (сенс див. нижче)
  • значення та насиченість: 0-100
  • альфа: 0-255.

Приклад:

color_hsva( 
  CASE 
    WHEN "classification" = 'red' THEN 0
    WHEN "classification" = 'blue' THEN 240
  END CASE, -- hue
  80,  -- saturation
  80,  -- value
  ( 1 - "transparency" ) * 255  -- alpha
)

введіть тут опис зображення

Для QGIS> = 2.12 також врахуйте відповідь @ndawsons.


Дивіться відповідну відповідь нижче для QGIS> = 2.12
ndawson

12

Як відповідь до відповіді Маттіаса, в QGIS> = 2.12 ви можете використовувати визначений даними колір заповнення виразом:

 set_color_part(@value, 'alpha', ( 1 - "transparency" ) * 255 )

Це вираження робить початковий колір багатокутника (@ значення) і замінює альфа-канал (непрозорість) значенням, обчисленим з поля). Це означає, що ви можете встановити вираз кольору заливки, а потім радісно йти вперед і використовувати категоризовані або градуйовані рендери для автоматичного встановлення базового кольору заливки, і правило непрозорості буде дотримуватися. Таким чином, немає необхідності в жорсткому кодуванні значень rgb!


1
Приємний і гнучкий підхід!
Маттіас Кун

Схоже, це не працює в QGIS 3+. Після того, як я додаю цей вираз, всі багатокутники набувають одного кольору з однаковою непрозорістю.
robroc

3

Ви також можете встановити ці значення у властивості шару шару (клацніть правою кнопкою миші -> Властивості).
Використовуйте Стиль -> Категоризовано, потім виберіть стовпець, який ви хочете використовувати, наприклад, "значення", виберіть кольори в кольоровій рампі та натисніть "Класифікувати".
Потім можна визначити колір кожного значення та його прозорість.

введіть тут опис зображення

Якщо ви додаєте нові значення до використовуваного шару, натисніть кнопку «Розмістити», щоб додати їх до існуючого стилю.


1
Це не дозволить використовувати різні поля для прозорості та класифікації, як зазначено в питанні.
Маттіас Кун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.