2015-09-30 155 views
1

有沒有辦法讀取Openlayers 3圖層的像素顏色值? 事情是這樣的:如何從Openlayers 3圖層獲取像素的顏色值?

layerid.getPixelColor(x, y); 

我知道與畫布使用的getImageData()方法,但就我所看到的,這只是讓你獲得頂層的正常顏色值100%阿爾法。

我想從較低或甚至隱藏的圖層中獲取顏色。 (來自同一個域的WMS瓷磚。)

回答

1

您可以直接在圖層上設置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

相關問題