Skip to content

在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
          ]
        ],
      ]
    }
  ]}