9

矢量瓦片源和基于矢量的图层在 Mapbox-GL-JS 样式中的minzoom和属性到底有什么作用?文档有点短maxzoom

4

1 回答 1

20

在矢量切片源中

让我们看这个例子:

"mytiles": {
    "type": "vector",
    "tiles": ["http://localhost/tiles/{z}/{x}/{y}.pbf"],
    "minzoom": 7,
    "maxzoom": 12
}

这表示:

  • http://localhost/tiles/tiles.json如果(我认为)有可用的 TileJSON 文件,请忽略它的minzoommaxzoom属性。
  • 切勿尝试获取 7-12 范围之外的任何图块。
  • 如果在缩放 13 时需要一个图块,则在缩放 12 处获取等效图块,然后将其过度缩放。
  • 如果在缩放 6 时需要磁贴,则根本不显示磁贴。永远不会发生缩放不足。

如果源上未定义minzoom和/或属性,则使用 TileJSON 中的等效属性(如果可用)。maxzoom否则,假定切片在请求的任何缩放级别都可用,并且不会发生过度缩放。(如果图块实际上不可用,它们就不会显示。)

在矢量图层中

我们举这个例子,参考上面的源码:

{
    "id": "mylayer",
    "source": "mytiles",
    "source-layer": "mytiles-layer",
    "type": "fill",
    "minzoom": 10,
    "maxzoom": 14
}

这表示:

  • 切勿以小于 10 的缩放比例显示此图层,即使有可用的图块。
  • 尝试以 10.0-13.9 的缩放比例显示此图层,并根据需要在 13.0 和 13.9 之间过度缩放图块。
  • 永远不要在缩放 14+ 时显示此图层

如果minzoom/maxzoom属性未定义,则图层将尝试在源缩放范围内以任何给定缩放显示。

在地图对象上

为了完整性:实例化 Map 对象时:

   const map = new mapboxgl.Map({
     container: 'map,
     style,
     minZoom: 8, // note the camel-case
     maxZoom: 15
   });

这表示:

  • 不允许用户缩小小于 8 或大于 15。
于 2018-01-10T22:40:44.237 回答