我希望用自托管和免费的东西代替谷歌地图。搜索了一段时间后,我找到了 OpenMapTiles。我对这个东西很陌生,所以有很多我不明白的东西,即:
谢谢
这完全有可能,我自己已经做到了。但是,做所有事情都需要一段时间。
1.生成MBTiles
首先,我建议您开始查看 OpenMapTiles 的 Github 存储库:https : //github.com/openmaptiles/openmaptiles
要生成一个 MBTiles 文件,对于一个国家来说,在您自己的计算机上是很容易做到的。基本上你可以通过以国家名称作为参数执行主脚本来实现。像这样:
./quickstart.sh portugal
Run Code Online (Sandbox Code Playgroud)
在脚本创建一个 Docker 机器后,下载国家的 OpenStreetMap 数据,处理它,并生成 MBTiles 文件,然后你就完成了。
对我而言,使用普通计算机,对于西班牙或葡萄牙等国家/地区,大约需要 4-12 个小时才能完成。但这真的取决于国家。挪威需要永远(大约 4 天),我相信是因为它的海岸线很长。
如果您想要一个适用于整个地球的 MBTiles 文件,那么您需要一台功能更强大的计算机,特别是具有大 SSD 和大量 RAM。32 到 64 GB RAM 和 250-300 GB SSD。
2.设置tile服务器
之后,您可以使用此项目https://github.com/urbica/tessella运行您自己的 tile 服务器,以便从网站或移动应用程序中使用。
服务器的资源将取决于您要在服务器中使用的 MBTiles 文件的大小。
3. 启用轮廓线
这也是可能的,但有点棘手。我建议您为此使用 Maptiler 作为服务。
每当我实现这件事时,我会带着信息回来给你。
如果您生成的图块不包含等高线/高程数据,则样式将无济于事。OpenMapTiles 中的图块内部没有轮廓。
4.显示GPS轨迹
这也是可能的。你想在这里使用什么技术?是网络吗?那么小叶是你的朋友。如果它是移动应用程序,那么您可以尝试 VTM:https : //github.com/mapsforge/vtm或 Carto。