scatterplotLayer = () => {
const elapsedValue = viewof elapsed.value
return new deck.ScatterplotLayer({
id: 'scatterplot-layer',
data: geotaggedEvents,
getPosition: d => d.location,
getRadius: d => {
return (d.level + 1) * 50 * 1000
},
getFillColor: d => {
if (d.date > (elapsedValue - 7 * 24 * 60 * 60 * 1000) &&
d.date <= elapsedValue) {
const alpha = 255 - 255 * (elapsedValue - d.date) / (7 * 24 * 60 * 60 * 1000)
const green = Math.min(255, 255 * d.age / (3 * 30 * 24 * 60 * 60 * 1000))
return [255, green, 0, alpha]
} else {
return [0, 0, 0, 0]
}
},
updateTriggers: {
getFillColor: `${elapsedValue}`
}
})
}