1 votos

Espía de la capa del folleto

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();
});

enter image description here


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 ?

1voto

ghybs Puntos 868

Si está buscando exactamente la misma funcionalidad (pero no en la precomposición / postcomposición), probablemente le interese plugin leaflet-tilelayer-mask ( demo ).

Leaflet-tilelayer-mask añade el efecto de máscara al tilelayer.

leaflet-tilelayer-mask screenshot

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X