在没有服务器的情况下生成可再发行的地图图像

Generating redistributable map images without a server

本文关键字:再发行 地图 图像 情况下 服务器      更新时间:2023-09-26

我想制作一个应用程序,允许用户下载地图的静态图像,并在Anki抽认卡组中重新分发它们。但是,我很难弄清楚如何在不面临任何许可限制或运行自己的服务器的情况下生成地图图像。我希望我的应用程序全是客户端JavaScript,这排除了我迄今为止找到的解决方案之一。我已经看到了一种使用 openlayers 从画布导出图像的方法,但是需要代理服务器才能将画布转换为 dataURL 以便可以保存。

到目前为止,我发现的最有前途的选择是MapQuest Open Static Maps API。但是,我找不到太多关于它真正开放程度的信息。OSM数据是开放的,但我不确定图像本身,因为他们说版权地图任务。Mapbox还有一个静态地图API,其许可限制对我来说并不清楚。

我最终使用了传单图像。 leaflet-image 可以使用 OSM tiles 从 leafletjs L.map 对象生成图像数据URL。它使用 CORS 请求磁贴并避免污染画布。

感谢@tyr在他的评论中提到传单图像。我在评论中提到的问题已经解决。

我们开发了一个使用 TileMill 生成 MBTiles 文件的解决方案。然后,我们开发了一个非常简单的PHP脚本,它打开MBTiles(本质上是一个sqlite db),然后将每个图像的blob保存到一个文件中。