如何在OpenLayers 3中使Stroke不透明度工作

时间:2014-12-03 04:04:04

标签: openlayers-3

无论我尝试什么,我都无法在OpenLayers 3中使用Stroke不透明度。我试图实现的是用0.5不透明度绘制一条到OSM瓦片地图的线。

以下是示例代码:

var lineString = new ol.geom.LineString([
   [4.9020, 52.3667],
   [4.9030, 52.3667],
   [4.9040, 52.3667],
   [4.9050, 52.3667]
]);
lineString.transform('EPSG:4326', 'EPSG:3857');

var lineLayer = new ol.layer.Vector({
    source: new ol.source.Vector({
        features: [new ol.Feature({
            geometry: lineString,
            name: 'Line'
        })]
    }),
    style: new ol.style.Style({
        stroke: new ol.style.Stroke({
            color: 'yellow',
            opacity: 0.5,
            width: 15
        })
    })
});    

var view = new ol.View({
    center: ol.proj.transform([4.9020, 52.3667], 'EPSG:4326','EPSG:3857'),
   zoom: 18
});

var map = new ol.Map({
  layers: [
    new ol.layer.Tile({
      source: new ol.source.OSM()
    }),
    lineLayer
  ],
  target: 'map',
  controls: ol.control.defaults({
    attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
      collapsible: false
    })
  }),
  view: view
});

你可以在这里看到它: http://jsfiddle.net/abgcvqw3/1/

2 个答案:

答案 0 :(得分:15)

不透明度通过color选项设置,作为颜色值的第四个元素(对于" Alpha"在RGBA中为A)。

例如,这里有半透明的黄色:

color: [255, 255, 0, 0.5]

这是另一种表示法:

color: 'rgba(255,255,0,0.5)'

答案 1 :(得分:3)

我无法使'opacity'属性起作用,但我设法通过在'color'属性上使用rgba值来解决问题。