优化 openmaptiles 和服务器以生成行星切片

Posted

技术标签:

【中文标题】优化 openmaptiles 和服务器以生成行星切片【英文标题】:Optimizing openmaptiles and servers for planet tiles generation 【发布时间】:2019-11-23 06:35:29 【问题描述】:

我目前正在使用 openmaptiles 来生成行星图块(缩放 0 到 14 或 15)。这是一个漫长的过程,我计划在专用服务器上运行。 我知道这是 openmaptiles 提供的一项服务,但我负担不起花费 1200 美元或 1000 美元来生成或购买图块。

在 openmaptiles 项目的自述文件中写道,quickstart.sh 没有针对行星渲染进行优化。这就是为什么我想知道如何优化配置以使其尽可能快。 为了清楚起见,我将使用mbutilsmbtiles 文件生成图块,允许我在具有不同缩放级别的不同服务器上运行行星生成(即在第一台服务器上缩放 1 到 9,在另一台服务器上缩放 10 到 14一)。这样,我将收集不同的 mbtiles 文件,用于生成 .pbf 切片并将其与 mbutils 合并。

我读了issue,但它对我没有任何改变。 也许我也可以删除一些不会在我的地图上使用的图层? (怎么做 ?) ATM,当我运行一个脚本时,它似乎没有使用完整的 CPU 容量。

感谢您的帮助

【问题讨论】:

如果您的硬件设置限制生成整个星球,生成分段并加入它们(使用 tile-join),我必须这样做。 【参考方案1】:

我找到了一种加速这个过程的方法: 制作 openmaptiles/generate-vectortiles repo 的 PR,其中包含该项目主容器的 dockerfile。 在后台,此容器使用 mapbox 的 tilelive 项目,该项目允许将大作业拆分为较小的作业。 我添加了两个环境变量:

JOBS: 应该拆分的作业数 JOB_NUM:要运行的作业号

分叉在这里:https://github.com/qlerebours/generate-vectortiles

如果您有多个服务器来生成它,它允许并行化进程。

【讨论】:

【参考方案2】:

你可以通过修改来限制返回的层:https://github.com/openmaptiles/openmaptiles/blob/master/openmaptiles.yaml

在 openmaptiles.yaml 中 - 减少层条目,使其包含您需要的唯一层。

例如,我只需要构建数据,因此我更改了文件,以便图层部分仅包含以下内容。

层: - 层/建筑/building.yaml

我通过查看 openmaptiles 存储库的历史来解决这个问题。它对我有用。

希望这会有所帮助!如果您找到其他方法来加快该过程,那将是很好的分享!

谢谢 -鲁弗斯

【讨论】:

以上是关于优化 openmaptiles 和服务器以生成行星切片的主要内容,如果未能解决你的问题,请参考以下文章

OpenMapTiles 初学者问题

将样式添加到正在运行的 OpenMapTiles 服务器

LeetCode 0735.行星碰撞:两种方法(方法二是方法一的优化)

tileserver-gl 版本和 Openmaptiles.com 地图数据不匹配?

“14 天可用性” OpenMapTiles.com 数据

美国宇航局的DART任务将以行星防御的名义故意撞击小行星的卫星