Mapbox 矢量图块的时间滑块:单独的 SQLite 文件还是单个组合文件?

Time Slider for Mapbox Vector Tiles: Separate SQLite Files or a Single Combined File?

提问人:Victor Alejandro Álvarez Vega 提问时间:11/14/2023 更新时间:11/21/2023 访问量:18

问:

我正在为我的 Web 应用程序创建一系列 Mapbox 矢量图块(它们只是 SQLite 数据库)。这些图块将代表时间上的一帧,我将拥有数百小时内的许多帧,用户将通过时间滑块进行可视化。最好将 MVT 分开,还是将我当前的实现与 Tippecanoes 这些单独的 MVT 连接到一个文件中,将不同的帧作为层访问?将它们合并为一个 MVT 总体上效果很好,但它们在一段时间后变得相当大且处理速度很慢,因为它必须读入 RAM。将它们分开可以解决这个问题,但我担心在滚动时间时快速连接/断开与 SQLite 文件的连接会产生一些性能问题。感谢您的任何帮助和建议!tile-join

sql sqlite 后端 mapbox-gl-js tippecanoe

评论


答:

1赞 Steve Bennett 11/21/2023 #1

假设您在不同的时间(小时)有一个数据值 (, temperature)。temph

您基本上有 3 个选择,而不是 2 个:

  1. 每小时 1 个 mbtiles 文件。每个图层包含一个图层 (),每个几何图形有 1 个值。tempstemp
  2. 一个 mbtiles 文件,每小时 (, ...) 一个图层,每个几何图形一个值。temp1temp2temp
  3. 一个 mbtiles 文件,具有一个图层 (),每个几何图形具有多个值 (, ...)tempstemptemp1temp2

就我个人而言,我会:

  1. 从选项 3 开始。
  2. 如果每个图块都太大(对于所需的缩放级别),请尝试选项 2。
  3. 如果由于每个文件都太大而在服务器端遇到性能问题,请尝试选项 1。这对我来说似乎不太可能——我从来没有遇到过这样的情况。

但是它们会变得相当大,并且在一段时间后处理起来很慢,因为它必须读入 RAM。

我不确定你在这里说的“它”是什么意思,或者你是在谈论瓷砖生成过程(一次性)还是服务过程,或者浏览器中发生了什么。生成图块可能很慢,但您不必经常这样做。