0

I need to determine if a precompose-callback was set on a layer:

var layer = new ol.layer.Vector({
  renderMode: "image"
});

and sometime later I add a precompose handler.

layer.on("precompose", function(event) {
  //Some clipping is applied here
});

How can I determine, if a layer has a precompose-handler (e.g., layer.has("precompose"))?

I am using Openlayers 5.20

Dennis Guse
  • 883
  • 10
  • 34

1 Answers1

1

You need to set a state manually on your layer to find yourself if you already set an event like "precompose". This behaviour is similar to JavaScript addEventListener except your are using OpenLayers layer instead of DOM element (see this question)

layer.on("precompose", function(event) {
  //Some clipping is applied here
});
layer.set('withPreCompose', true);

Then you can get layers with precompose event

map.getLayers().getArray()
  .find(el => el.get('withPreCompose'))
Thomas Gratier
  • 2,311
  • 1
  • 14
  • 15