openlayers根据图层名称判断图层是否在视口内
/**
* 判断图层是否在视口内
* @param {*} map
* @param {*} layername 图层名称
* @returns
*/
judgeLayerIsInViewport(map, layername) {
var layers = map.getLayers().getArray()
const viewExtent = map.getView().calculateExtent(map.getSize())
for (let index = 0; index < layers.length; index++) {
const layer = layers[index]
if (layer.get('name') == layername) {
const layerExtent = layer.getSource().getExtent()
if (!layerExtent) return false
const isIn = intersects(viewExtent, layerExtent)
return isIn
}
}
}