在没有服务器的情况下生成可再发行的地图图像
Generating redistributable map images without a server
我想制作一个应用程序,允许用户下载地图的静态图像,并在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保存到一个文件中。
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- 在谷歌地图上获取事件的x,y坐标
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 模拟谷歌地图中的点击
- 如何知道哪个标记被谷歌地图点击了
- 谷歌地图JS API+JSON-多个标记没有显示
- 缓存谷歌地图数据
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 在谷歌地图上绘制位置数据库
- 标记的实时更新,无需加载页面谷歌地图API V3
- 再一次:TypeError:a.lat不是谷歌地图API中的函数
- 在没有服务器的情况下生成可再发行的地图图像