Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于按id数组过滤图层(要素id)要素特性的mapbox表达式_Mapbox_Mapbox Gl - Fatal编程技术网

用于按id数组过滤图层(要素id)要素特性的mapbox表达式

用于按id数组过滤图层(要素id)要素特性的mapbox表达式,mapbox,mapbox-gl,Mapbox,Mapbox Gl,我正在使用Mapbox GL JS 1.12 我正在尝试按要素id有选择地挤出建筑物。我已成功地从Mapbox Studio中的“建筑物挤出”层过滤数据,以实现此效果。但是,我很想知道代码的编写方法,这样我就不必在UI的输入表单中手动输入一长串ID 根据我从文档和其他在线代码片段中收集到的信息,我觉得这是一种直观且正确的方法 let filter=[ "any", ["in", [123456, 245085, 435

我正在使用Mapbox GL JS 1.12

我正在尝试按要素id有选择地挤出建筑物。我已成功地从Mapbox Studio中的“建筑物挤出”层过滤数据,以实现此效果。但是,我很想知道代码的编写方法,这样我就不必在UI的输入表单中手动输入一长串ID

根据我从文档和其他在线代码片段中收集到的信息,我觉得这是一种直观且正确的方法

     let filter=[
       "any",
       ["in", [123456, 245085, 435086], ["to-number", ["get", "id"]]],
       ['==', 'extrude', 'true']
     ]
     map.setFilter('some-buildings-3d',filter)
错误:

错误:layers.some-buildings-3d.filter[1][1]:应为字符串,数组 发现

错误:layers.fire-stations-3d.filter[1][2]:字符串、数字或 应为布尔值,找到数组

我使用defualt'composite'源添加图层

map.addLayer(
  {
    'id': 'some-buildings-3d',
    'source': 'composite',
    'source-layer': 'building',
    'type': 'fill-extrusion',
    'paint': {
        'fill-extrusion-color': '#aaa',
        'fill-extrusion-opacity': 0.6
    }
  },labelLayerId
);

StackO的任何人都有使用Mapbox表达式过滤数据的经验,并且知道正确的方法,而不是继续无意识地尝试错误吗?

请您创建一个最小的设置,看看这些错误是从哪里来的?