我的目标是将世界地图嵌入到网页中,但不能访问互联网。最好仅将一组图块与一些易用的地图js-lib结合使用。存储空间并不是真正的问题,并且不需要最大缩放级别。
最简单的方法是什么?
我找到了一个看起来很合适的项目-贴在棍子上的地图,但似乎已经死了?
我的目标是将世界地图嵌入到网页中,但不能访问互联网。最好仅将一组图块与一些易用的地图js-lib结合使用。存储空间并不是真正的问题,并且不需要最大缩放级别。
最简单的方法是什么?
我找到了一个看起来很合适的项目-贴在棍子上的地图,但似乎已经死了?
Answers:
我建议您研究TileMill,它是由在Maps on A Stick上工作的同一个人制作的。TileMill要么是“贴在地图上”的一部分,要么就是“贴在地图上”变成的东西-诸如此类。我忘记了连接。无论如何...
TileMill将允许您加载地理数据,按照自己的喜好对其进行样式设置,然后为各种缩放级别创建一组PNG地图图块。
TileMill的输出是一个.mbtiles文件。这只是一个保存PNG的sqlite数据库。如果您离线工作,将png提取到文件夹(使用mbutil)可能比使用sqlite访问它们更容易。
如果您的地图非常简单(即最小程度的交互),建议您将Leaflet用于地图库。
然后,在传单中,您需要添加一个图块层(提示:使用tms而不是xyz)。
希望能有所帮助。
编辑:需要注意的几件事。
1)您应该注意所使用的任何地图数据的许可限制(请参阅我对上述问题的评论)。
2)如果您靠近足够近的地方可以看到道路等,则预计会有数GB的瓷砖。
我发现了一个名为OpenMapTiles的新项目,这使拥有离线地图变得容易得多。
在计算机上设置平铺服务器非常容易。安装Node.js(使用npm)并按照其文档中的两个步骤操作:https : //openmaptiles.org/docs/
您可以从他们的网站下载地图(包括整个星球的地图,现在约为44 GB):https : //openmaptiles.org/downloads/
如果可以制作一个MBTiles文件(例如,使用Tilemill),则可以使用Tilestache附带的脚本将该文件转换为与预期的z / x / y布局tilestache-seed.py
相符的嵌套文件夹中的简单瓦片包。这是我最近制作的: