OpenLayers 3:将一层放在灰度级而不改变其他层

时间:2016-04-19 09:45:31

标签: openlayers-3

关于使用Open Layers 3将图层置于灰度级的可能性,我有一个棘手的问题。

我已经实现了使用canvas元素的可能性将整个地图放在灰度级中,就像在以下讨论中提出的示例中可以看到的那样:OpenLayers 3 - tile canvas context

但是我的需求与这些例子略有不同:我想让用户有可能在不改变其他图层颜色的情况下逐层放置灰度图层。例如,有一个灰度级的背景层,其上有其他数据。

有人知道如何实现这样的目标吗?

由于

1 个答案:

答案 0 :(得分:2)

ol.source.Raster正是您要找的。这是一个example

  var raster = new ol.source.Raster({
    sources: [new ol.source.Stamen({
      layer: 'watercolor'
    })],
    operation: function(pixels, data) {
      // convert pixels to grayscale
      return pixels;
    }
  });

这使您可以在每层基础上操纵任意源的像素数据。