gpt4 book ai didi

javascript - Mapbox 更改源属性

转载 作者:行者123 更新时间:2023-12-02 18:26:18 26 4
gpt4 key购买 nike

我想用mapbox制作一个簇层,是的,我做到了:D。但我希望能够将其关闭

所以我正在制作一个来源

        const source = {
type: "geojson",
data: {
"type": "FeatureCollection",
"features": []
},
cluster: true,
clusterRadius: 10
}
this.map.addSource(id, source);

现在我可以设置数据了:

        this.map.getSource(this.id).setData({
"type": "FeatureCollection",
"features": this.createInnerCircles()
})

此后,我将设置簇和圆圈的图层。现在集群正在工作

但是现在:如何从我的源中将 cluster: true 设置为 false。好吧,也许我可以扔掉源代码并制作一个新的源代码,但这很丑陋。

所以丑陋的方式是

        const SOURCE = this.map.getSource(id);
SOURCE._options.cluster = false;
this.map.removeSource(id);
this.map.addSource(id, SOURCE._options);

哎呀,那不起作用,现在我得到:

Source "test" cannot be removed while layer "test-outer" is using it.

更新

我能够启用/禁用集群,谢谢@Steve Bennett

    setCluster(isVisable, clusterRadius = 10) {
const style = this.map.getStyle()
style.sources.test.cluster = isVisable;
if(isVisable) {
style.sources.test.clusterRadius = clusterRadius;
}
this.map.setStyle(style)
}

最佳答案

更改没有特定方法的属性的一般方法是:

const style = map.getStyle()

style.sources.X.Y = Z;

map.setStyle(style)

Mapbox GL JS 将执行比较,然后进行您需要的更改。

关于javascript - Mapbox 更改源属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70109527/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com