Merge pull request #4002 from ponv/master
Dynamic color for data points
This commit is contained in:
commit
34aab3287b
@ -626,10 +626,14 @@ export default abstract class LeafletMap {
|
||||
}
|
||||
this.points = new FeatureGroup();
|
||||
}
|
||||
let pointColor = this.options.pointColor;
|
||||
for (const pointsList of pointsData) {
|
||||
pointsList.filter(pdata => !!this.convertPosition(pdata)).forEach(data => {
|
||||
if (this.options.useColorPointFunction) {
|
||||
pointColor = safeExecute(this.options.colorPointFunction, [data, pointsData, data.dsIndex]);
|
||||
}
|
||||
const point = L.circleMarker(this.convertPosition(data), {
|
||||
color: this.options.pointColor,
|
||||
color: pointColor,
|
||||
radius: this.options.pointSize
|
||||
});
|
||||
if (!this.options.pointTooltipOnRightPanel) {
|
||||
|
||||
@ -201,6 +201,8 @@ export type TripAnimationSettings = {
|
||||
pointAsAnchorFunction: GenericFunction;
|
||||
tooltipFunction: GenericFunction;
|
||||
labelFunction: GenericFunction;
|
||||
useColorPointFunction: boolean;
|
||||
colorPointFunction: GenericFunction;
|
||||
};
|
||||
|
||||
export type actionsHandler = ($event: Event, datasource: Datasource) => void;
|
||||
|
||||
@ -301,6 +301,7 @@ export class MapWidgetController implements MapWidgetInterface {
|
||||
labelFunction: parseFunction(settings.labelFunction, functionParams),
|
||||
tooltipFunction: parseFunction(settings.tooltipFunction, functionParams),
|
||||
colorFunction: parseFunction(settings.colorFunction, functionParams),
|
||||
colorPointFunction: parseFunction(settings.colorPointFunction, functionParams),
|
||||
polygonColorFunction: parseFunction(settings.polygonColorFunction, functionParams),
|
||||
polygonTooltipFunction: parseFunction(settings.polygonTooltipFunction, functionParams),
|
||||
markerImageFunction: parseFunction(settings.markerImageFunction, ['data', 'images', 'dsData', 'dsIndex']),
|
||||
|
||||
@ -871,6 +871,15 @@ export const pointSchema =
|
||||
title: 'Point color',
|
||||
type: 'string'
|
||||
},
|
||||
useColorPointFunction: {
|
||||
title: 'Use color point function',
|
||||
type: 'boolean',
|
||||
default: false
|
||||
},
|
||||
colorPointFunction: {
|
||||
title: 'Color point function: f(data, dsData, dsIndex)',
|
||||
type: 'string'
|
||||
},
|
||||
pointSize: {
|
||||
title: 'Point size (px)',
|
||||
type: 'number',
|
||||
@ -899,6 +908,11 @@ export const pointSchema =
|
||||
key: 'pointColor',
|
||||
type: 'color'
|
||||
},
|
||||
'useColorPointFunction',
|
||||
{
|
||||
key: 'colorPointFunction',
|
||||
type: 'javascript'
|
||||
},
|
||||
'pointSize',
|
||||
'usePointAsAnchor',
|
||||
{
|
||||
|
||||
@ -112,6 +112,7 @@ export class TripAnimationComponent implements OnInit, AfterViewInit, OnDestroy
|
||||
this.settings.pointAsAnchorFunction = parseFunction(this.settings.pointAsAnchorFunction, ['data', 'dsData', 'dsIndex']);
|
||||
this.settings.tooltipFunction = parseFunction(this.settings.tooltipFunction, ['data', 'dsData', 'dsIndex']);
|
||||
this.settings.labelFunction = parseFunction(this.settings.labelFunction, ['data', 'dsData', 'dsIndex']);
|
||||
this.settings.colorPointFunction = parseFunction(this.settings.colorPointFunction, ['data', 'dsData', 'dsIndex']);
|
||||
this.normalizationStep = this.settings.normalizationStep;
|
||||
const subscription = this.ctx.defaultSubscription;
|
||||
subscription.callbacks.onDataUpdated = () => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user