in src/layers/h3-hexagon-layer/h3-hexagon-layer.js [231:305]
renderLayer(opts) {
const {data, gpuFilter, objectHovered, mapState} = opts;
const zoomFactor = this.getZoomFactor(mapState);
const eleZoomFactor = this.getElevationZoomFactor(mapState);
const {config} = this;
const {visConfig} = config;
const h3HexagonLayerTriggers = {
getFillColor: {
color: config.color,
colorField: config.colorField,
colorRange: visConfig.colorRange,
colorScale: config.colorScale
},
getElevation: {
sizeField: config.sizeField,
sizeRange: visConfig.sizeRange,
sizeScale: config.sizeScale,
enable3d: visConfig.enable3d
},
getFilterValue: gpuFilter.filterValueUpdateTriggers
};
const columnLayerTriggers = {
getCoverage: {
coverageField: config.coverageField,
coverageRange: visConfig.coverageRange
}
};
const defaultLayerProps = this.getDefaultDeckLayerProps(opts);
return [
new H3HexagonLayer({
...defaultLayerProps,
...data,
wrapLongitude: false,
getHexagon: x => x.id,
// coverage
coverage: config.coverageField ? 1 : visConfig.coverage,
// highlight
autoHighlight: visConfig.enable3d,
highlightColor: HIGHLIGH_COLOR_3D,
// elevation
extruded: visConfig.enable3d,
elevationScale: visConfig.elevationScale * eleZoomFactor,
// render
updateTriggers: h3HexagonLayerTriggers,
_subLayerProps: {
'hexagon-cell': {
type: EnhancedColumnLayer,
getCoverage: data.getCoverage,
updateTriggers: columnLayerTriggers
}
}
}),
...(this.isLayerHovered(objectHovered) && !config.sizeField
? [
new GeoJsonLayer({
...this.getDefaultHoverLayerProps(),
data: [idToPolygonGeo(objectHovered)],
getLineColor: config.highlightColor,
lineWidthScale: DEFAULT_LINE_SCALE_VALUE * zoomFactor,
wrapLongitude: false
})
]
: [])
];
}