{
let scatterploLayer = new deck.ScatterplotLayer({
id: 'scatterplot-layer',
data,
stroked: true,
filled: true,
pickable: true,
getPosition: d => [d.pickup_lng, d.pickup_lat],
getRadius: d => 20,
getFillColor: d => [0, 0, 0],
getLineColor: d => [0, 0, 0],
onHover: ({object, x, y}) => {
const tooltip = `Total bookings: ${object.total_bookings}`;
mutable scatterPlotHover = tooltip
}
})
let hexLayer = new deck.HexagonLayer({
id: 'heatmap',
radius: 1000,
colorScaleType: 'quantile',
opacity: 0.2,
pickable: true,
colorRange: [
[255, 237, 177],
[253, 231, 160],
[255, 216, 89],
[255, 195, 0],
[241, 146, 14],
[227, 97, 28],
[199, 0, 57],
[144, 12, 63],
[90, 24, 70],
[65, 3, 46],
[50, 1, 35]
],
data,
getPosition: d => [d.pickup_lng, d.pickup_lat],
getColorValue: (d) => {
if (d.length >= 1) {
let totalBookings = 0;
for (let datum of d) {
if (datum.hasOwnProperty('total_bookings')) {
totalBookings += datum['total_bookings']
}
}
return totalBookings;
}
return 0;
},
})
googleMap.overlayMapTypes.setAt( 0, null);
let overlay = new deck.GoogleMapsOverlay({
layers: [
hexLayer,
scatterploLayer
]
});
overlay.setMap(googleMap);
}