在 deck.gl GeojsonLayer 中,如何隐藏单个多边形?

In a deck.gl GeojsonLayer, how can I hide individual polygons?

我的 deck.gl 地图中有一个多边形 GeoJSON layer。为了避免在许多用户交互中重新加载许多多边形,我想预加载所有多边形然后更改它们的可见性。我试图通过将填充颜色(以及线条颜色和线条宽度,但它隐藏在函数中)设置为 null 来实现这一点,具体取决于多边形属性。

        new deck.GeoJsonLayer({
            id: 'polygon-layer',
            data: family,
            pickable: true,
            getPosition: d => d.geometry.coordinates,
            filled: true,
            getFillColor: d => show(d) ? hexToIntColor(d.properties.color) : null,
            lineWidthUnits: "pixels",
            getLineWidth: highlighted,
            getLineColor: highlighedColor,
            lineWidthMinPixels: 1,
            visible: true,
            onClick: displayProperties,
            updateTriggers: {
                getLineWidth: [highlightedMap, highlightedCode],
                getLineColor: [highlightedMap, highlightedCode],
                getFillColor: [highlightedMap, highlightedCode]
            }
        })

结果与我的预期大相径庭

如何设置不显示单个多边形? (我看到的这些奇怪的黑色渐变是从哪里来的,而不仅仅是从背景地图上看到粉红色和海岸线?)

尝试使用DataFilterExtension,将filterRange设置为[1, 1]意味着只有满足条件(1)的实体才会被渲染,而不是(0):

new deck.GeoJsonLayer({
  ...
  getFilterValue: (d) => Number(show(d)),
  filterRange: [1, 1],
  extensions: [new DataFilterExtension({ filterSize: 1 })],
  updateTriggers: {
    getFilterValue: [yourTrigger]
  }
});