Skip to content

Commit

Permalink
add heatmap renderer support
Browse files Browse the repository at this point in the history
  • Loading branch information
ekenes committed Aug 15, 2024
1 parent 2086952 commit 0e3a014
Showing 1 changed file with 23 additions and 0 deletions.
23 changes: 23 additions & 0 deletions recalculate-style-by-bin-sizes/src/rendererUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import {
createAgeRenderer as createAgeSizeRenderer,
updateRendererWithReferenceSize,
} from "@arcgis/core/smartMapping/renderers/size";
import { createRenderer as createHeatmapRenderer } from "@arcgis/core/smartMapping/renderers/heatmap";
import { createRenderer as createRelationshipRenderer } from "@arcgis/core/smartMapping/renderers/relationship";
import { createRenderer as createDotDensityRenderer } from "@arcgis/core/smartMapping/renderers/dotDensity";
import { createContinuousRenderer as createUnivariateRenderer } from "@arcgis/core/smartMapping/renderers/univariateColorSize";
Expand Down Expand Up @@ -588,6 +589,25 @@ async function regeneratePieChartRenderer(params: RegenerateRendererParams) {
return renderer;
}

async function regenerateHeatmapRenderer(params: RegenerateRendererParams) {
const { layer, view } = params;
const oldRenderer = layer.renderer as __esri.HeatmapRenderer;
const { field, authoringInfo: { fadeRatio } } = oldRenderer;

const { renderer } = await createHeatmapRenderer({
layer,
view,
field,
fadeRatio,
});

renderer.colorStops.forEach((stop, i) => {
stop.color = oldRenderer.colorStops[i].color;
});

return renderer;
}

async function regenerateSimpleRenderer(params: RegenerateRendererParams) {
const { layer } = params;
const featureReduction =
Expand Down Expand Up @@ -618,13 +638,16 @@ const rendererTypeMap = {
"unique-value": regenerateUniqueValueRenderer,
"dot-density": regenerateDotDensityRenderer,
"pie-chart": regeneratePieChartRenderer,
heatmap: regenerateHeatmapRenderer,
};

type RendererTypes = keyof typeof rendererTypeMap;

interface RegenerateRendererParams {
layer: __esri.FeatureLayer;
view: __esri.MapView;
forBinning?: boolean;
filter?: __esri.FeatureFilter;
}

export async function regenerateRenderer(params: RegenerateRendererParams) {
Expand Down

0 comments on commit 0e3a014

Please sign in to comment.