有时在deck.gl上截屏时,HTML2Canvas会丢失绘图标记

问题描述

随机遇到此问题。在Google地图上用deck.gl绘制图标并进行屏幕截图时,有时屏幕截图会正确显示,但有时会缺少绘图标记。我正在使用HTML2Canvas渲染屏幕截图,并使用deck.gl在地图上绘制标记。 一旦我单击屏幕快照图标并获得正确的屏幕快照,deck.gl画布就不会被修改,但是下一次,如果我再次获取屏幕快照,则绘图标记会消失。用于设置图标层的代码是-

 deck.setProps({
    layers: layers.sort(compare('id')).reverse(),glOptions: { preserveDrawingBuffer: true },onBeforeRender: () => {
      console.log('called : onBeforeRender');
    },onAfterRender: () => {
      console.log('called : onAfterRender');
    }
  });

用于通过HTML2Canvas进行转换的代码-

    html2canvas(document.body,getoptionsForCanvas())
      .then(async function (canvas) {
        setSnapshotSelected();
        let a = document.createElement('a');
        a.href = canvas.toDataURL('image/jpeg',1);
        a.download = 'screenshot.png';
        a.click();
})

getoptionsForCanvas-

return { allowTaint: true,letterRendering: 1,foreignObjectRendering: true,quality: 1,width: width,height: height,scale: ratio,useCORS: true,logging: false,ignoreElements: (node) => {
      return node.nodeName === 'NOSCRIPT';
    }

有人可以帮我解决此问题吗?

附上适当的屏幕截图,以及缺少情节标记的屏幕截图-

Correct

Missing markers

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)