我有一个通过绘制的地图leaflet。

我需要使用制作该地图的屏幕截图html2canvas。

要使用html2canvas,我需要提供一个DOM元素来捕获(elementToCapture)和一个可选的配置(html2canvasConfiguration)。

var html2canvasConfiguration = {

useCORS: true,

width: map._size.x,

height: map._size.y,

backgroundColor: null,

logging: true,

imageTimeout: 0

};

var elementToCapture = map._container.getElementsByClassName('leaflet-pane leaflet-map-pane')[0];

html2canvas(elementToCapture, html2canvasConfiguration).then(function (canvas) {

var link = document.createElement('a');

link.download = 'test.png';

link.href = canvas.toDataURL();

link.click();

link.remove();

})

我按leaflet-pane leaflet-map-pane类提取了一个元素,该元素基本上代表了整个地图,包括控件(放大/缩小按钮,比例等),自定义标记,工具提示,叠加层,弹出窗口。

整个DOM看起来像

我遇到的问题是leaflet-pane leaflet-tile-pane元素(尤其是内部的内容canvas)没有被捕获html2canvas。简而言之,我看到了地图上的所有内容,但看不到地图本身。

6e75ebeb82f2542b78083a2e8a763f9f.png

18b602aac1a38c2b44128446ac58022d.png

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐