我需要确定是否在图层上设置了预组合回调:
var layer = new ol.layer.Vector({
renderMode: "image"
});
有时我会添加一个预组合处理程序。
layer.on("precompose", function(event) {
//Some clipping is applied here
});
如何确定图层是否具有预合成处理程序(例如layer.has("precompose")
)?
我正在使用Openlayers 5.20
答案 0 :(得分:1)
如果您已经设置了“ precompose”之类的事件,则需要在图层上手动设置状态以找到自己。此行为与JavaScript addEventListener
相似,除了您使用的是OpenLayers层而不是DOM元素(请参见this question)
layer.on("precompose", function(event) {
//Some clipping is applied here
});
layer.set('withPreCompose', true);
然后您可以获取带有预组合事件的图层
map.getLayers().getArray()
.find(el => el.get('withPreCompose'))