2015-09-30 2 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.

Смежные вопросы