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