Ответ 1
По-видимому, проблема, по-видимому, связана с тем, что html2canvas
не может преобразовывать css-преобразования, по крайней мере, в хром (я мог только воспроизвести проблему в chrome, на OSX). Контейнер, содержащий плитки, преобразуется с помощью -webkit-transform
. Итак, что мы можем сделать, это захватить значения, которые перемещают контейнер, удалить преобразование, назначить left
и top
из значений, которые мы получили transform
, затем использовать html2canvas
. Тогда карта не сломается, мы reset значения kc map, когда выполняется html2canvas
.
Итак, я вложил это в консоль javascript на вашем сайте и на нем, казалось, работал
//get transform value
var transform=$(".gm-style>div:first>div").css("transform")
var comp=transform.split(",") //split up the transform matrix
var mapleft=parseFloat(comp[4]) //get left value
var maptop=parseFloat(comp[5]) //get top value
$(".gm-style>div:first>div").css({ //get the map container. not sure if stable
"transform":"none",
"left":mapleft,
"top":maptop,
})
html2canvas($('#map-canvas'),
{
useCORS: true,
onrendered: function(canvas)
{
var dataUrl= canvas.toDataURL('image/png');
location.href=dataUrl //for testing I never get window.open to work
$(".gm-style>div:first>div").css({
left:0,
top:0,
"transform":transform
})
}
});