我已将应用程序升级到mapbox-gl-js的最后一个版本,但它已经破坏了它。
queryRenderedFeatures已更改,现在它在非现有图层上出错。
由于多种原因,我们无法预测此时将存在哪些层(一些是动态构建的)。
有没有办法解决这种问题?
基本上我们希望能够执行以下操作(其中一个图层没有)并且仍然可以得到结果。
THX, JM
features = map.queryRenderedFeatures([{
x: x1,
y: y1
}, {
x: x2,
y: y2
}], {
layers: [
'Layer A',
'Possibly non existing Layer B',
'Layer C'
]
});
答案 0 :(得分:1)
您可以过滤掉不存在的图层:
features = map.queryRenderedFeatures(
[{x: x1, y: y1}, {x: x2, y: y2}],
{layers:
['Layer A', 'Possibly non existing Layer B', 'Layer C']
.filter((layer)=>{map.getLayer(layer)})]
});
应该避免触发错误