deck.gl переходы и фильтрация
Кто-нибудь может объяснить, как обновления данных и переходы работают с Deck.gl по сравнению с d3js? Например, в этом коде:
var updateLayers = function(dataset) {
var scatterplot = new deck.ScatterplotLayer({
/* unique id of this layer */
id: 'checkins',
/* data: an array of objects */
data: dataset,
/* data accessors */
getPosition: d => d.geometry.coordinates, // returns longitude, latitude, [altitude]
getRadius: d => circleSize(d.properties.reviews), // returns radius in meters
getColor: d => [255, 0, 0],
outline: true, // returns R, G, B, [A] in 0-255 range
transitions: {
getRadius: {
duration: 1000,
easing: d3.easeCubicInOut,
enter: value => [value[0], value[1], value[2], 1] // fade in
}
}
})
// Add the layer to deckgl:
deckgl.setProps({ layers: [scatterplot] });
}
Мне непонятно что enter: value => [value[0], value[1], value[2], 1]
делается. Кто-нибудь может объяснить? Я бы вообще ожидал (за d3js), что это enter:
устанавливает точки останова при переходе, но мне непонятно, что value
относится к?
1 ответ
https://github.com/uber/deck.gl/blob/master/docs/api-reference/layer.md
enter - Function - APPEARANCE (value => value) - обратный вызов для получения значения, от которого переходят входящие вершины.
Enter должен возвращать значение для перехода от. для текущей вершины.
Он получает два аргумента:
toValue (TypedArray) - новое значение для перехода к текущей вершине
fromChunk (Array | TypedArray) - существующее значение для перехода, для блока, к которому принадлежит текущая вершина. "Чанк" - это группа вершин, которые помогают обратному вызову определять контекст этого перехода. Для большинства слоев все объекты находятся в одном куске. Для PathLayer и PolygonLayer каждый путь / полигон является порцией.