Browse Source
Merge pull request #4002 from ponv/master
Dynamic color for data points
pull/4059/head
Igor Kulikov
6 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with
23 additions and
1 deletions
-
ui-ngx/src/app/modules/home/components/widget/lib/maps/leaflet-map.ts
-
ui-ngx/src/app/modules/home/components/widget/lib/maps/map-models.ts
-
ui-ngx/src/app/modules/home/components/widget/lib/maps/map-widget2.ts
-
ui-ngx/src/app/modules/home/components/widget/lib/maps/schemes.ts
-
ui-ngx/src/app/modules/home/components/widget/trip-animation/trip-animation.component.ts
|
|
|
@ -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 = () => { |
|
|
|
|