1
有沒有辦法讀取Openlayers 3圖層的像素顏色值? 事情是這樣的:如何從Openlayers 3圖層獲取像素的顏色值?
layerid.getPixelColor(x, y);
我知道與畫布使用的getImageData()方法,但就我所看到的,這只是讓你獲得頂層的正常顏色值100%阿爾法。
我想從較低或甚至隱藏的圖層中獲取顏色。 (來自同一個域的WMS瓷磚。)
有沒有辦法讀取Openlayers 3圖層的像素顏色值? 事情是這樣的:如何從Openlayers 3圖層獲取像素的顏色值?
layerid.getPixelColor(x, y);
我知道與畫布使用的getImageData()方法,但就我所看到的,這只是讓你獲得頂層的正常顏色值100%阿爾法。
我想從較低或甚至隱藏的圖層中獲取顏色。 (來自同一個域的WMS瓷磚。)
您可以直接在圖層上設置postcompose處理程序,並從此處讀取像素值。我做了基於該layer spy example一個小例子:
imagery.on('postcompose', function(event) {
var ctx = event.context;
var pixelRatio = event.frameState.pixelRatio;
if (mousePosition) {
var x = mousePosition[0] * pixelRatio;
var y = mousePosition[1] * pixelRatio;
var data = ctx.getImageData(x, y, 1, 1).data;
var color = 'rgb(' + data[0] + ',' + data[1] + ','+ data[2] + ')';
$('#box').css('background-color', color);
}
});
http://jsfiddle.net/m1abjrkm/1/
您可能也有興趣ol.Map.html#hasFeatureAtPixel。