Mapbox GL - 无法通过缩放功能设置可见性
Mapbox GL - cant set visibility through the zoom function
我有一组标记添加到我的地图中。现在,我正在使用 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:预期 [visible,none] 之一,[object Object] found在 Function.module.exports.emitErrors (mapbox-gl.js:149)"
不用说,我的标记没有显示。有谁知道我做错了什么?非常感谢。
首先,澄清一下,你说的是 "icons"("symbol" 的一部分)层——而不是“markers”,它们是添加到地图之外的东西风格。
现在,这里的简单答案是 visibility
属性 不支持数据驱动样式(请注意 table,没有 "data-driven styling" 行).根据记忆,Mapbox 表示他们不打算实施它。
相反,您可以使用 icon-opacity
来获得几乎相同的结果:
"paint": {
"icon-opacity": {
stops: [[7, 0], [8, 1]]
}
}
(我说 "almost" 相同的结果,因为 "visible" 但 0 不透明度图标在地图平移和缩放时仍会加载,因此性能略差。)
我有一组标记添加到我的地图中。现在,我正在使用 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:预期 [visible,none] 之一,[object Object] found在 Function.module.exports.emitErrors (mapbox-gl.js:149)"
不用说,我的标记没有显示。有谁知道我做错了什么?非常感谢。
首先,澄清一下,你说的是 "icons"("symbol" 的一部分)层——而不是“markers”,它们是添加到地图之外的东西风格。
现在,这里的简单答案是 visibility
属性 不支持数据驱动样式(请注意 table,没有 "data-driven styling" 行).根据记忆,Mapbox 表示他们不打算实施它。
相反,您可以使用 icon-opacity
来获得几乎相同的结果:
"paint": {
"icon-opacity": {
stops: [[7, 0], [8, 1]]
}
}
(我说 "almost" 相同的结果,因为 "visible" 但 0 不透明度图标在地图平移和缩放时仍会加载,因此性能略差。)