矢量瓦片源和基于矢量的图层在 Mapbox-GL-JS 样式中的minzoom
和属性到底有什么作用?文档有点短maxzoom
。
问问题
5745 次
1 回答
20
在矢量切片源中
让我们看这个例子:
"mytiles": {
"type": "vector",
"tiles": ["http://localhost/tiles/{z}/{x}/{y}.pbf"],
"minzoom": 7,
"maxzoom": 12
}
这表示:
http://localhost/tiles/tiles.json
如果(我认为)有可用的 TileJSON 文件,请忽略它的minzoom
和maxzoom
属性。- 切勿尝试获取 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 回答