2nd part of additions to fix after review
This commit is contained in:
parent
65027b9c17
commit
fd3208cf82
@ -608,30 +608,30 @@ export default abstract class LeafletMap {
|
|||||||
return polygon;
|
return polygon;
|
||||||
}
|
}
|
||||||
|
|
||||||
updatePoints(pointsData: FormattedData[][], getTooltip: (point: FormattedData[], setTooltip?: boolean) => string) {
|
updatePoints(pointsData: FormattedData[][], getTooltip: (point: FormattedData) => string) {
|
||||||
for(let i = 0; i < pointsData.length; i++) {
|
if(pointsData.length) {
|
||||||
let pointsList = pointsData[i];
|
if (this.points) {
|
||||||
if(i === 0) {
|
this.map.removeLayer(this.points);
|
||||||
if (this.points) {
|
|
||||||
this.map.removeLayer(this.points);
|
|
||||||
}
|
|
||||||
this.points = new FeatureGroup();
|
|
||||||
}
|
}
|
||||||
|
this.points = new FeatureGroup();
|
||||||
|
}
|
||||||
|
for(let i = 0; i < pointsData.length; i++) {
|
||||||
|
const pointsList = pointsData[i];
|
||||||
pointsList.filter(pdata => !!this.convertPosition(pdata)).forEach(data => {
|
pointsList.filter(pdata => !!this.convertPosition(pdata)).forEach(data => {
|
||||||
const point = L.circleMarker(this.convertPosition(data), {
|
const point = L.circleMarker(this.convertPosition(data), {
|
||||||
color: this.options.pointColor,
|
color: this.options.pointColor,
|
||||||
radius: this.options.pointSize
|
radius: this.options.pointSize
|
||||||
});
|
});
|
||||||
if (!this.options.pointTooltipOnRightPanel) {
|
if (!this.options.pointTooltipOnRightPanel) {
|
||||||
point.on('click', () => getTooltip([data]));
|
point.on('click', () => getTooltip(data));
|
||||||
} else {
|
} else {
|
||||||
createTooltip(point, this.options, data.$datasource, getTooltip([data], false));
|
createTooltip(point, this.options, data.$datasource, getTooltip(data));
|
||||||
}
|
}
|
||||||
this.points.addLayer(point);
|
this.points.addLayer(point);
|
||||||
});
|
});
|
||||||
if(i === (pointsData.length - 1)) {
|
}
|
||||||
this.map.addLayer(this.points);
|
if(pointsData.length) {
|
||||||
}
|
this.map.addLayer(this.points);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -166,8 +166,8 @@ export class TripAnimationComponent implements OnInit, AfterViewInit, OnDestroy
|
|||||||
currentPosition[j] = this.calculateLastPoints(this.interpolatedTimeData[j], time);
|
currentPosition[j] = this.calculateLastPoints(this.interpolatedTimeData[j], time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.calcLabel(currentPosition);
|
this.calcLabel();
|
||||||
this.calcTooltip(currentPosition, true);
|
this.calcMainTooltip(currentPosition);
|
||||||
if (this.mapWidget && this.mapWidget.map && this.mapWidget.map.map) {
|
if (this.mapWidget && this.mapWidget.map && this.mapWidget.map.map) {
|
||||||
const formattedInterpolatedTimeData = this.interpolatedTimeData.map(ds => _.values(ds));
|
const formattedInterpolatedTimeData = this.interpolatedTimeData.map(ds => _.values(ds));
|
||||||
this.mapWidget.map.updatePolylines(formattedInterpolatedTimeData, true);
|
this.mapWidget.map.updatePolylines(formattedInterpolatedTimeData, true);
|
||||||
@ -221,33 +221,26 @@ export class TripAnimationComponent implements OnInit, AfterViewInit, OnDestroy
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
calcTooltip = (points?: FormattedData[], isMainTooltip: boolean = false): string => {
|
calcTooltip = (point: FormattedData): string => {
|
||||||
let tooltipText;
|
const data = point ? point : this.activeTrip;
|
||||||
if(isMainTooltip) {
|
const tooltipPattern: string = this.settings.useTooltipFunction ?
|
||||||
this.mainTooltips = []
|
safeExecute(this.settings.tooltipFunction, [data, this.historicalData, point.dsIndex]) : this.settings.tooltipPattern;
|
||||||
}
|
return parseWithTranslation.parseTemplate(tooltipPattern, data, true);
|
||||||
for (let point of points) {
|
|
||||||
const data = point ? point : this.activeTrip;
|
|
||||||
const tooltipPattern: string = this.settings.useTooltipFunction ?
|
|
||||||
safeExecute(this.settings.tooltipFunction, [data, this.historicalData, point.dsIndex]) : this.settings.tooltipPattern;
|
|
||||||
tooltipText = parseWithTranslation.parseTemplate(tooltipPattern, data, true);
|
|
||||||
if(isMainTooltip) {
|
|
||||||
this.mainTooltips.push(this.sanitizer.sanitize(SecurityContext.HTML, tooltipText));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.cd.detectChanges();
|
|
||||||
return tooltipText;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
calcLabel(formattedDataArr: FormattedData[]) {
|
private calcMainTooltip(points: FormattedData[]): void {
|
||||||
let labelToSet = '';
|
const tooltips = [];
|
||||||
for (let formattedData of formattedDataArr) {
|
for (let point of points) {
|
||||||
const labelText: string = this.settings.useLabelFunction ?
|
tooltips.push(this.sanitizer.sanitize(SecurityContext.HTML, this.calcTooltip(point)));
|
||||||
safeExecute(this.settings.labelFunction, [formattedData, this.historicalData, formattedData.dsIndex]) : this.settings.label;
|
|
||||||
const label = (parseWithTranslation.parseTemplate(labelText, formattedData, true));
|
|
||||||
labelToSet = labelToSet.length ? labelToSet + ',' + label : label;
|
|
||||||
}
|
}
|
||||||
this.label = labelToSet;
|
this.mainTooltips = tooltips;
|
||||||
|
}
|
||||||
|
|
||||||
|
calcLabel() {
|
||||||
|
const data = this.activeTrip;
|
||||||
|
const labelText: string = this.settings.useLabelFunction ?
|
||||||
|
safeExecute(this.settings.labelFunction, [data, this.historicalData, data.dsIndex]) : this.settings.label;
|
||||||
|
this.label = (parseWithTranslation.parseTemplate(labelText, data, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
interpolateArray(originData: FormattedData[]) {
|
interpolateArray(originData: FormattedData[]) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user