【发布时间】:2014-01-15 20:17:20
【问题描述】:
所以我一直在努力寻找将 Google 地图 (v3 API) 保存为图像的最有效方法。一开始我尝试使用 snapshopcontrol.js,效果很好,但是我有一些地图上有超过 150 个标记,所以超出了 URL 限制。
接下来我用 html2canvas 尝试了以下代码,它确实创建了地图的图像,但是一旦 html2canvas 呈现它,地图的位置就会移动,我的标记现在悬停在看起来是 lat 0 lng 0 的地方.
var element = $('#mapDiv');
html2canvas(element, {
useCORS: true,
onrendered: function(canvas) {
var dataUrl= canvas.toDataURL("image/png");
document.write('<img src="'+dataUrl+'" />');
}
});
如果地图不会移动并保持在正确的位置,那将是完美的。 谁能解释为什么会这样?
应用 html2canvas 之前的屏幕截图
应用 html2canvas 后的屏幕截图
更新 在我的 JS 控制台中,它说
“XSS 审核员拒绝执行“http://....”中的脚本,因为在请求中找到了它的源代码。审核员已启用,因为服务器未发送“X-XSS-Protection”也不是 'Content-Security-Policy' 标头。”
“跨域资源共享策略拒绝了跨域图像加载。” "data:image/png;base64,iV............"
【问题讨论】:
-
您找到解决方案了吗?我遇到了同样的问题..
-
@ABHILASHSB 不,我最终没有使用 html2canvas 选项,而是使用 Google Static Maps v2.0 API 创建了一个静态地图图像。
-
我也遇到了同样的问题...我找不到任何其他地方讨论这个问题,而且显然还没有答案。
标签: javascript google-maps google-maps-api-3 html2canvas