MapBox MB磁贴与矢量磁贴

MapBox MB磁贴与矢量磁贴,mapbox,tile,tilemill,geovectortile,Mapbox,Tile,Tilemill,Geovectortile,我对MapBox中的瓷砖有点困惑。据我所知,瓷砖是一小块地图,就像拼图游戏一样 MBTiles是图像,但它们连接到数据库以读取数据并使交互成为可能。因此,如果我移动鼠标,我可以在光标下显示图层的详细信息 矢量分幅将所有数据存储在矢量中,它们仅用于快速渲染图像。不可能与此类数据进行交互 我错了吗 现在,我看到了MBTiles和向量Tiles的工具。我猜它们是为了不同的目的;第一个用于交互式贴图,第二个用于快速渲染。 所以为什么TileMill支持MBStudio? 是否也可以使用MBStudio制

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

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

矢量分幅将所有数据存储在矢量中,它们仅用于快速渲染图像。不可能与此类数据进行交互

我错了吗

现在,我看到了MBTiles和向量Tiles的工具。我猜它们是为了不同的目的;第一个用于交互式贴图,第二个用于快速渲染。 所以为什么TileMill支持MBStudio? 是否也可以使用MBStudio制作交互式地图


谢谢

这是一个很好的问题

mbtile
是一种文件类型,可以包含光栅或矢量tile。把它想象成一个Adobe Illustrator
.ai
文件——它可以包含矢量或光栅数据。光栅分幅和矢量分幅都可以采用
mbtile
格式

使用TileMill,矢量数据(shapefile、CSV等)与CartoCSS样式相结合,并传递给Mapnik以生成一组平铺图像。然后,您可以存储磁贴,并通过磁贴服务器将其提供给web地图。使用Mapbox Studio Classic,您可以将数据转换为矢量分幅,并创建CartoCSS样式来设置数据的样式,但只有通过浏览器请求地图时,才会创建图像分幅。最终,地图上的输出是相同的——一个光栅分幅栅格

您在TileMill中创建的与光栅分幅的交互是通过一个UTFGrid实现的。这是一个不可见的光栅层,位于图像平铺下方,并为某些位置添加交互性。交互性实际上根本没有连接到任何单独的功能——它只是在与您的功能相同的位置。这在Mapbox Studio Classic中也是可能的,因为地图中的输出也将是光栅分幅的网格。您可以在中的Mapbox Studio Classic中阅读有关如何执行此操作的更多信息


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

如果元数据表包含记录格式=pbf,则MBTILE是矢量TILE,而不是光栅。mbtiles SQLite数据库可以是一个向量tile的容器,它在tiles表和tile_数据blob字段PBF-协议缓冲区-protobuf(用于序列化结构化数据的语言中立平台中立机制)中有一个容器。MapBox Studio等工具可以从GIS矢量数据和数据库构建矢量图块

是否可以在一个样式的项目中向多个图层添加这样的交互?或者我应该创建多个样式,每个样式都带有交互式UTFGrid,然后将它们作为单独的图层添加到地图中?FWIW,
mbtiles
规范(截至编写-v1.2版)仅支持光栅数据。但是有一个普遍的习惯是忽略规范,并在其中填充向量数据。数据通常是压缩的Mapbox矢量分幅形式。