Dynamic OL6,动态颜色/不透明度/透明度取决于特征中的数字(百分比)

Dynamic OL6,动态颜色/不透明度/透明度取决于特征中的数字(百分比),dynamic,geojson,opacity,openlayers-6,Dynamic,Geojson,Opacity,Openlayers 6,我的灵感来自这一部分: 尤其是“动态造型”。 有没有一种简单的方法可以在我的地图中包含动态样式 我正在考虑根据特征中的数字更改多边形的不透明度。 在我的geojson文件中,我有一个带有百分比的特性(VVD_perc) 我想我必须在我的样式部分中围绕这一行做一些更改: 颜色:“rgba(1001001000.25)”,但我不确定要更改什么,在哪里更改 我认为百分比越高,多边形的透明度就越低。 因此,不透明度来自: color:'rgba(1001001000.01)1% 到 color:'rgb

我的灵感来自这一部分: 尤其是“动态造型”。 有没有一种简单的方法可以在我的地图中包含动态样式

我正在考虑根据特征中的数字更改多边形的不透明度。 在我的geojson文件中,我有一个带有百分比的特性(
VVD_perc

我想我必须在我的样式部分中围绕这一行做一些更改:

颜色:“rgba(1001001000.25)”,
但我不确定要更改什么,在哪里更改

我认为百分比越高,多边形的透明度就越低。 因此,不透明度来自:

color:'rgba(1001001000.01)
1% 到
color:'rgba(1001001001)
100%

java脚本部分中的样式部分如下所示:

var partijStyle = new ol.style.Style({
  fill: new ol.style.Fill({
    color: 'rgba(100, 100, 100, 0.25)',
    }),
  stroke: new ol.style.Stroke({
    color: '#319FD3',
    width: 2
  }),
  text: new ol.style.Text({
    font: '10px Calibri,sans-serif',
    fill: new ol.style.Fill({
    color: '#000'
    }),
    stroke: new ol.style.Stroke({
      color: '#fff',
      width: 3
    })
  })
});
这是我调用带有百分比的特性的部分。也许这也有用

var vvdLayer = new ol.layer.Vector({
  source: geojsonSource,
  //style: partijStyle
  style: function(feature) {
    partijStyle.getText().setText(feature.get(('VVD_perc'))
        );
    return  partijStyle;
 }
});
我希望你们中的一个能帮我找到正确的方向。如果有一本书或一个网站有这样的例子,我已经很高兴了

谢谢你,迈克又帮了我一个大忙 我也做了一些其他的改变。我希望它能帮助别人。 似乎无法在
setColor()
部分中进行计算。为此,您需要先在variabele中创建一个
var
。 您可以在()之间调用该变量

下面是几个例子。注意:我将样式的名称从
partijStyle
更改为
vvdStyle
vvd\u c
代表
vvd\u颜色

    //var vvd_c = 'rgba(255, 50, 0, ' + (feature.get('VVD_perc')/100) + ')';
    //var vvd_c = 'rgba(255,'+ (1000/4) +', 0, ' + (feature.get('VVD_perc')/100) + ')';
    //var vvd_c = 'rgba(255,'+ (255-(feature.get('VVD_perc')))  +', 0, ' + (feature.get('VVD_perc')/100) + ')';
    var vvd_c  = 'rgba('+ (feature.get('VVD_perc')+150) +','+ (255-(feature.get('VVD_perc')))  +', 0, ' + (feature.get('VVD_perc')/100) + ')';
    vvdStyle.getFill().setColor(vvd_c) 

可以使用与设置文字相同的方式动态设置样式的某些其他特性

var vvdLayer = new ol.layer.Vector({
  source: geojsonSource,
  style: function(feature) {
    var perc = feature.get('VVD_perc');
    var color = rgba(100, 100, 100, ' + (perc/100) + ')';
    partijStyle.getFill().setColor(color);
    partijStyle.getText().setText(perc);
    return  partijStyle;
 }
});