OpenLayers 3:在不改变其他层的情况下将一层置于灰度
OpenLayers 3 : put one layer in grayscale without changing other layers
关于使用 Open Layers 3 将图层置于灰度的可能性,我有一个棘手的问题。
我已经实现了使用 canvas 元素的可能性将整个地图置于灰度中,就像在以下讨论中提出的示例中看到的那样:
但我的需求与这些示例略有不同:我想让用户可以在不改变其他图层颜色的情况下,以灰度方式逐层放置图层。例如,这个想法是让一个背景层为灰度,其他数据为彩色。
有人知道如何实现这样的事情吗?
谢谢
ol.source.Raster is what you are looking for. Here is an example.
var raster = new ol.source.Raster({
sources: [new ol.source.Stamen({
layer: 'watercolor'
})],
operation: function(pixels, data) {
// convert pixels to grayscale
return pixels;
}
});
这使您能够在每层基础上操作任意源的像素数据。
关于使用 Open Layers 3 将图层置于灰度的可能性,我有一个棘手的问题。
我已经实现了使用 canvas 元素的可能性将整个地图置于灰度中,就像在以下讨论中提出的示例中看到的那样:
但我的需求与这些示例略有不同:我想让用户可以在不改变其他图层颜色的情况下,以灰度方式逐层放置图层。例如,这个想法是让一个背景层为灰度,其他数据为彩色。
有人知道如何实现这样的事情吗?
谢谢
ol.source.Raster is what you are looking for. Here is an example.
var raster = new ol.source.Raster({
sources: [new ol.source.Stamen({
layer: 'watercolor'
})],
operation: function(pixels, data) {
// convert pixels to grayscale
return pixels;
}
});
这使您能够在每层基础上操作任意源的像素数据。