MapBox MB 瓦片与矢量瓦片

MapBox MB Tile vs Vector Tile

我对 MapBox 中的 Tiles 有点困惑。据我了解,瓷砖是一小块地图,就像拼图游戏一样。

MBTiles 是图像,但它们连接到数据库以读取数据并使交互成为可能。所以如果我移动鼠标,我可以显示光标下图层的细节。

Vector Tiles 将所有数据存储在向量中,它们仅用于快速渲染图像。无法与此类数据进行交互。

我错了吗?

现在,我看到有矢量切片工具 TileMill for MBTiles, and MapBox Studio Classic。我想它们是出于不同的目的;第一个用于交互式地图,后者用于快速渲染。 那么....为什么 TileMill not supported anymore 支持 MBStudio? 是否也可以使用 MBStudio 制作交互式地图?

谢谢

这是一个很好的问题!

mbtile 是一种可以包含栅格或矢量图块的文件类型。把它想象成一个 Adob​​e Illustrator .ai 文件——它可以包含矢量或光栅数据。栅格切片和矢量切片都可以采用 mbtile 格式。

使用 TileMill,您的矢量数据(shapefile、CSV 等)与您的 CartoCSS 样式相结合并传递给 Mapnik 以生成一堆平铺图像。然后您可以存储您的图块并通过图块服务器将它们提供给网络地图。使用 Mapbox Studio Classic,您正在将数据转换为矢量切片并创建 CartoCSS 样式来设置数据样式,但直到通过浏览器请求地图时才会创建图像切片。最终,地图上的输出是相同的——栅格图块网格。

您在 TileMill 中创建的带有光栅图块的交互是通过 UTFGrid 发生的。这是一个不可见的栅格层,位于图像图块下方,并为某些位置增加了交互性。交互性实际上根本没有连接到任何单独的功能——它只是与您的功能位于同一位置。这在 Mapbox Studio Classic 中也是可能的,因为地图中的输出也将是栅格图块的网格。您可以在 style quickstart guide.

中阅读有关如何在 Mapbox Studio Classic 中执行此操作的更多信息

因此,为了回答您的问题,迁移到 Mapbox Studio Classic 是为了利用矢量切片。它们比光栅图像块小很多,并且可以即时设置样式,因此,例如,您不必存储两组单独的图像来适应视网膜屏幕。这也意味着您可以将多种样式即时应用于同一矢量数据,这意味着您不必为每种样式或每个小的更改重新生成一整套图像。

如果元数据 table 包含记录格式=pbf,则 mbtiles 是矢量切片而不是栅格。 mbtiles SQLite 数据库可以是矢量瓦片的容器,这些瓦片在 Tiles table 和 tile_data blob 字段中具有 PBF -Protocol Buffers - protobuf ( https://github.com/google/protobuf – 用于序列化结构化数据的语言中立平台中立机制) 由 Google 开发。 MapBox Studio 等工具从 GIS 矢量数据和数据库构建矢量切片