我有一组标记,我将其添加到地图中。现在,我正在使用Mapbox GL缩放功能根据缩放级别调整其大小 - 这是有效的。现在我想做一些与可见度类似的东西 - 当缩放级别为7或更低时隐藏这些标记。我使用此代码来定义标记的布局:
"layout": {
"icon-image": "marker-{icon}",
"icon-allow-overlap": true,
"icon-size": {
stops: [[6, 0.12], [11, 0.3], [16, 0.3]]
},
"icon-offset": [0, -42],
"visibility": {
stops: [[7, 'none'], [8, 'visible']]
}
}
但是,这是我在js控制台中遇到的错误 - “错误:layers.places.layout.visibility:在Function.module.exports中找到[visible,none],[object Object]之一.emitErrors(mapbox-gl.js:149)“
毋庸置疑,我的标记不会显示。有谁知道我做错了什么?非常感谢。
答案 0 :(得分:2)
首先,澄清一下,你在谈论"图标" ("符号")图层的一部分 - 不是" markers",这是在样式之外添加到地图的内容。
现在,这里的简单答案是visibility
属性不支持数据驱动样式(请注意表中,没有"数据驱动样式&#34 ;行)。 Mapbox表示他们不打算从内存中实现它。
相反,您可以使用icon-opacity
来获得几乎相同的结果:
"paint": {
"icon-opacity": {
stops: [[7, 0], [8, 1]]
}
}
(我说"几乎"相同的结果,因为"可见"但0-opacity图标仍然会在地图平移和缩放时加载,所以它稍微有点表现更差。)