examples/website/heatmap/app.js (48 lines of code) (raw):

import React from 'react'; import {render} from 'react-dom'; import {StaticMap} from 'react-map-gl'; import DeckGL from '@deck.gl/react'; import {HeatmapLayer} from '@deck.gl/aggregation-layers'; // Set your mapbox token here const MAPBOX_TOKEN = process.env.MapboxAccessToken; // eslint-disable-line const DATA_URL = 'https://raw.githubusercontent.com/visgl/deck.gl-data/master/examples/screen-grid/uber-pickup-locations.json'; // eslint-disable-line const INITIAL_VIEW_STATE = { longitude: -73.75, latitude: 40.73, zoom: 9, maxZoom: 16, pitch: 0, bearing: 0 }; export default function App({ data = DATA_URL, intensity = 1, threshold = 0.03, radiusPixels = 30, mapStyle = 'mapbox://styles/mapbox/dark-v9' }) { const layers = [ new HeatmapLayer({ data, id: 'heatmp-layer', pickable: false, getPosition: d => [d[0], d[1]], getWeight: d => d[2], radiusPixels, intensity, threshold }) ]; return ( <DeckGL initialViewState={INITIAL_VIEW_STATE} controller={true} layers={layers}> <StaticMap reuseMaps mapStyle={mapStyle} preventStyleDiffing={true} mapboxApiAccessToken={MAPBOX_TOKEN} /> </DeckGL> ); } export function renderToDOM(container) { render(<App />, container); }