Uso BaseDynamicLayer.createSubclass para crear una capa con una imagen. Si la imagen es estática, puede funcionar normalmente, pero si la imagen es GIF, solo se mostrará el primer cuadro.😥
Aquí está mi código:
let layerClass = BaseDynamicLayer.createSubclass({ // override BaseDynamicLayer methods getImageUrl(extent, width, height) { return imgUrl }, // override BaseDynamicLayer methods fetchImage(extent, width, height) { let url = this.getImageUrl(extent, width, height) return new Promise((resolve) => { self._requestImg(url).then(data => { let img = data let cvs = document.createElement('canvas') let context = cvs.getContext('2d') cvs.width = width cvs.height = height const pos = self._computePosition(extent, width, height) context.drawImage(img, pos.x, pos.y, pos.width, pos.height) resolve(cvs) }) }) } })