This is the primitive layer rendered by CPUGridLayer after aggregation. Unlike the CPUGridLayer, it renders one column for each data object.
The GridCellLayer can render a grid-based heatmap.
It is a variation of the ColumnLayer.
It takes the constant width / height of all cells and bottom-left coordinate of
each cell. The grid cells can be given a height using the getElevation accessor.
import DeckGL from '@deck.gl/react';
import {GridCellLayer} from '@deck.gl/layers';
function App({data, viewState}) {
/**
* Data format:
* [
* {centroid: [-122.4, 37.7], value: 100},
* ...
* ]
*/
const layer = new GridCellLayer({
id: 'grid-cell-layer',
data,
pickable: true,
extruded: true,
cellSize: 200,
elevationScale: 5000,
getPosition: d => d.centroid,
getFillColor: d => [48, 128, d.value * 255, 255],
getElevation: d => d.value
});
return <DeckGL viewState={viewState}
layers={[layer]}
getTooltip={({object}) => object && `height: ${object.value * 5000}m`} />;
}To install the dependencies from NPM:
npm install deck.gl
# or
npm install @deck.gl/core @deck.gl/layersimport {GridCellLayer} from '@deck.gl/layers';
new GridCellLayer({});To use pre-bundled scripts:
<script src="https://unpkg.com/deck.gl@^8.0.0/dist.min.js"></script>
<!-- or -->
<script src="https://unpkg.com/@deck.gl/core@^8.0.0/dist.min.js"></script>
<script src="https://unpkg.com/@deck.gl/layers@^8.0.0/dist.min.js"></script>new deck.GridCellLayer({});Inherits from all Base Layer properties.
cellSize (Number, optional) 1000Size of each grid cell in meters
coverage (Number, optional) 1Cell size scale factor. The size of cell is calculated by
cellSize * coverage.
elevationScale (Number, optional) 1Elevation multiplier. The elevation of cell is calculated by
elevationScale * getElevation(d). elevationScale is a handy property
to scale all cell elevations without updating the data.
extruded (Boolean, optional)trueWhether to enable grid elevation. If set to false, all grid will be flat.
material (Object, optional)trueThis is an object that contains material props for lighting effect applied on extruded polygons. Check the lighting guide for configurable settings.
getPosition (Function, optional) x => x.positionMethod called to retrieve the bottom-left corner ([minX, minY]) of each cell.
getColor (Function|Array, optional) [255, 0, 255, 255]The rgba color of each object, in r, g, b, [a]. Each component is in the 0-255 range.
getElevation (Function|Number, optional) 1000The elevation of each cell in meters.