在gis 业务开发中,我们经常会类似这样的需求: 一份行政区划数据,分为省、市、县、乡、村,我们需要在不同的缩放层级(zoom)下,显示不同的内容。 在mapbox中很自然的会想到使用style中layer的visible
来进行设置,但visible不支持使用样式表达式
,有的同学这时会想到使用要素的透明度来实现,但这会带来造成样式污染和其他的问题。 其实我们可以通过filter
属性来实现:
javascript
{
//...
layers:[
{
id: "xingzhengquhua",
type: "fill",
// ...
filter: [
"all",
[
">=", ["zoom"],
[
"match", ["get", "level"],
1, // lever值
12, // minzoom
2, //etc
13,
3,
14,
20 // fallback
]
],
]
}
]}