Improvements calculate data

This commit is contained in:
Vladyslav_Prykhodko 2020-05-21 15:02:58 +03:00
parent a001121d61
commit 59d2fdc79e

View File

@ -133,8 +133,6 @@ export class TripAnimationComponent implements OnInit, AfterViewInit {
currentPosition[0] = { currentPosition[0] = {
...beforePosition, ...beforePosition,
time, time,
minTime: this.minTimeFormat,
maxTime: this.maxTimeFormat,
...interpolateOnLineSegment(beforePosition, afterPosition, this.settings.latKeyName, this.settings.lngKeyName, ratio) ...interpolateOnLineSegment(beforePosition, afterPosition, this.settings.latKeyName, this.settings.lngKeyName, ratio)
} }
break; break;
@ -164,10 +162,10 @@ export class TripAnimationComponent implements OnInit, AfterViewInit {
calculateIntervals() { calculateIntervals() {
this.historicalData.forEach((dataSource, index) => { this.historicalData.forEach((dataSource, index) => {
this.minTime = dataSource[0]?.time || Infinity; this.minTime = dataSource[0]?.time || Infinity;
this.minTimeFormat = this.minTime !== Infinity ? moment(this.minTime).format('YYYY-MM-DD HH:mm:ss') : ''; const minTimeFormat = this.minTime !== Infinity ? moment(this.minTime).format('YYYY-MM-DD HH:mm:ss') : '';
this.maxTime = dataSource[dataSource.length - 1]?.time || -Infinity; this.maxTime = dataSource[dataSource.length - 1]?.time || -Infinity;
this.maxTimeFormat = this.maxTime !== -Infinity ? moment(this.maxTime).format('YYYY-MM-DD HH:mm:ss') : ''; const maxTimeFormat = this.maxTime !== -Infinity ? moment(this.maxTime).format('YYYY-MM-DD HH:mm:ss') : '';
this.interpolatedTimeData[index] = this.interpolateArray(dataSource); this.interpolatedTimeData[index] = this.interpolateArray(dataSource, minTimeFormat, maxTimeFormat);
}); });
if (this.useAnchors) { if (this.useAnchors) {
const anchorDate = Object.entries(_.union(this.interpolatedTimeData)[0]); const anchorDate = Object.entries(_.union(this.interpolatedTimeData)[0]);
@ -181,11 +179,7 @@ export class TripAnimationComponent implements OnInit, AfterViewInit {
if (!point) { if (!point) {
point = this.activeTrip; point = this.activeTrip;
} }
const data = { const data = this.activeTrip;
...this.activeTrip,
maxTime: this.maxTimeFormat,
minTime: this.minTimeFormat
}
const tooltipPattern: string = this.settings.useTooltipFunction ? const tooltipPattern: string = this.settings.useTooltipFunction ?
safeExecute(this.settings.tooolTipFunction, [data, this.historicalData, point.dsIndex]) : this.settings.tooltipPattern; safeExecute(this.settings.tooolTipFunction, [data, this.historicalData, point.dsIndex]) : this.settings.tooltipPattern;
const tooltipText = parseWithTranslation.parseTemplate(tooltipPattern, data, true); const tooltipText = parseWithTranslation.parseTemplate(tooltipPattern, data, true);
@ -199,17 +193,13 @@ export class TripAnimationComponent implements OnInit, AfterViewInit {
} }
calcLabel() { calcLabel() {
const data = { const data = this.activeTrip;
...this.activeTrip,
maxTime: this.maxTimeFormat,
minTime: this.minTimeFormat
}
const labelText: string = this.settings.useLabelFunction ? const labelText: string = this.settings.useLabelFunction ?
safeExecute(this.settings.labelFunction, [data, this.historicalData, data.dsIndex]) : this.settings.label; safeExecute(this.settings.labelFunction, [data, this.historicalData, data.dsIndex]) : this.settings.label;
this.label = (parseWithTranslation.parseTemplate(labelText, data, true)); this.label = (parseWithTranslation.parseTemplate(labelText, data, true));
} }
interpolateArray(originData: FormattedData[]) { interpolateArray(originData: FormattedData[], minTimeFormat?: string, maxTimeFormat?: string) {
const result = {}; const result = {};
const latKeyName = this.settings.latKeyName; const latKeyName = this.settings.latKeyName;
const lngKeyName = this.settings.lngKeyName; const lngKeyName = this.settings.lngKeyName;
@ -218,6 +208,8 @@ export class TripAnimationComponent implements OnInit, AfterViewInit {
const normalizeTime = this.minTime + Math.ceil((currentTime - this.minTime) / this.normalizationStep) * this.normalizationStep; const normalizeTime = this.minTime + Math.ceil((currentTime - this.minTime) / this.normalizationStep) * this.normalizationStep;
result[normalizeTime] = { result[normalizeTime] = {
...data, ...data,
minTime: minTimeFormat,
maxTime: maxTimeFormat,
rotationAngle: this.settings.rotationAngle rotationAngle: this.settings.rotationAngle
}; };
} }