【问题标题】:Generating Images from maps从地图生成图像
【发布时间】:2017-11-13 17:22:00
【问题描述】:

您如何捕获用户生成的地图的图像,例如使用 Leaflet.js 创建的地图?

这是我的例子:

  • 我有一个website 可以生成地图。

  • 我想保存那张地图的图像

    • 例如当用户分享他们的个人资料时,预览图像是他们的地图。

我知道 facebook、Strava 和大多数其他服务在其新闻提要中显示用户地图的图像,而不是显示交互式地图。

问题

地图是在客户端生成的,因此无法抓取地图服务器端的图像

可能的解决方案

生成地图后,使用 PhantomJS 捕获地图的屏幕截图,然后裁剪网站的其余部分。

问题

既然这是很常见的事情,有没有人知道抓取这些屏幕截图的更好或更标准的方法?我见过像 mapbox 静态 API 之类的东西,但这并没有捕获我地图上的自定义图钉和线条特征。

我在后端使用 Rails。

【问题讨论】:

    标签: ruby-on-rails maps leaflet


    【解决方案1】:

    您可以使您的地图能够读取 url 参数并从中设置其状态。当用户更改地图上的某些内容时,地图的状态会保存为 url 参数,然后将其发送/存储在服务器上,以便 PhantomJS 生成它。 例如。

    &coords=123.123,10.123,54.54,45.11&zoom_level=5&....
    

    【讨论】:

    • 有些地图有几十万个值,所以为了制作地图层,我生成了一个 GeoJSON 对象,并保存它。我假设我将不得不创建一个使用 phantomJS 的小节点应用程序,以便在用户每次创建/更新地图时截取屏幕截图。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多