在 Angular 2 中更新 deck.gl 层
Updating deck.gl layers in Angular2+
我正在尝试根据作为参数传递的数据更新 Angular 中的 deck.gl 图层,但它不起作用,图层没有更改。 updateTriggers
只是一个 'React only' 功能吗?如果不是,我做错了什么?谁能帮帮我?
updateLayer(minTime: number, maxTime: number): void {
const layer = new ArcLayer({
id: 'arcs',
data: COORDINATES,
dataTransform: d => d.filter(f => f.time >= minTime && f.time <= maxTime),
...
updateTriggers: {
dataTransform: [minTime, maxTime]
}
});
this.deck.setProps({ layers: layer });
}
感谢任何帮助:))
我认为一个好的方法是使用 DataFilterExtension
、check this out。
您的 COORDINATES
还包含 time
信息,对吗?然后你可以应用类似的东西:
updateLayer(minTime: number, maxTime: number): void {
const layer = new ArcLayer({
id: 'arcs',
data: COORDINATES,
filterRange: [1, 1],
getFilterValue: f => Number(f.time >= minTime && f.time <= maxTime),
extensions: [new deck.DataFilterExtension({ filterSize: 1 })],
updateTriggers: {
getFilterValue: [minTime, maxTime]
}
});
this.deck.setProps({ layers: layer });
}
您可以使用脚本 API 查看完整示例 here。
我正在尝试根据作为参数传递的数据更新 Angular 中的 deck.gl 图层,但它不起作用,图层没有更改。 updateTriggers
只是一个 'React only' 功能吗?如果不是,我做错了什么?谁能帮帮我?
updateLayer(minTime: number, maxTime: number): void {
const layer = new ArcLayer({
id: 'arcs',
data: COORDINATES,
dataTransform: d => d.filter(f => f.time >= minTime && f.time <= maxTime),
...
updateTriggers: {
dataTransform: [minTime, maxTime]
}
});
this.deck.setProps({ layers: layer });
}
感谢任何帮助:))
我认为一个好的方法是使用 DataFilterExtension
、check this out。
您的 COORDINATES
还包含 time
信息,对吗?然后你可以应用类似的东西:
updateLayer(minTime: number, maxTime: number): void {
const layer = new ArcLayer({
id: 'arcs',
data: COORDINATES,
filterRange: [1, 1],
getFilterValue: f => Number(f.time >= minTime && f.time <= maxTime),
extensions: [new deck.DataFilterExtension({ filterSize: 1 })],
updateTriggers: {
getFilterValue: [minTime, maxTime]
}
});
this.deck.setProps({ layers: layer });
}
您可以使用脚本 API 查看完整示例 here。