在 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 });
}

感谢任何帮助:))

我认为一个好的方法是使用 DataFilterExtensioncheck 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