用于按id数组过滤图层(要素id)要素特性的mapbox表达式
我正在使用Mapbox GL JS 1.12 我正在尝试按要素id有选择地挤出建筑物。我已成功地从Mapbox Studio中的“建筑物挤出”层过滤数据,以实现此效果。但是,我很想知道代码的编写方法,这样我就不必在UI的输入表单中手动输入一长串ID 根据我从文档和其他在线代码片段中收集到的信息,我觉得这是一种直观且正确的方法用于按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
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表达式过滤数据的经验,并且知道正确的方法,而不是继续无意识地尝试错误吗?请您创建一个最小的设置,看看这些错误是从哪里来的?