Created
November 14, 2019 20:51
-
-
Save karlazz/e206e32b9e4fd9058cd317e43c56a03a to your computer and use it in GitHub Desktop.
snapshot a div with html2canvas, with some application specific controls for a google map
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function snapshotDiv(snapdiv, snapdest, scale) { | |
// requires html2canvas | |
var spinnerDiv = document.createElement("div"); | |
var spinner = document.body.appendChild(spinnerDiv); | |
$('#snapControl').hide(); | |
$(snapdiv + ' .gm-bundled-control').hide(); | |
$('#hideGoogleUICB').trigger('submit'); | |
spinnerDiv.innerHTML = '<i class="fa fa-spinner fa-spin fa-2x"></i><p>Please be patient, complicated sections take time to copy,<br>up to one minute for maps with many markers.</p>'; | |
spinnerDiv.setAttribute('style','text-align:center; z-index:3000;position:fixed;background-color:rgba(0,0,0,.8); color: white; top:50%; left:50%; transform: translate(-50%, -50%); padding: 20px 20px; '); | |
html2canvas(document.querySelector(snapdiv), {scale: scale, useCORS:true, | |
async:false}).then(canvas => { | |
spinner.remove(); | |
var ocanvas = document.body.appendChild(canvas); | |
var download = document.createElement("a"); | |
var image = ocanvas.toDataURL("image/png") | |
.replace("image/png", "image/octet-stream"); | |
var imgFileSize = Math.round((image.length)*3/4) ; | |
download.setAttribute("href", image ); | |
download.setAttribute("download",snapdest); | |
download.dispatchEvent( new MouseEvent("click", { | |
view: window, | |
bubbles: false, | |
cancelable: true | |
}) ) ; | |
ocanvas.remove(); | |
download.remove(); | |
$('#snapControl').show(); | |
$('#hideGoogleUICB').trigger('redo'); | |
}); //then; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment