在 openlayers 样式中使用颜色文字设置不透明度

use*_*857 3 openlayers-3

在 openLayers 3 中,我采用了 GeoJSON 格式的一些功能并为它们创建了样式。

这些特征的值为“收入”,其值为“红色”、“蓝色”、“绿色”等。

所以我想将 alpha 添加到特征的颜色中,但因为颜色是一个单词而不是 RGB,所以我不能。

我愿意

var color = feature.get('income');

fill: new ol.style.Fill({
   color: [color, 0.75]
})
Run Code Online (Sandbox Code Playgroud)

并且所有特征都是黑色的。

我该找谁来解决这个问题?

谢谢

更新

假设我将每个“收入”属性的值从单词更改为 RGB,所以现在不是“蓝色”,而是“0,0,127”,然后我尝试组成一个字符串

var color = feature.get('income');
var colorfinal = '[' + color + ',0.3]';

var fill = new ol.style.Fill({
    color: colorfinal
});
Run Code Online (Sandbox Code Playgroud)

但所有功能仍然是黑色的。好吧,打败了我。

pav*_*los 6

在字符串中添加 rgba 并删除括号。在这里检查

new ol.style.Style({
    stroke: new ol.style.Stroke({
        color: 'rgba(0, 0, 0, 0.8)',
        lineDash: [10, 10],
        width: 3
    }),
    fill: new ol.style.Fill({
        color: 'rgba(255, 255, 255, 0.5)'
    })
})
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,这有效。我什至不会想到添加“rgba”。你怎么想到这个?好吧,也许有一种更简单的方法,使用单词或 RGB 设置颜色,然后设置不透明度。就像 `var beg = '0,0,127'; var colorfinal = 'rgb(' +beg+ ')'; var fill = new ol.style.Fill({ 颜色: colorfinal, 不透明度: 0.3 }); `。但这不起作用,我在[此处]没有看到任何不透明度(http://openlayers.org/en/v3.9.0/apidoc/ol.style.Fill.html)。有小费吗? (2认同)