首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mapbox-gl-js筛选器或数据驱动属性

mapbox-gl-js筛选器或数据驱动属性
EN

Stack Overflow用户
提问于 2021-05-03 13:33:40
回答 1查看 455关注 0票数 2

对于知道mapbox内部工作方式的人来说,这是一个问题。

用例:根据属性区域,我们要显示两个颜色不同的多边形。

目前,使用mapbox,您可以根据数据定义样式的两种方法:

  1. 使用过滤器:
代码语言:javascript
复制
{
  "id": "region_sud",
  "filter": [
    "all",
    [
      "==",
      "sud",
      ["get", "region"]
    ]
  ],
  "paint": {
    "fill-color": "#F27E00",
  },
  "source": "region",
  "source-layer": "region",
  "type": "fill"
},{
  "id": "region_nord",
  "filter": [
    "all",
    [
      "==",
      "nord",
      ["get", "region"]
    ]
  ],
  "paint": {
    "fill-color": "#007E00",
  },
  "source": "region",
  "source-layer": "region",
  "type": "fill"
}
  1. 使用数据驱动样式属性
代码语言:javascript
复制
{
  "id": "region",
  "paint": {
    "fill-color": [
      "case",
      ["==", ["get", "region"],"sud"],
      "#F27E00",
      ["==", ["get", "region"],"nord"],
      "#007E00",
      "#000000",
    ],
  },
  "source": "region",
  "source-layer": "region",
  "type": "fill"
}

我认为最好的选择是方法2,因为我们只需要创建一种样式,而不是2。

但是如果有20到200个不同的区域要画呢?哪种解决方案在性能上是最好的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-03 16:20:01

如果您定义了20-200层,则地图绘制将变得缓慢.因此,当然,将它们看作一个单层并使用数据驱动样式是一种更好的方法。

你可以看看文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67369847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档