Answers:
您可以为此使用数据定义的属性。使用图层属性上的样式选项卡,然后单击颜色右侧的表达式按钮。
您可以在其中使用该功能color_rgba( red, green, blue, alpha )
创建颜色。所有值必须在0到255之间。
例:
color_rgba( 255, 0, 0, ( 1 - "transparency" ) * 255 )
这将为您提供完全红色的样式,并根据问题中的说明从字段“透明度”中定义Alpha。
在表达式编辑器中,您会发现许多其他与颜色相关的功能,它们可能更适合您的需求,只需浏览它们并直接在表达式编辑器中阅读其文档即可。
您通常要分类的名义(定性)值的另一个示例是在hsv空间中工作:
有color_hsva( hue, saturation, value, alpha )
创建颜色的功能。值必须介于
例:
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答案。
作为Matthias回答的后续措施,在QGIS> = 2.12中,您可以将数据定义的填充颜色与表达式一起使用:
set_color_part(@value, 'alpha', ( 1 - "transparency" ) * 255 )
此表达式的作用是采用原始的多边形颜色(@value),并将alpha通道(不透明度)替换为从字段计算得出的值)。这意味着您可以设置填充颜色表达式,然后高兴地继续使用分类或渐变渲染器自动设置基本填充颜色,并且仍然会遵循不透明度规则。无需以这种方式对rgb值进行硬编码!
您也可以在图层的“图层属性”中设置此值(右键单击->属性)。
使用样式->分类,然后选择要使用的列,例如“值”,在色带中选择颜色,然后单击“分类”。
然后,您可以定义每个值的颜色及其透明度。
如果将新值添加到使用的图层,请单击Clasify将其添加到现有样式。