Что именно делают 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 its
minzoomand
maxzoom` свойства. - Никогда не пытайтесь получить какую-либо плитку за пределами диапазона 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
свойства не определены, тогда слой будет пытаться отображаться при любом увеличении в пределах диапазона масштабирования источника.