javascript - 使用 jQuery 将 Google map 转换为静态图像以供下载

标签 javascript jquery image google-maps google-maps-api-3

我的网站上有一个 div,我在其中创建了一个 GoogleMap。我添加了标记并实现了 MarkerClusterer。

我想让用户点击一个按钮并下载当前查看的 map 的图像,就像他们在缩放或移动包括标记后看到的那样:

enter image description here

我尝试使用 html2canvas 但它根本不起作用。

在过去一个小时搜索了如何执行此操作后,我完全没有找到任何有用的东西。

这甚至可以捕获用户看到的 div 吗?还是创建静态谷歌地图并保存图像是执行此操作的唯一方法?

解决方案

我最后选择了 PhantomJS。我创建了一个 map View ,它通过查询字符串获取输入并使用该数据向 map 添加标记。然后我使用 PhantomJS 从 map View 中截取屏幕截图。然后我将屏幕截图图像输出为 Base64 字符串。

最佳答案

Google 在这种情况下建议使用 SnapshotControl。限制是 SnapshotControl 仅支持最多 2048 个字符的 URL。所以在 map 上绘制的图层不多的情况下可以使用。 对于phantom js,当用户点击下载时, map 上绘制的图层数据应该发送到服务器(通过downloadServlet)。此数据将传递给可以呈现 map 和绘图点的 JSP。 Phantomjs 将通过传递此 jsp 的 URL 的 downloadServlet 执行。

我在我的应用程序中使用了 phantomjs,因为我一次绘制大约 4-5 个不同的图层。这里唯一需要注意的是,执行 phantomjs 的服务器需要有互联网连接,否则将无法绘制 map 。

关于javascript - 使用 jQuery 将 Google map 转换为静态图像以供下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419992/

相关文章:

jquery - 如何使用 jquery 从 facebook 读取 json

javascript - 通过点击 html 链接在谷歌地图上显示信息窗口

html - 如何使用文本字体百分比而不是文本图像进行响应式设计?附上我的代码

javascript - 如果数组中不存在对象 Prop 则更新

javascript - 单击浏览器后退按钮时 react 显示相同的项目列表

javascript - 通过 HTML 代码中的搜索和替换填写协议(protocol)相关 URL

Jquery 切换自定义动画

javascript - 更改 Angular $location.path 以响应推送服务

html - 保护图片下载

image - css - 容器 div 使内容适合图像