问题描述

我的目标是将世界 Map 嵌入到网页中,但无法访问互联网。最好只有一组瓷砖与一些滑图 js-lib 组合。存储空间不是真正的问题,并且不需要最大缩放级别。

最简单的方法是什么?

我发现一个似乎符合账单的项目 – Map 在一根棍子上,但似乎已经死了?

最佳解决思路

我会建议您查看 TileMill,它是由在 「贴图」 上工作的同一个人制作的。 TileMill 或者是 「A on Stick」(Map 上的一部分) 的一部分,或者是 「Maps On A Stick」 是什么样的东西。我忘了连接。无论如何…

TileMill 将允许您加载地理数据,将其设计为您喜欢的样式,然后为各种缩放级别创建一组 PNGMap 图块。

TileMill 的输出是一个.mbtiles 文件。这只是一个保存 PNG 的 sqlite 数据库。如果您正在离线工作,将 png 解压缩到一个文件夹 (使用 mbutil) 可能更容易,而不是使用 sqlite 来访问它们。

如果您的 Map 相当简单 (即最小的互动),建议您使用 Leaflet 作为您的 Map 库。

在传单中,您需要添加一个 tile layer(提示:使用 tms 而不是 xyz) 。

希望有帮助。

编辑:几件事要注意。

1) 您应该了解使用任何 Map 数据的许可限制 (请参阅我对上述问题的评论) 。

2) 如果你靠近足够看到道路等等,那么希望有几 GB 的瓷砖。

次佳解决思路

另一个选择就是像 mapwingis 。不需要瓷砖,它会读取 shapefile 。

第三种解决思路

我找到了一个名为 OpenMapTiles 的新项目,使离线 Map 更容易。

在您的机器上设置瓦片服务器是非常容易的。安装 Node.js(使用 npm),并按照他们的文档中的两个步骤:https://openmaptiles.org/docs/

您可以从他们的网站下载 Map(包括整个地球的 Map,现在是〜 44 GB):https://openmaptiles.org/downloads/

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。