OpenLayers3 tiene un sistema de ejemplo de espía de capas . El código fuente para el ejemplo indica que utiliza el precompose
y postcompose
escuchadores de eventos para un ol.layer.Tile
:
var imagery = new ol.layer.Tile({
source: new ol.source.BingMaps({key: key, imagerySet: 'Aerial'})
});
// before rendering the layer, do some clipping
imagery.on('precompose', function(event) {
var ctx = event.context;
var pixelRatio = event.frameState.pixelRatio;
ctx.save();
ctx.beginPath();
if (mousePosition) {
// only show a circle around the mouse
ctx.arc(mousePosition[0] * pixelRatio, mousePosition[1] * pixelRatio,
radius * pixelRatio, 0, 2 * Math.PI);
ctx.lineWidth = 5 * pixelRatio;
ctx.strokeStyle = 'rgba(0,0,0,0.5)';
ctx.stroke();
}
ctx.clip();
});
// after rendering the layer, restore the canvas context
imagery.on('postcompose', function(event) {
var ctx = event.context;
ctx.restore();
});
Sin embargo, me gustaría utilizar Leaflet para implementar la misma funcionalidad. ¿Existe una implementación en Leaflet de la funcionalidad de espionaje de capas? Si no es así, ¿qué escuchadores de eventos son útiles para implementarla con un Leaflet TileLayer
?