Что именно делают minzoom и maxzoom в Mapbox-GL-JS?

Что именно делать minzoom а также maxzoom свойства в векторных источниках листов и векторные слои в стилях Mapbox-GL-JS? Документация немного короткая.

1 ответ

Решение

В источнике векторной плитки

Давайте возьмем этот пример:

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

Это означает:

  • Если файл TileJSON доступен по адресу http://localhost/tiles/tiles.json (I think), ignore itsminzoomandmaxzoom` свойства.
  • Никогда не пытайтесь получить какую-либо плитку за пределами диапазона 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 свойства не определены, тогда слой будет пытаться отображаться при любом увеличении в пределах диапазона масштабирования источника.

Другие вопросы по тегам