From 96359477dc96f29b80a93fd06a4b47358cc00b33 Mon Sep 17 00:00:00 2001 From: Bruno Raimbault Date: Thu, 10 Sep 2026 15:47:35 +0200 Subject: [PATCH 1/2] mockup: heatmap for event layers [DHIS2-240] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mockup for DHIS2-21461. Adds a third event point-style option — heatmap, alongside grouped/individual events — using maplibre-gl's native heatmap paint layer (config.type = 'heat'), with intensity/radius sliders and a continuous color-scale picker for the legend. Rebased onto current master by replaying the branch's net feature diff rather than its original 73-commit history (which mixed the heatmap work with unrelated cypress/CI churn and a merged-in bugfix branch). Several files had since been independently refactored on master (EventDialog.jsx from a class to a function component, EventLayer.jsx's clustering logic consolidated into applyClusteringConfig(), favorites.js's per-layer-type config builders unified into shared helpers) — the heatmap additions are ported onto those current shapes rather than reintroducing the old ones. Requires a maps-gl heatmap layer type, restored via the same commit pinned by the original PR (git+https://github.com/d2-ci/maps-gl.git, still fetchable) rather than a from-scratch reimplementation, per explicit choice over a native-maplibre-in-maps-app rewrite. Known risk: that fork is maps-gl 4.2.8 against master's current 4.4.3 — build/lint/tests pass and the dev server boots clean, but other layer types haven't been manually verified against the older maps-gl. Settings (eventHeatmap, heatIntensity, heatRadius) persist through the layer's config JSON blob, so a saved map round-trips the heatmap setup — verified the actual save payload via cleanMapConfig(). DO NOT MERGE Co-Authored-By: Claude Sonnet 5 --- i18n/en.pot | 10 +- package.json | 2 +- public/images/heatmap.png | Bin 0 -> 194176 bytes src/actions/layerEdit.js | 6 + src/actions/layers.js | 14 + .../classification/ContinuousScale.jsx | 38 + .../styles/Classification.module.css | 9 + src/components/core/ColorScaleSelect.jsx | 26 +- src/components/edit/event/EventDialog.jsx | 33 +- src/components/layers/overlays/HeatSlider.jsx | 45 + .../layers/overlays/OverlayCard.jsx | 63 ++ .../overlays/styles/HeatSlider.module.css | 56 ++ src/components/map/layers/EventLayer.jsx | 30 + src/components/map/layers/Layer.js | 34 +- src/constants/actionTypes.js | 3 + src/constants/colorbrewer.js | 909 ++++++++++++++++++ src/loaders/eventLoader.js | 16 + src/reducers/layerEdit.js | 6 + src/reducers/map.js | 22 + src/util/colors.js | 25 +- src/util/favorites.js | 15 + src/util/getDefaultLayerTypes.js | 2 + yarn.lock | 7 +- 23 files changed, 1344 insertions(+), 27 deletions(-) create mode 100644 public/images/heatmap.png create mode 100644 src/components/classification/ContinuousScale.jsx create mode 100644 src/components/layers/overlays/HeatSlider.jsx create mode 100644 src/components/layers/overlays/styles/HeatSlider.module.css diff --git a/i18n/en.pot b/i18n/en.pot index 72d26d6fad..53625cd57f 100644 --- a/i18n/en.pot +++ b/i18n/en.pot @@ -5,8 +5,8 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" -"POT-Creation-Date: 2026-09-01T12:42:29.454Z\n" -"PO-Revision-Date: 2026-09-01T12:42:29.454Z\n" +"POT-Creation-Date: 2026-09-10T13:44:55.087Z\n" +"PO-Revision-Date: 2026-09-10T13:44:55.087Z\n" msgid "2020" msgstr "2020" @@ -38,6 +38,9 @@ msgstr "Classification" msgid "Classes" msgstr "Classes" +msgid "Color scale" +msgstr "Color scale" + msgid "Auto" msgstr "Auto" @@ -437,6 +440,9 @@ msgstr "Group events" msgid "View all events" msgstr "View all events" +msgid "View heat map" +msgstr "View heat map" + msgid "Radius" msgstr "Radius" diff --git a/package.json b/package.json index 83ec322d06..34a6e348b4 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@dhis2/analytics": "^29.5.5", "@dhis2/app-runtime": "^3.17.3", "@dhis2/app-service-datastore": "^1.0.0-beta.3", - "@dhis2/maps-gl": "^4.4.3", + "@dhis2/maps-gl": "git+https://github.com/d2-ci/maps-gl.git#a0c0a650843414776d42d94d38b476499823cffb", "@dhis2/ui": "^10.17.0", "@dnd-kit/core": "^6.0.8", "@dnd-kit/modifiers": "^9.0.0", diff --git a/public/images/heatmap.png b/public/images/heatmap.png new file mode 100644 index 0000000000000000000000000000000000000000..5e1b879d8f8fc52dbd0449c67f695b4179f4d7e4 GIT binary patch literal 194176 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�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 T6E{xh00000NkvXXu0mjfVP~$i literal 0 HcmV?d00001 diff --git a/src/actions/layerEdit.js b/src/actions/layerEdit.js index 988c73484e..f4617dd239 100644 --- a/src/actions/layerEdit.js +++ b/src/actions/layerEdit.js @@ -121,6 +121,12 @@ export const setFallbackCoordinateField = (fieldId) => ({ fieldId, }) +// Set if event heatmap should be used (event) +export const setEventHeatmap = (checked) => ({ + type: types.LAYER_EDIT_EVENT_HEATMAP_SET, + checked, +}) + // Set if event clustering should be used (event) export const setEventClustering = (checked) => ({ type: types.LAYER_EDIT_EVENT_CLUSTERING_SET, diff --git a/src/actions/layers.js b/src/actions/layers.js index 1af92b1d58..ccf663e1cf 100644 --- a/src/actions/layers.js +++ b/src/actions/layers.js @@ -54,6 +54,20 @@ export const changeLayerOpacity = (id, opacity) => ({ opacity, }) +// Set overlay heat intensity +export const changeLayerIntensity = (id, heatIntensity) => ({ + type: types.LAYER_CHANGE_INTENSITY, + id, + heatIntensity, +}) + +// Set overlay heat radius +export const changeLayerRadius = (id, heatRadius) => ({ + type: types.LAYER_CHANGE_RADIUS, + id, + heatRadius, +}) + // Change ordering of overlays export const sortLayers = ({ oldIndex, newIndex }) => ({ type: types.LAYER_SORT, diff --git a/src/components/classification/ContinuousScale.jsx b/src/components/classification/ContinuousScale.jsx new file mode 100644 index 0000000000..8f5743f84b --- /dev/null +++ b/src/components/classification/ContinuousScale.jsx @@ -0,0 +1,38 @@ +import i18n from '@dhis2/d2-i18n' +import PropTypes from 'prop-types' +import React from 'react' +import { connect } from 'react-redux' +import { setColorScale } from '../../actions/layerEdit.js' +import { getColorPalette } from '../../util/colors.js' +import { ColorScaleSelect } from '../core/index.js' +import styles from './styles/Classification.module.css' + +const ContinuousScale = ({ colorScale, setColorScale }) => { + if (!colorScale) { + setColorScale(getColorPalette('RdYlBu_reverse', 9)) + } + return ( +
+
{i18n.t('Color scale')}
+ +
+ ) +} + +ContinuousScale.propTypes = { + setColorScale: PropTypes.func.isRequired, + colorScale: PropTypes.array, +} + +export default connect( + ({ layerEdit }) => ({ + colorScale: layerEdit.colorScale, + }), + { setColorScale } +)(ContinuousScale) diff --git a/src/components/classification/styles/Classification.module.css b/src/components/classification/styles/Classification.module.css index 610ab79c44..46c73a2800 100644 --- a/src/components/classification/styles/Classification.module.css +++ b/src/components/classification/styles/Classification.module.css @@ -1,3 +1,12 @@ +.title { + color: var(--colors-grey900); + padding-top: 8px; + padding-left: 2px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + .select { width: 100%; } diff --git a/src/components/core/ColorScaleSelect.jsx b/src/components/core/ColorScaleSelect.jsx index 037d4f5cfd..fe2c04327a 100644 --- a/src/components/core/ColorScaleSelect.jsx +++ b/src/components/core/ColorScaleSelect.jsx @@ -4,18 +4,19 @@ import PropTypes from 'prop-types' import React, { Fragment, useState, useRef } from 'react' import { colorScales, + heatScales, getColorScale, getColorPalette, } from '../../util/colors.js' import ColorScale from './ColorScale.jsx' import styles from './styles/ColorScaleSelect.module.css' -const ColorScaleSelect = ({ palette, width, onChange, className }) => { +const ColorScaleSelect = ({ palette, width, heat, onChange, className }) => { const [isOpen, setIsOpen] = useState(false) const anchorRef = useRef() const bins = palette.length - const scale = getColorScale(palette) + const scale = getColorScale(palette, heat) const onColorScaleSelect = (scale) => { onChange(getColorPalette(scale, bins)) @@ -43,15 +44,17 @@ const ColorScaleSelect = ({ palette, width, onChange, className }) => { className={styles.popover} style={{ width: width + 24 || 260 }} > - {colorScales.map((scale, index) => ( - - ))} + {(heat ? heatScales : colorScales).map( + (scale, index) => ( + + ) + )} )} @@ -63,6 +66,7 @@ ColorScaleSelect.propTypes = { palette: PropTypes.array.isRequired, onChange: PropTypes.func.isRequired, className: PropTypes.string, + heat: PropTypes.bool, width: PropTypes.number, } diff --git a/src/components/edit/event/EventDialog.jsx b/src/components/edit/event/EventDialog.jsx index 5302dd24e5..3226ff24bf 100644 --- a/src/components/edit/event/EventDialog.jsx +++ b/src/components/edit/event/EventDialog.jsx @@ -11,6 +11,7 @@ import { setEventStatus, setEventCoordinateField, setEventClustering, + setEventHeatmap, setEventPointColor, setEventPointRadius, // setFallbackCoordinateField, @@ -41,6 +42,7 @@ import { splitFilterColumns, } from '../../../util/analytics.js' import { cssColor } from '../../../util/colors.js' +import ContinuousScale from '../../classification/ContinuousScale.jsx' import { isValidIsolatedClass } from '../../classification/IsolatedClass.jsx' import { Tab, @@ -77,6 +79,7 @@ const EventDialog = ({ eventClustering, eventCoordinateField, eventCoordinateFieldType, + eventHeatmap, eventPointColor, eventPointRadius, eventStatus, @@ -448,9 +451,10 @@ const EventDialog = ({ id="cluster" img="images/cluster.png" title={i18n.t('Group events')} - onClick={() => + onClick={() => { dispatch(setEventClustering(true)) - } + dispatch(setEventHeatmap(false)) + }} isSelected={eventClustering} className={styles.flexInnerColumn} /> @@ -458,10 +462,24 @@ const EventDialog = ({ id="nocluster" img="images/nocluster.png" title={i18n.t('View all events')} - onClick={() => + onClick={() => { dispatch(setEventClustering(false)) + dispatch(setEventHeatmap(false)) + }} + isSelected={ + !eventClustering && !eventHeatmap } - isSelected={!eventClustering} + className={styles.flexInnerColumn} + /> + { + dispatch(setEventClustering(false)) + dispatch(setEventHeatmap(true)) + }} + isSelected={eventHeatmap} className={styles.flexInnerColumn} /> @@ -494,7 +512,7 @@ const EventDialog = ({ @@ -526,7 +544,9 @@ const EventDialog = ({ />
- {program ? ( + {eventHeatmap ? ( + + ) : program ? ( @@ -559,6 +579,7 @@ EventDialog.propTypes = { eventClustering: PropTypes.bool, eventCoordinateField: PropTypes.string, eventCoordinateFieldType: PropTypes.string, + eventHeatmap: PropTypes.bool, eventPointColor: PropTypes.string, eventPointRadius: PropTypes.number, eventStatus: PropTypes.string, diff --git a/src/components/layers/overlays/HeatSlider.jsx b/src/components/layers/overlays/HeatSlider.jsx new file mode 100644 index 0000000000..6074df4cb0 --- /dev/null +++ b/src/components/layers/overlays/HeatSlider.jsx @@ -0,0 +1,45 @@ +import PropTypes from 'prop-types' +import React, { useCallback } from 'react' +import styles from './styles/HeatSlider.module.css' + +const HeatSlider = ({ heat, disabled, onChange }) => { + const lowerFill = `var(--colors-grey${disabled ? 400 : 600})` + const upperFill = `var(--colors-grey${disabled ? 300 : 400})` + + const onSliderChange = useCallback( + (evt) => onChange(Number(evt.target.value)), + [onChange] + ) + + return ( +
+ +
+ ) +} + +HeatSlider.propTypes = { + heat: PropTypes.number.isRequired, + onChange: PropTypes.func.isRequired, + disabled: PropTypes.bool, +} + +export default HeatSlider diff --git a/src/components/layers/overlays/OverlayCard.jsx b/src/components/layers/overlays/OverlayCard.jsx index a490f28cda..1f85d270d5 100644 --- a/src/components/layers/overlays/OverlayCard.jsx +++ b/src/components/layers/overlays/OverlayCard.jsx @@ -11,6 +11,8 @@ import { removeLayer, duplicateLayer, changeLayerOpacity, + changeLayerIntensity, + changeLayerRadius, toggleLayerExpand, toggleLayerVisibility, } from '../../../actions/layers.js' @@ -34,6 +36,7 @@ import Legend from '../../legend/Legend.jsx' import LegendAlert from '../../legend/LegendAlert.jsx' import DataDownloadDialog from '../download/DataDownloadDialog.jsx' import LayerCard from '../LayerCard.jsx' +import HeatSlider from './HeatSlider.jsx' import styles from './styles/OverlayCard.module.css' const OverlayCard = ({ @@ -42,6 +45,8 @@ const OverlayCard = ({ removeLayer, duplicateLayer, changeLayerOpacity, + changeLayerIntensity, + changeLayerRadius, toggleLayerExpand, toggleLayerVisibility, toggleDataTable, @@ -57,6 +62,8 @@ const OverlayCard = ({ legend, isExpanded = true, opacity, + heatIntensity = 0.5, + heatRadius = 0.5, isVisible, layer: layerType, isLoaded, @@ -85,6 +92,58 @@ const OverlayCard = ({ legend && (
+ {layer.eventHeatmap && ( +
+ + + Intensity: + + + changeLayerIntensity(id, newIntensity) + } + disabled={false} + /> + + + + Radius: + + + changeLayerRadius(id, newRadius) + } + disabled={false} + /> + +
+ )}
) ) @@ -155,7 +214,9 @@ const OverlayCard = ({ } OverlayCard.propTypes = { + changeLayerIntensity: PropTypes.func.isRequired, changeLayerOpacity: PropTypes.func.isRequired, + changeLayerRadius: PropTypes.func.isRequired, duplicateLayer: PropTypes.func.isRequired, editLayer: PropTypes.func.isRequired, layer: PropTypes.object.isRequired, @@ -170,6 +231,8 @@ export default connect(null, { removeLayer, duplicateLayer, changeLayerOpacity, + changeLayerIntensity, + changeLayerRadius, toggleLayerExpand, toggleLayerVisibility, toggleDataTable, diff --git a/src/components/layers/overlays/styles/HeatSlider.module.css b/src/components/layers/overlays/styles/HeatSlider.module.css new file mode 100644 index 0000000000..3849198964 --- /dev/null +++ b/src/components/layers/overlays/styles/HeatSlider.module.css @@ -0,0 +1,56 @@ +.container { + width: 100px; + height: 28px; +} + +.slider { + width: 100%; + -webkit-appearance: none; + appearance: none; + height: 2px; + transition: background 450ms ease-in; + outline: none; + border-radius: 2px; + cursor: pointer; +} + +.slider:disabled { + cursor: not-allowed; +} + +.slider::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 12px; + height: 12px; + background: var(--colors-grey700); + border-radius: 50%; +} + +.slider::-moz-range-thumb { + width: 12px; + height: 12px; + background: var(--colors-grey700); + border: 0; + border-radius: 50%; +} + +.slider::-webkit-slider-thumb:hover { + background: var(--colors-grey900); +} + +.slider::-moz-range-thumb:hover { + background: var(--colors-grey900); +} + +.slider::-moz-focus-outer { + border: 0; +} + +.slider:disabled::-webkit-slider-thumb { + background: var(--colors-grey400); +} + +.slider:disabled::-moz-range-thumb { + background: var(--colors-grey400); +} diff --git a/src/components/map/layers/EventLayer.jsx b/src/components/map/layers/EventLayer.jsx index b132e09e74..daeb1bd8ca 100644 --- a/src/components/map/layers/EventLayer.jsx +++ b/src/components/map/layers/EventLayer.jsx @@ -38,10 +38,13 @@ class EventLayer extends Layer { id, index, opacity, + heatIntensity, + heatRadius, isVisible, bounds, data, engine, + eventHeatmap, eventClustering, eventCoordinateField, eventPointColor, @@ -62,6 +65,8 @@ class EventLayer extends Layer { labelFontSize, labelFontWeight, labelFontStyle, + classes, + colorScale, } = this.props const analyticsEngine = Analytics.getAnalytics(engine) @@ -122,6 +127,8 @@ class EventLayer extends Layer { id, index, opacity, + heatIntensity, + heatRadius, isVisible, data: labeledData, fillColor, @@ -155,6 +162,9 @@ class EventLayer extends Layer { engine, analyticsEngine, geometryCentroid, + eventHeatmap, + classes, + colorScale, }) if (program && programStage) { @@ -194,6 +204,9 @@ class EventLayer extends Layer { engine, analyticsEngine, geometryCentroid, + eventHeatmap, + classes, + colorScale, } ) { let eventRequest @@ -238,6 +251,23 @@ class EventLayer extends Layer { config.type = 'clientCluster' } } + } else if (eventHeatmap) { + config.type = 'heat' + config.heatWeight = 1 + + const step = 1 / classes + const colorScaleReady = colorScale.flatMap((heatColor, i) => [ + (i + 1) * step, + heatColor, + ]) + config.heatColor = [ + 'interpolate', + ['linear'], + ['heatmap-density'], + 0, + 'rgba(33,102,172,0)', + ...colorScaleReady, + ] } else if (areaRadius) { config.buffer = areaRadius config.bufferStyle = { diff --git a/src/components/map/layers/Layer.js b/src/components/map/layers/Layer.js index c8bff13635..f274536fac 100644 --- a/src/components/map/layers/Layer.js +++ b/src/components/map/layers/Layer.js @@ -21,6 +21,8 @@ class Layer extends PureComponent { editCounter: PropTypes.number, externalPeriod: PropTypes.object, // eslint-disable-line react/no-unused-prop-types feature: PropTypes.object, + heatIntensity: PropTypes.number, + heatRadius: PropTypes.number, index: PropTypes.number, isVisible: PropTypes.bool, opacity: PropTypes.number, @@ -29,6 +31,8 @@ class Layer extends PureComponent { static defaultProps = { opacity: 1, + heatIntensity: 0.5, + heatRadius: 0.5, isVisible: true, } @@ -46,6 +50,8 @@ class Layer extends PureComponent { data, index, opacity, + heatIntensity, + heatRadius, isVisible, editCounter, dataFilters, @@ -79,6 +85,14 @@ class Layer extends PureComponent { this.setLayerOpacity() } + if (heatIntensity !== prevProps.heatIntensity) { + this.setLayerIntensity() + } + + if (heatRadius !== prevProps.heatRadius) { + this.setLayerRadius() + } + if (isVisible !== prevProps.isVisible) { this.setLayerVisibility() } @@ -94,7 +108,15 @@ class Layer extends PureComponent { // Create new layer from config object (override in subclasses) async createLayer() { - const { id, index = 0, config, opacity, isVisible } = this.props + const { + id, + index = 0, + config, + opacity, + heatIntensity, + heatRadius, + isVisible, + } = this.props const { map } = this.context this.layer = map.createLayer({ @@ -102,6 +124,8 @@ class Layer extends PureComponent { id, index, opacity, + heatIntensity, + heatRadius, isVisible, }) @@ -131,6 +155,14 @@ class Layer extends PureComponent { this.layer.setOpacity(this.props.opacity) } + setLayerIntensity() { + this.layer.setIntensity(this.props.heatIntensity) + } + + setLayerRadius() { + this.layer.setRadius(this.props.heatRadius) + } + setLayerOrder() { if (this.layer) { this.layer.setIndex(this.props.index) diff --git a/src/constants/actionTypes.js b/src/constants/actionTypes.js index 04bc55e885..918707340e 100644 --- a/src/constants/actionTypes.js +++ b/src/constants/actionTypes.js @@ -24,6 +24,8 @@ export const LAYER_ADD = 'LAYER_ADD' export const LAYER_REMOVE = 'LAYER_REMOVE' export const LAYER_DUPLICATE = 'LAYER_DUPLICATE' export const LAYER_CHANGE_OPACITY = 'LAYER_CHANGE_OPACITY' +export const LAYER_CHANGE_INTENSITY = 'LAYER_CHANGE_INTENSITY' +export const LAYER_CHANGE_RADIUS = 'LAYER_CHANGE_RADIUS' export const LAYER_EDIT = 'LAYER_EDIT' export const LAYER_EDIT_SUCCESS = 'LAYER_EDIT_SUCCESS' export const LAYER_CANCEL = 'LAYER_CANCEL' @@ -92,6 +94,7 @@ export const LAYER_EDIT_DATA_ITEM_SET = 'LAYER_EDIT_DATA_ITEM_SET' export const LAYER_EDIT_EVENT_STATUS_SET = 'LAYER_EDIT_EVENT_STATUS_SET' export const LAYER_EDIT_EVENT_COORDINATE_FIELD_SET = 'LAYER_EDIT_EVENT_COORDINATE_FIELD_SET' +export const LAYER_EDIT_EVENT_HEATMAP_SET = 'LAYER_EDIT_EVENT_HEATMAP_SET' export const LAYER_EDIT_EVENT_CLUSTERING_SET = 'LAYER_EDIT_EVENT_CLUSTERING_SET' export const LAYER_EDIT_EVENT_POINT_RADIUS_SET = 'LAYER_EDIT_EVENT_POINT_RADIUS_SET' diff --git a/src/constants/colorbrewer.js b/src/constants/colorbrewer.js index 687cf637dd..bc747e6332 100644 --- a/src/constants/colorbrewer.js +++ b/src/constants/colorbrewer.js @@ -1520,6 +1520,915 @@ const colorbrewer = { '#ffed6f', ], }, + YlOrBr_reverse: { + 3: ['#d95f0e', '#fec44f', '#fff7bc'], + 4: ['#cc4c02', '#fe9929', '#fed98e', '#ffffd4'], + 5: ['#993404', '#d95f0e', '#fe9929', '#fed98e', '#ffffd4'], + 6: ['#993404', '#d95f0e', '#fe9929', '#fec44f', '#fee391', '#ffffd4'], + 7: [ + '#8c2d04', + '#cc4c02', + '#ec7014', + '#fe9929', + '#fec44f', + '#fee391', + '#ffffd4', + ], + 8: [ + '#8c2d04', + '#cc4c02', + '#ec7014', + '#fe9929', + '#fec44f', + '#fee391', + '#fff7bc', + '#ffffe5', + ], + 9: [ + '#662506', + '#993404', + '#cc4c02', + '#ec7014', + '#fe9929', + '#fec44f', + '#fee391', + '#fff7bc', + '#ffffe5', + ], + }, + Reds_reverse: { + 3: ['#de2d26', '#fc9272', '#fee0d2'], + 4: ['#cb181d', '#fb6a4a', '#fcae91', '#fee5d9'], + 5: ['#a50f15', '#de2d26', '#fb6a4a', '#fcae91', '#fee5d9'], + 6: ['#a50f15', '#de2d26', '#fb6a4a', '#fc9272', '#fcbba1', '#fee5d9'], + 7: [ + '#99000d', + '#cb181d', + '#ef3b2c', + '#fb6a4a', + '#fc9272', + '#fcbba1', + '#fee5d9', + ], + 8: [ + '#99000d', + '#cb181d', + '#ef3b2c', + '#fb6a4a', + '#fc9272', + '#fcbba1', + '#fee0d2', + '#fff5f0', + ], + 9: [ + '#67000d', + '#a50f15', + '#cb181d', + '#ef3b2c', + '#fb6a4a', + '#fc9272', + '#fcbba1', + '#fee0d2', + '#fff5f0', + ], + }, + YlGn_reverse: { + 3: ['#31a354', '#addd8e', '#f7fcb9'], + 4: ['#238443', '#78c679', '#c2e699', '#ffffcc'], + 5: ['#006837', '#31a354', '#78c679', '#c2e699', '#ffffcc'], + 6: ['#006837', '#31a354', '#78c679', '#addd8e', '#d9f0a3', '#ffffcc'], + 7: [ + '#005a32', + '#238443', + '#41ab5d', + '#78c679', + '#addd8e', + '#d9f0a3', + '#ffffcc', + ], + 8: [ + '#005a32', + '#238443', + '#41ab5d', + '#78c679', + '#addd8e', + '#d9f0a3', + '#f7fcb9', + '#ffffe5', + ], + 9: [ + '#004529', + '#006837', + '#238443', + '#41ab5d', + '#78c679', + '#addd8e', + '#d9f0a3', + '#f7fcb9', + '#ffffe5', + ], + }, + Purples_reverse: { + 3: ['#756bb1', '#bcbddc', '#efedf5'], + 4: ['#6a51a3', '#9e9ac8', '#cbc9e2', '#f2f0f7'], + 5: ['#54278f', '#756bb1', '#9e9ac8', '#cbc9e2', '#f2f0f7'], + 6: ['#54278f', '#756bb1', '#9e9ac8', '#bcbddc', '#dadaeb', '#f2f0f7'], + 7: [ + '#4a1486', + '#6a51a3', + '#807dba', + '#9e9ac8', + '#bcbddc', + '#dadaeb', + '#f2f0f7' + ], + 8: [ + '#4a1486', + '#6a51a3', + '#807dba', + '#9e9ac8', + '#bcbddc', + '#dadaeb', + '#efedf5', + '#fcfbfd' + ], + 9: [ + '#3f007d', + '#54278f', + '#6a51a3', + '#807dba', + '#9e9ac8', + '#bcbddc', + '#dadaeb', + '#efedf5', + '#fcfbfd' + ] + }, + Greens_reverse: { + 3: ['#31a354', '#a1d99b', '#e5f5e0'], + 4: ['#238b45', '#74c476', '#bae4b3', '#edf8e9'], + 5: ['#006d2c', '#31a354', '#74c476', '#bae4b3', '#edf8e9'], + 6: ['#006d2c', '#31a354', '#74c476', '#a1d99b', '#c7e9c0', '#edf8e9'], + 7: [ + '#005a32', + '#238b45', + '#41ab5d', + '#74c476', + '#a1d99b', + '#c7e9c0', + '#edf8e9', + ], + 8: [ + '#005a32', + '#238b45', + '#41ab5d', + '#74c476', + '#a1d99b', + '#c7e9c0', + '#e5f5e0', + '#f7fcf5', + ], + 9: [ + '#00441b', + '#006d2c', + '#238b45', + '#41ab5d', + '#74c476', + '#a1d99b', + '#c7e9c0', + '#e5f5e0', + '#f7fcf5', + ], + }, + Blues_reverse: { + 3: ['#3182bd', '#9ecae1', '#deebf7'], + 4: ['#2171b5', '#6baed6', '#bdd7e7', '#eff3ff'], + 5: ['#08519c', '#3182bd', '#6baed6', '#bdd7e7', '#eff3ff'], + 6: ['#08519c', '#3182bd', '#6baed6', '#9ecae1', '#c6dbef', '#eff3ff'], + 7: [ + '#084594', + '#2171b5', + '#4292c6', + '#6baed6', + '#9ecae1', + '#c6dbef', + '#eff3ff', + ], + 8: [ + '#084594', + '#2171b5', + '#4292c6', + '#6baed6', + '#9ecae1', + '#c6dbef', + '#deebf7', + '#f7fbff', + ], + 9: [ + '#08306b', + '#08519c', + '#2171b5', + '#4292c6', + '#6baed6', + '#9ecae1', + '#c6dbef', + '#deebf7', + '#f7fbff', + ], + }, + BuPu_reverse: { + 3: ['#8856a7', '#9ebcda', '#e0ecf4'], + 4: ['#88419d', '#8c96c6', '#b3cde3', '#edf8fb'], + 5: ['#810f7c', '#8856a7', '#8c96c6', '#b3cde3', '#edf8fb'], + 6: ['#810f7c', '#8856a7', '#8c96c6', '#9ebcda', '#bfd3e6', '#edf8fb'], + 7: [ + '#6e016b', + '#88419d', + '#8c6bb1', + '#8c96c6', + '#9ebcda', + '#bfd3e6', + '#edf8fb', + ], + 8: [ + '#6e016b', + '#88419d', + '#8c6bb1', + '#8c96c6', + '#9ebcda', + '#bfd3e6', + '#e0ecf4', + '#f7fcfd', + ], + 9: [ + '#4d004b', + '#810f7c', + '#88419d', + '#8c6bb1', + '#8c96c6', + '#9ebcda', + '#bfd3e6', + '#e0ecf4', + '#f7fcfd', + ], + }, + RdPu_reverse: { + 3: ['#c51b8a', '#fa9fb5', '#fde0dd'], + 4: ['#ae017e', '#f768a1', '#fbb4b9', '#feebe2'], + 5: ['#7a0177', '#c51b8a', '#f768a1', '#fbb4b9', '#feebe2'], + 6: ['#7a0177', '#c51b8a', '#f768a1', '#fa9fb5', '#fcc5c0', '#feebe2'], + 7: [ + '#7a0177', + '#ae017e', + '#dd3497', + '#f768a1', + '#fa9fb5', + '#fcc5c0', + '#feebe2', + ], + 8: [ + '#7a0177', + '#ae017e', + '#dd3497', + '#f768a1', + '#fa9fb5', + '#fcc5c0', + '#fde0dd', + '#fff7f3', + ], + 9: [ + '#49006a', + '#7a0177', + '#ae017e', + '#dd3497', + '#f768a1', + '#fa9fb5', + '#fcc5c0', + '#fde0dd', + '#fff7f3', + ], + }, + PuRd_reverse: { + 3: ['#dd1c77', '#c994c7', '#e7e1ef'], + 4: ['#ce1256', '#df65b0', '#d7b5d8', '#f1eef6'], + 5: ['#980043', '#dd1c77', '#df65b0', '#d7b5d8', '#f1eef6'], + 6: ['#980043', '#dd1c77', '#df65b0', '#c994c7', '#d4b9da', '#f1eef6'], + 7: [ + '#91003f', + '#ce1256', + '#e7298a', + '#df65b0', + '#c994c7', + '#d4b9da', + '#f1eef6', + ], + 8: [ + '#91003f', + '#ce1256', + '#e7298a', + '#df65b0', + '#c994c7', + '#d4b9da', + '#e7e1ef', + '#f7f4f9', + ], + 9: [ + '#67001f', + '#980043', + '#ce1256', + '#e7298a', + '#df65b0', + '#c994c7', + '#d4b9da', + '#e7e1ef', + '#f7f4f9', + ], + }, + Greys_reverse: { + 3: ['#636363', '#bdbdbd', '#f0f0f0'], + 4: ['#525252', '#969696', '#cccccc', '#f7f7f7'], + 5: ['#252525', '#636363', '#969696', '#cccccc', '#f7f7f7'], + 6: ['#252525', '#636363', '#969696', '#bdbdbd', '#d9d9d9', '#f7f7f7'], + 7: [ + '#252525', + '#525252', + '#737373', + '#969696', + '#bdbdbd', + '#d9d9d9', + '#f7f7f7', + ], + 8: [ + '#252525', + '#525252', + '#737373', + '#969696', + '#bdbdbd', + '#d9d9d9', + '#f0f0f0', + '#ffffff', + ], + 9: [ + '#000000', + '#252525', + '#525252', + '#737373', + '#969696', + '#bdbdbd', + '#d9d9d9', + '#f0f0f0', + '#ffffff', + ], + }, + PuOr_reverse: { + 3: ['#998ec3', '#f7f7f7', '#f1a340'], + 4: ['#5e3c99', '#b2abd2', '#fdb863', '#e66101'], + 5: ['#5e3c99', '#b2abd2', '#f7f7f7', '#fdb863', '#e66101'], + 6: ['#542788', '#998ec3', '#d8daeb', '#fee0b6', '#f1a340', '#b35806'], + 7: [ + '#542788', + '#998ec3', + '#d8daeb', + '#f7f7f7', + '#fee0b6', + '#f1a340', + '#b35806', + ], + 8: [ + '#542788', + '#8073ac', + '#b2abd2', + '#d8daeb', + '#fee0b6', + '#fdb863', + '#e08214', + '#b35806', + ], + 9: [ + '#542788', + '#8073ac', + '#b2abd2', + '#d8daeb', + '#f7f7f7', + '#fee0b6', + '#fdb863', + '#e08214', + '#b35806', + ], + 10: [ + '#2d004b', + '#542788', + '#8073ac', + '#b2abd2', + '#d8daeb', + '#fee0b6', + '#fdb863', + '#e08214', + '#b35806', + '#7f3b08', + ], + 11: [ + '#2d004b', + '#542788', + '#8073ac', + '#b2abd2', + '#d8daeb', + '#f7f7f7', + '#fee0b6', + '#fdb863', + '#e08214', + '#b35806', + '#7f3b08', + ], + }, + BrBG_reverse: { + 3: ['#5ab4ac', '#f5f5f5', '#d8b365'], + 4: ['#018571', '#80cdc1', '#dfc27d', '#a6611a'], + 5: ['#018571', '#80cdc1', '#f5f5f5', '#dfc27d', '#a6611a'], + 6: ['#01665e', '#5ab4ac', '#c7eae5', '#f6e8c3', '#d8b365', '#8c510a'], + 7: [ + '#01665e', + '#5ab4ac', + '#c7eae5', + '#f5f5f5', + '#f6e8c3', + '#d8b365', + '#8c510a', + ], + 8: [ + '#01665e', + '#35978f', + '#80cdc1', + '#c7eae5', + '#f6e8c3', + '#dfc27d', + '#bf812d', + '#8c510a', + ], + 9: [ + '#01665e', + '#35978f', + '#80cdc1', + '#c7eae5', + '#f5f5f5', + '#f6e8c3', + '#dfc27d', + '#bf812d', + '#8c510a', + ], + 10: [ + '#003c30', + '#01665e', + '#35978f', + '#80cdc1', + '#c7eae5', + '#f6e8c3', + '#dfc27d', + '#bf812d', + '#8c510a', + '#543005', + ], + 11: [ + '#003c30', + '#01665e', + '#35978f', + '#80cdc1', + '#c7eae5', + '#f5f5f5', + '#f6e8c3', + '#dfc27d', + '#bf812d', + '#8c510a', + '#543005', + ], + }, + PRGn_reverse: { + 3: ['#7fbf7b', '#f7f7f7', '#af8dc3'], + 4: ['#008837', '#a6dba0', '#c2a5cf', '#7b3294'], + 5: ['#008837', '#a6dba0', '#f7f7f7', '#c2a5cf', '#7b3294'], + 6: ['#1b7837', '#7fbf7b', '#d9f0d3', '#e7d4e8', '#af8dc3', '#762a83'], + 7: [ + '#1b7837', + '#7fbf7b', + '#d9f0d3', + '#f7f7f7', + '#e7d4e8', + '#af8dc3', + '#762a83', + ], + 8: [ + '#1b7837', + '#5aae61', + '#a6dba0', + '#d9f0d3', + '#e7d4e8', + '#c2a5cf', + '#9970ab', + '#762a83', + ], + 9: [ + '#1b7837', + '#5aae61', + '#a6dba0', + '#d9f0d3', + '#f7f7f7', + '#e7d4e8', + '#c2a5cf', + '#9970ab', + '#762a83', + ], + 10: [ + '#00441b', + '#1b7837', + '#5aae61', + '#a6dba0', + '#d9f0d3', + '#e7d4e8', + '#c2a5cf', + '#9970ab', + '#762a83', + '#40004b', + ], + 11: [ + '#00441b', + '#1b7837', + '#5aae61', + '#a6dba0', + '#d9f0d3', + '#f7f7f7', + '#e7d4e8', + '#c2a5cf', + '#9970ab', + '#762a83', + '#40004b', + ], + }, + PiYG_reverse: { + 3: ['#a1d76a', '#f7f7f7', '#e9a3c9'], + 4: ['#4dac26', '#b8e186', '#f1b6da', '#d01c8b'], + 5: ['#4dac26', '#b8e186', '#f7f7f7', '#f1b6da', '#d01c8b'], + 6: ['#4d9221', '#a1d76a', '#e6f5d0', '#fde0ef', '#e9a3c9', '#c51b7d'], + 7: [ + '#4d9221', + '#a1d76a', + '#e6f5d0', + '#f7f7f7', + '#fde0ef', + '#e9a3c9', + '#c51b7d', + ], + 8: [ + '#4d9221', + '#7fbc41', + '#b8e186', + '#e6f5d0', + '#fde0ef', + '#f1b6da', + '#de77ae', + '#c51b7d', + ], + 9: [ + '#4d9221', + '#7fbc41', + '#b8e186', + '#e6f5d0', + '#f7f7f7', + '#fde0ef', + '#f1b6da', + '#de77ae', + '#c51b7d', + ], + 10: [ + '#276419', + '#4d9221', + '#7fbc41', + '#b8e186', + '#e6f5d0', + '#fde0ef', + '#f1b6da', + '#de77ae', + '#c51b7d', + '#8e0152', + ], + 11: [ + '#276419', + '#4d9221', + '#7fbc41', + '#b8e186', + '#e6f5d0', + '#f7f7f7', + '#fde0ef', + '#f1b6da', + '#de77ae', + '#c51b7d', + '#8e0152', + ], + }, + RdBu_reverse: { + 3: ['#67a9cf', '#f7f7f7', '#ef8a62'], + 4: ['#0571b0', '#92c5de', '#f4a582', '#ca0020'], + 5: ['#0571b0', '#92c5de', '#f7f7f7', '#f4a582', '#ca0020'], + 6: ['#2166ac', '#67a9cf', '#d1e5f0', '#fddbc7', '#ef8a62', '#b2182b'], + 7: [ + '#2166ac', + '#67a9cf', + '#d1e5f0', + '#f7f7f7', + '#fddbc7', + '#ef8a62', + '#b2182b', + ], + 8: [ + '#2166ac', + '#4393c3', + '#92c5de', + '#d1e5f0', + '#fddbc7', + '#f4a582', + '#d6604d', + '#b2182b', + ], + 9: [ + '#2166ac', + '#4393c3', + '#92c5de', + '#d1e5f0', + '#f7f7f7', + '#fddbc7', + '#f4a582', + '#d6604d', + '#b2182b', + ], + 10: [ + '#053061', + '#2166ac', + '#4393c3', + '#92c5de', + '#d1e5f0', + '#fddbc7', + '#f4a582', + '#d6604d', + '#b2182b', + '#67001f', + ], + 11: [ + '#053061', + '#2166ac', + '#4393c3', + '#92c5de', + '#d1e5f0', + '#f7f7f7', + '#fddbc7', + '#f4a582', + '#d6604d', + '#b2182b', + '#67001f', + ], + }, + RdGy_reverse: { + 3: ['#999999', '#ffffff', '#ef8a62'], + 4: ['#404040', '#bababa', '#f4a582', '#ca0020'], + 5: ['#404040', '#bababa', '#ffffff', '#f4a582', '#ca0020'], + 6: ['#4d4d4d', '#999999', '#e0e0e0', '#fddbc7', '#ef8a62', '#b2182b'], + 7: [ + '#4d4d4d', + '#999999', + '#e0e0e0', + '#ffffff', + '#fddbc7', + '#ef8a62', + '#b2182b', + ], + 8: [ + '#4d4d4d', + '#878787', + '#bababa', + '#e0e0e0', + '#fddbc7', + '#f4a582', + '#d6604d', + '#b2182b', + ], + 9: [ + '#4d4d4d', + '#878787', + '#bababa', + '#e0e0e0', + '#ffffff', + '#fddbc7', + '#f4a582', + '#d6604d', + '#b2182b', + ], + 10: [ + '#1a1a1a', + '#4d4d4d', + '#878787', + '#bababa', + '#e0e0e0', + '#fddbc7', + '#f4a582', + '#d6604d', + '#b2182b', + '#67001f', + ], + 11: [ + '#1a1a1a', + '#4d4d4d', + '#878787', + '#bababa', + '#e0e0e0', + '#ffffff', + '#fddbc7', + '#f4a582', + '#d6604d', + '#b2182b', + '#67001f', + ], + }, + RdYlBu_reverse: { + 3: ['#91bfdb', '#ffffbf', '#fc8d59'], + 4: ['#2c7bb6', '#abd9e9', '#fdae61', '#d7191c'], + 5: ['#2c7bb6', '#abd9e9', '#ffffbf', '#fdae61', '#d7191c'], + 6: ['#4575b4', '#91bfdb', '#e0f3f8', '#fee090', '#fc8d59', '#d73027'], + 7: [ + '#4575b4', + '#91bfdb', + '#e0f3f8', + '#ffffbf', + '#fee090', + '#fc8d59', + '#d73027', + ], + 8: [ + '#4575b4', + '#74add1', + '#abd9e9', + '#e0f3f8', + '#fee090', + '#fdae61', + '#f46d43', + '#d73027', + ], + 9: [ + '#4575b4', + '#74add1', + '#abd9e9', + '#e0f3f8', + '#ffffbf', + '#fee090', + '#fdae61', + '#f46d43', + '#d73027', + ], + 10: [ + '#313695', + '#4575b4', + '#74add1', + '#abd9e9', + '#e0f3f8', + '#fee090', + '#fdae61', + '#f46d43', + '#d73027', + '#a50026', + ], + 11: [ + '#313695', + '#4575b4', + '#74add1', + '#abd9e9', + '#e0f3f8', + '#ffffbf', + '#fee090', + '#fdae61', + '#f46d43', + '#d73027', + '#a50026', + ], + }, + Spectral_reverse: { + 3: ['#99d594', '#ffffbf', '#fc8d59'], + 4: ['#2b83ba', '#abdda4', '#fdae61', '#d7191c'], + 5: ['#2b83ba', '#abdda4', '#ffffbf', '#fdae61', '#d7191c'], + 6: ['#3288bd', '#99d594', '#e6f598', '#fee08b', '#fc8d59', '#d53e4f'], + 7: [ + '#3288bd', + '#99d594', + '#e6f598', + '#ffffbf', + '#fee08b', + '#fc8d59', + '#d53e4f', + ], + 8: [ + '#3288bd', + '#66c2a5', + '#abdda4', + '#e6f598', + '#fee08b', + '#fdae61', + '#f46d43', + '#d53e4f', + ], + 9: [ + '#3288bd', + '#66c2a5', + '#abdda4', + '#e6f598', + '#ffffbf', + '#fee08b', + '#fdae61', + '#f46d43', + '#d53e4f', + ], + 10: [ + '#5e4fa2', + '#3288bd', + '#66c2a5', + '#abdda4', + '#e6f598', + '#fee08b', + '#fdae61', + '#f46d43', + '#d53e4f', + '#9e0142', + ], + 11: [ + '#5e4fa2', + '#3288bd', + '#66c2a5', + '#abdda4', + '#e6f598', + '#ffffbf', + '#fee08b', + '#fdae61', + '#f46d43', + '#d53e4f', + '#9e0142', + ], + }, + RdYlGn_reverse: { + 3: ['#91cf60', '#ffffbf', '#fc8d59'], + 4: ['#1a9641', '#a6d96a', '#fdae61', '#d7191c'], + 5: ['#1a9641', '#a6d96a', '#ffffbf', '#fdae61', '#d7191c'], + 6: ['#1a9850', '#91cf60', '#d9ef8b', '#fee08b', '#fc8d59', '#d73027'], + 7: [ + '#1a9850', + '#91cf60', + '#d9ef8b', + '#ffffbf', + '#fee08b', + '#fc8d59', + '#d73027', + ], + 8: [ + '#1a9850', + '#66bd63', + '#a6d96a', + '#d9ef8b', + '#fee08b', + '#fdae61', + '#f46d43', + '#d73027', + ], + 9: [ + '#1a9850', + '#66bd63', + '#a6d96a', + '#d9ef8b', + '#ffffbf', + '#fee08b', + '#fdae61', + '#f46d43', + '#d73027', + ], + 10: [ + '#006837', + '#1a9850', + '#66bd63', + '#a6d96a', + '#d9ef8b', + '#fee08b', + '#fdae61', + '#f46d43', + '#d73027', + '#a50026', + ], + 11: [ + '#006837', + '#1a9850', + '#66bd63', + '#a6d96a', + '#d9ef8b', + '#ffffbf', + '#fee08b', + '#fdae61', + '#f46d43', + '#d73027', + '#a50026', + ], + }, Vegetation: { 3: [ "#f1eda9", diff --git a/src/loaders/eventLoader.js b/src/loaders/eventLoader.js index da3b847c16..59f299ed87 100644 --- a/src/loaders/eventLoader.js +++ b/src/loaders/eventLoader.js @@ -208,6 +208,22 @@ const loadEventLayer = async ({ // Analytics request setup // ----- + const { + eventHeatmap: eventHeatmapFromConfig, + heatIntensity: heatIntensityFromConfig, + heatRadius: heatRadiusFromConfig, + } = parseJsonConfig(config.config) + if (eventHeatmapFromConfig !== undefined) { + config.eventHeatmap = eventHeatmapFromConfig + } + if (heatIntensityFromConfig !== undefined) { + config.heatIntensity = heatIntensityFromConfig + } + if (heatRadiusFromConfig !== undefined) { + config.heatRadius = heatRadiusFromConfig + } + delete config.config + const { columns, endDate, diff --git a/src/reducers/layerEdit.js b/src/reducers/layerEdit.js index 35ed32059d..63520bb8e7 100644 --- a/src/reducers/layerEdit.js +++ b/src/reducers/layerEdit.js @@ -365,6 +365,12 @@ const layerEdit = (state = null, action) => { return newState + case types.LAYER_EDIT_EVENT_HEATMAP_SET: + return { + ...state, + eventHeatmap: action.checked, + } + case types.LAYER_EDIT_EVENT_CLUSTERING_SET: return { ...state, diff --git a/src/reducers/map.js b/src/reducers/map.js index 7794693f07..4ddb2e8457 100644 --- a/src/reducers/map.js +++ b/src/reducers/map.js @@ -102,6 +102,26 @@ const layer = (state, action) => { opacity: action.opacity, } + case types.LAYER_CHANGE_INTENSITY: + if (state.id !== action.id) { + return state + } + + return { + ...state, + heatIntensity: action.heatIntensity, + } + + case types.LAYER_CHANGE_RADIUS: + if (state.id !== action.id) { + return state + } + + return { + ...state, + heatRadius: action.heatRadius, + } + case types.LAYER_LOADING_SET: if (state.id !== action.id) { return state @@ -295,6 +315,8 @@ const map = (state = defaultState, action) => { case types.LAYER_UPDATE: case types.LAYER_EDIT: case types.LAYER_CHANGE_OPACITY: + case types.LAYER_CHANGE_INTENSITY: + case types.LAYER_CHANGE_RADIUS: case types.LAYER_TOGGLE_VISIBILITY: case types.LAYER_TOGGLE_EXPAND: case types.DATA_FILTER_SET: diff --git a/src/util/colors.js b/src/util/colors.js index 810f5a4799..8e83f07061 100644 --- a/src/util/colors.js +++ b/src/util/colors.js @@ -53,13 +53,34 @@ export const colorScales = [ 'Set3', ] +export const heatScales = [ + 'YlOrBr', + 'Reds', + 'YlGn', + 'Greens', + 'Blues', + 'BuPu', + 'RdPu', + 'PuRd', + 'Greys', + 'PuOr_reverse', + 'BrBG_reverse', + 'PRGn_reverse', + 'PiYG_reverse', + 'RdBu_reverse', + 'RdGy_reverse', + 'RdYlBu_reverse', + 'Spectral_reverse', + 'RdYlGn_reverse', +] + // Returns a color brewer scale for a number of classes export const getColorPalette = (scale, classes) => colorbrewer[scale][classes] // Returns color scale name for a palette // join(',') is used to compare two arrays of colors -export const getColorScale = (palette) => - colorScales.find( +export const getColorScale = (palette, heat) => + (heat ? heatScales : colorScales).find( (name) => colorbrewer[name][palette.length].join(',') === palette.join(',') ) diff --git a/src/util/favorites.js b/src/util/favorites.js index 520c919873..05c17a6381 100644 --- a/src/util/favorites.js +++ b/src/util/favorites.js @@ -42,9 +42,12 @@ const validLayerProperties = [ 'endDate', 'eventCoordinateField', 'eventClustering', + 'eventHeatmap', 'eventPointColor', 'eventPointRadius', 'eventStatus', + 'heatIntensity', + 'heatRadius', 'featureStyle', // used by GEOJSON_URL_LAYER, stored in layer config 'filter', 'filters', @@ -180,6 +183,15 @@ const buildCommonLayerConfigData = (layer) => { if (layer.labelDataItem) { configData.labelDataItem = layer.labelDataItem } + if (layer.eventHeatmap !== undefined) { + configData.eventHeatmap = layer.eventHeatmap + } + if (layer.heatIntensity !== undefined) { + configData.heatIntensity = layer.heatIntensity + } + if (layer.heatRadius !== undefined) { + configData.heatRadius = layer.heatRadius + } return configData } @@ -194,6 +206,9 @@ const deleteCommonLayerConfigProps = (layer) => { delete layer.countFeaturesWithoutCoordinates delete layer.countEventsOutsideOrgUnits delete layer.labelDataItem + delete layer.eventHeatmap + delete layer.heatIntensity + delete layer.heatRadius } const buildEarthEngineLayerConfigData = (layer) => { diff --git a/src/util/getDefaultLayerTypes.js b/src/util/getDefaultLayerTypes.js index 2c7e85db82..6e5f530327 100644 --- a/src/util/getDefaultLayerTypes.js +++ b/src/util/getDefaultLayerTypes.js @@ -19,6 +19,8 @@ export const getDefaultLayerTypes = () => [ type: i18n.t('Events'), img: 'images/events.png', opacity: 0.8, + heatIntensity: 0.5, + heatRadius: 0.5, eventClustering: true, }, { diff --git a/yarn.lock b/yarn.lock index 90512c02d9..9ef55844c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2371,10 +2371,9 @@ resolved "https://registry.yarnpkg.com/@dhis2/data-engine/-/data-engine-3.17.3.tgz#0347416e9919efbf4d9739c4141fa543f89669ad" integrity sha512-hLXt7LFrFitR7QgKfGQ3ComTLrY5IAdtERonhdo/SIrsRYWoeVaMiCOkUUzC48pEaeo1/BL5qwA7Tw7jZgROQw== -"@dhis2/maps-gl@^4.4.3": - version "4.4.3" - resolved "https://registry.yarnpkg.com/@dhis2/maps-gl/-/maps-gl-4.4.3.tgz#5584caee92c3fd164e3ab2cb67b78a428c7d1cb3" - integrity sha512-C2aDFNV3l3v5wbo0LJHr1lydQE6St04U11kCXtzU1WGqnEMEZKzuHyEoCfhIa/gas3e7HpNVfAbL1ZHI1OqDSw== +"@dhis2/maps-gl@git+https://github.com/d2-ci/maps-gl.git#a0c0a650843414776d42d94d38b476499823cffb": + version "4.2.8" + resolved "git+https://github.com/d2-ci/maps-gl.git#a0c0a650843414776d42d94d38b476499823cffb" dependencies: "@mapbox/sphericalmercator" "^1.2.0" "@turf/area" "^7.3.5" From 34b430abd3845b750ff881732dee7933550aed12 Mon Sep 17 00:00:00 2001 From: Bruno Raimbault Date: Thu, 10 Sep 2026 16:53:42 +0200 Subject: [PATCH 2/2] fix(eventLoader): restore eventHeatmap before config.config is deleted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The rebase's patch application produced two separate parseJsonConfig( config.config) blocks instead of merging into master's existing one — the first (pre-existing labelDataItem/legendDecimalPlaces/etc. block) deleted config.config at its end, and the second (added for eventHeatmap /heatIntensity/heatRadius) then read from that already-deleted field, so eventHeatmap silently never restored on load: a saved heatmap layer rendered as plain events instead of a heatmap, though the save payload itself (layer.config JSON) was always correct. Merged into the single existing parseJsonConfig destructure. Verified against the exact config string from a live saved map ({"eventHeatmap":true,"heatIntensity":0.08,"heatRadius":0.53}). Co-Authored-By: Claude Sonnet 5 --- src/loaders/eventLoader.js | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/loaders/eventLoader.js b/src/loaders/eventLoader.js index 59f299ed87..5b104e921a 100644 --- a/src/loaders/eventLoader.js +++ b/src/loaders/eventLoader.js @@ -161,6 +161,9 @@ const loadEventLayer = async ({ unclassifiedLegend: unclassifiedLegendFromConfig, noDataLegend: noDataLegendFromConfig, labelDataItem, + eventHeatmap: eventHeatmapFromConfig, + heatIntensity: heatIntensityFromConfig, + heatRadius: heatRadiusFromConfig, } = parseJsonConfig(config.config) if (countFeaturesWithoutCoordinates) { config.countFeaturesWithoutCoordinates = true @@ -202,17 +205,6 @@ const loadEventLayer = async ({ color: config.noDataColor, } } - delete config.noDataColor - delete config.config - - // Analytics request setup - // ----- - - const { - eventHeatmap: eventHeatmapFromConfig, - heatIntensity: heatIntensityFromConfig, - heatRadius: heatRadiusFromConfig, - } = parseJsonConfig(config.config) if (eventHeatmapFromConfig !== undefined) { config.eventHeatmap = eventHeatmapFromConfig } @@ -222,8 +214,12 @@ const loadEventLayer = async ({ if (heatRadiusFromConfig !== undefined) { config.heatRadius = heatRadiusFromConfig } + delete config.noDataColor delete config.config + // Analytics request setup + // ----- + const { columns, endDate,