minzoom和maxzoom在Mapbox-GL-JS中做了什么?

时间:2018-01-10 22:40:44

标签: mapbox-gl-js vector-tiles

矢量切片源上的minzoommaxzoom属性以及Mapbox-GL-JS样式中基于矢量的图层究竟是什么? documentation有点短。

1 个答案:

答案 0 :(得分:5)

在矢量图块源

让我们举个例子:

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

这意味着:

  • 如果http://localhost/tiles/tiles.json (I think), ignore its minzoom and maxzoom`属性中有TileJSON文件可用。
  • 永远不要尝试获取7-12范围之外的任何图块。
  • 如果需要在缩放13处使用图块,则在缩放12处获取等效图块,然后重新缩放。
  • 如果需要一个图块,比如缩放,6,那么根本不显示图块。欠发生永远不会发生。

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

在矢量图层

让我们举个例子,参考上面的来源:

{
    "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属性,则图层将尝试在源缩放范围内的任何给定缩放下显示。