tsayen / dom-to-image

Generates an image from a DOM node using HTML5 canvas
Other
10.21k stars 1.68k forks source link

domtoimage doesn't work on vector layer #477

Open nlafleur opened 2 months ago

nlafleur commented 2 months ago

I am using domtoimage.toPng to create a screenshot of my application. In this application I am using the "VectorBasemapLayer" by "react-esri-leaflet", but the vector baselayers are not shown on the .png.

I've also tried different domtoimage methods (.toJpeg, .toSvg)

Here is a simple jsfiddle, which creates an image based of a node, and renders it below in the "result" div. jsfiddle

For now, I have a workaround, I have a image baselayer active, which is rendered below the vectorbaselayer, so once the screenshot is taken, it shows the image baselayer. This is not ideal since these baselayers can differ.

Expected behavior

Vector baselayers should visible in result. Windows screenshot of the map. image

domtoimage.toPng, without my workaround: frmis_yemen_screenshot_12032024 (4)

domtoimage.toPng, with my workaround: frmis_yemen_screenshot_12032024 (3)

Library version

esri-leaflet: "3.0.12", esri-leaflet-vector: "4.2.3", leaflet: "1.9.4", react-esri-leaflet: "2.0.1", react-leaflet: "4.2.1",

Browsers