fix(deck.gl Multiple Layer Chart): Add Contour and Heatmap Layer as options (#25923)

This commit is contained in:
Matthew Chiang 2024-01-29 05:10:11 -08:00 committed by GitHub
parent dfc614bdc3
commit 64ba5797df
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 26 additions and 20 deletions

View File

@ -26,3 +26,5 @@ export { default as PathChartPlugin } from './layers/Path';
export { default as PolygonChartPlugin } from './layers/Polygon'; export { default as PolygonChartPlugin } from './layers/Polygon';
export { default as ScatterChartPlugin } from './layers/Scatter'; export { default as ScatterChartPlugin } from './layers/Scatter';
export { default as ScreengridChartPlugin } from './layers/Screengrid'; export { default as ScreengridChartPlugin } from './layers/Screengrid';
export { default as ContourChartPlugin } from './layers/Contour';
export { default as HeatmapChartPlugin } from './layers/Heatmap';

View File

@ -45,16 +45,16 @@ function setTooltipContent(formData: QueryFormData) {
<div className="deckgl-tooltip"> <div className="deckgl-tooltip">
<TooltipRow <TooltipRow
label={t('Start (Longitude, Latitude): ')} label={t('Start (Longitude, Latitude): ')}
value={`${o.object.sourcePosition[0]}, ${o.object.sourcePosition[1]}`} value={`${o.object?.sourcePosition?.[0]}, ${o.object?.sourcePosition?.[1]}`}
/> />
<TooltipRow <TooltipRow
label={t('End (Longitude, Latitude): ')} label={t('End (Longitude, Latitude): ')}
value={`${o.object.targetPosition[0]}, ${o.object.targetPosition[1]}`} value={`${o.object?.targetPosition?.[0]}, ${o.object?.targetPosition?.[1]}`}
/> />
{formData.dimension && ( {formData.dimension && (
<TooltipRow <TooltipRow
label={`${formData.dimension}: `} label={`${formData?.dimension}: `}
value={`${o.object.cat_color}`} value={`${o.object?.cat_color}`}
/> />
)} )}
</div> </div>

View File

@ -93,13 +93,13 @@ const recurseGeoJson = (
function setTooltipContent(o: JsonObject) { function setTooltipContent(o: JsonObject) {
return ( return (
o.object.extraProps && ( o.object?.extraProps && (
<div className="deckgl-tooltip"> <div className="deckgl-tooltip">
{Object.keys(o.object.extraProps).map((prop, index) => ( {Object.keys(o.object.extraProps).map((prop, index) => (
<TooltipRow <TooltipRow
key={`prop-${index}`} key={`prop-${index}`}
label={`${prop}: `} label={`${prop}: `}
value={`${o.object.extraProps[prop]}`} value={`${o.object.extraProps?.[prop]}`}
/> />
))} ))}
</div> </div>

View File

@ -30,7 +30,7 @@ function setTooltipContent(o: JsonObject) {
<div className="deckgl-tooltip"> <div className="deckgl-tooltip">
<TooltipRow <TooltipRow
label={t('Centroid (Longitude and Latitude): ')} label={t('Centroid (Longitude and Latitude): ')}
value={`(${o.coordinate[0]}, ${o.coordinate[1]})`} value={`(${o?.coordinate[0]}, ${o?.coordinate[1]})`}
/> />
</div> </div>
); );

View File

@ -29,7 +29,7 @@ import { Point } from '../../types';
function setTooltipContent(o: JsonObject) { function setTooltipContent(o: JsonObject) {
return ( return (
o.object.extraProps && ( o.object?.extraProps && (
<div className="deckgl-tooltip"> <div className="deckgl-tooltip">
{Object.keys(o.object.extraProps).map((prop, index) => ( {Object.keys(o.object.extraProps).map((prop, index) => (
<TooltipRow <TooltipRow

View File

@ -62,27 +62,27 @@ function getElevation(
function setTooltipContent(formData: PolygonFormData) { function setTooltipContent(formData: PolygonFormData) {
return (o: JsonObject) => { return (o: JsonObject) => {
const metricLabel = formData.metric.label || formData.metric; const metricLabel = formData?.metric?.label || formData?.metric;
return ( return (
<div className="deckgl-tooltip"> <div className="deckgl-tooltip">
{o.object.name && ( {o.object?.name && (
<TooltipRow <TooltipRow
// eslint-disable-next-line prefer-template // eslint-disable-next-line prefer-template
label={t('name') + ': '} label={t('name') + ': '}
value={`${o.object.name}`} value={`${o.object.name}`}
/> />
)} )}
{o.object[formData.line_column] && ( {o.object?.[formData?.line_column] && (
<TooltipRow <TooltipRow
label={`${formData.line_column}: `} label={`${formData.line_column}: `}
value={`${o.object[formData.line_column]}`} value={`${o.object[formData.line_column]}`}
/> />
)} )}
{formData.metric && ( {formData?.metric && (
<TooltipRow <TooltipRow
label={`${metricLabel}: `} label={`${metricLabel}: `}
value={`${o.object[metricLabel]}`} value={`${o.object?.[metricLabel]}`}
/> />
)} )}
</div> </div>

View File

@ -48,17 +48,17 @@ function setTooltipContent(
<TooltipRow <TooltipRow
// eslint-disable-next-line prefer-template // eslint-disable-next-line prefer-template
label={t('Longitude and Latitude') + ': '} label={t('Longitude and Latitude') + ': '}
value={`${o.object.position[0]}, ${o.object.position[1]}`} value={`${o.object?.position?.[0]}, ${o.object?.position?.[1]}`}
/> />
{o.object.cat_color && ( {o.object?.cat_color && (
<TooltipRow <TooltipRow
// eslint-disable-next-line prefer-template // eslint-disable-next-line prefer-template
label={t('Category') + ': '} label={t('Category') + ': '}
value={`${o.object.cat_color}`} value={`${o.object?.cat_color}`}
/> />
)} )}
{o.object.metric && ( {o.object?.metric && (
<TooltipRow label={`${label}: `} value={`${o.object.metric}`} /> <TooltipRow label={`${label}: `} value={`${o.object?.metric}`} />
)} )}
</div> </div>
); );

View File

@ -45,12 +45,12 @@ function setTooltipContent(o: JsonObject) {
<TooltipRow <TooltipRow
// eslint-disable-next-line prefer-template // eslint-disable-next-line prefer-template
label={t('Longitude and Latitude') + ': '} label={t('Longitude and Latitude') + ': '}
value={`${o.coordinate[0]}, ${o.coordinate[1]}`} value={`${o?.coordinate?.[0]}, ${o?.coordinate?.[1]}`}
/> />
<TooltipRow <TooltipRow
// eslint-disable-next-line prefer-template // eslint-disable-next-line prefer-template
label={t('Weight') + ': '} label={t('Weight') + ': '}
value={`${o.object.cellWeight}`} value={`${o.object?.cellWeight}`}
/> />
</div> </div>
); );

View File

@ -25,6 +25,8 @@ import { getLayer as deck_scatter } from './Scatter/Scatter';
import { getLayer as deck_geojson } from './Geojson/Geojson'; import { getLayer as deck_geojson } from './Geojson/Geojson';
import { getLayer as deck_arc } from './Arc/Arc'; import { getLayer as deck_arc } from './Arc/Arc';
import { getLayer as deck_polygon } from './Polygon/Polygon'; import { getLayer as deck_polygon } from './Polygon/Polygon';
import { getLayer as deck_heatmap } from './Heatmap/Heatmap';
import { getLayer as deck_contour } from './Contour/Contour';
const layerGenerators = { const layerGenerators = {
deck_grid, deck_grid,
@ -35,6 +37,8 @@ const layerGenerators = {
deck_geojson, deck_geojson,
deck_arc, deck_arc,
deck_polygon, deck_polygon,
deck_heatmap,
deck_contour,
}; };
export default layerGenerators; export default layerGenerators;