typing & small fixes
This commit is contained in:
parent
ea184ec5d1
commit
47c29f27e0
@ -14,7 +14,7 @@
|
||||
/// limitations under the License.
|
||||
///
|
||||
|
||||
import L, { FeatureGroup, LatLngBounds, LatLngTuple, markerClusterGroup, MarkerClusterGroupOptions } from 'leaflet';
|
||||
import L, { FeatureGroup, LatLngBounds, LatLngTuple, markerClusterGroup, MarkerClusterGroupOptions, MarkerClusterGroup } from 'leaflet';
|
||||
|
||||
import 'leaflet-providers';
|
||||
import 'leaflet.markercluster/dist/leaflet.markercluster';
|
||||
@ -45,9 +45,9 @@ export default abstract class LeafletMap {
|
||||
options: UnitedMapSettings;
|
||||
bounds: L.LatLngBounds;
|
||||
datasources: FormattedData[];
|
||||
markersCluster;
|
||||
markersCluster: MarkerClusterGroup;
|
||||
points: FeatureGroup;
|
||||
markersData = [];
|
||||
markersData: FormattedData[] = [];
|
||||
|
||||
protected constructor(public $container: HTMLElement, options: UnitedMapSettings) {
|
||||
this.options = options;
|
||||
@ -245,7 +245,7 @@ export default abstract class LeafletMap {
|
||||
}
|
||||
|
||||
// Markers
|
||||
updateMarkers(markersData, callback?) {
|
||||
updateMarkers(markersData: FormattedData[], callback?) {
|
||||
markersData.filter(mdata => !!this.convertPosition(mdata)).forEach(data => {
|
||||
if (data.rotationAngle || data.rotationAngle === 0) {
|
||||
const currentImage = this.options.useMarkerImageFunction ?
|
||||
@ -272,7 +272,7 @@ export default abstract class LeafletMap {
|
||||
this.markersData = markersData;
|
||||
}
|
||||
|
||||
dragMarker = (e, data?) => {
|
||||
dragMarker = (e, data = {}) => {
|
||||
if (e.type !== 'dragend') return;
|
||||
this.saveMarkerLocation({ ...data, ...this.convertToCustomFormat(e.target._latlng) });
|
||||
}
|
||||
|
||||
@ -34,7 +34,8 @@ import {
|
||||
DatasourceType,
|
||||
JsonSettingsSchema,
|
||||
WidgetActionDescriptor,
|
||||
widgetType
|
||||
widgetType,
|
||||
DatasourceData
|
||||
} from '@shared/models/widget.models';
|
||||
import { EntityId } from '@shared/models/id/entity-id';
|
||||
import { AttributeScope, DataKeyType, LatestTelemetry } from '@shared/models/telemetry/telemetry.models';
|
||||
@ -83,7 +84,7 @@ export class MapWidgetController implements MapWidgetInterface {
|
||||
map: LeafletMap;
|
||||
provider: MapProviders;
|
||||
schema: JsonSettingsSchema;
|
||||
data;
|
||||
data: DatasourceData[];
|
||||
settings: UnitedMapSettings;
|
||||
|
||||
public static dataKeySettingsSchema(): object {
|
||||
|
||||
@ -22,8 +22,8 @@ import { isDefined } from '@core/utils';
|
||||
|
||||
export class Marker {
|
||||
leafletMarker: L.Marker;
|
||||
tooltipOffset: [number, number];
|
||||
markerOffset: [number, number];
|
||||
tooltipOffset: L.LatLngTuple;
|
||||
markerOffset: L.LatLngTuple;
|
||||
tooltip: L.Popup;
|
||||
location: L.LatLngExpression;
|
||||
data: FormattedData;
|
||||
|
||||
@ -409,7 +409,10 @@ export const commonMapSettingsSchema =
|
||||
condition: 'model.provider !== "image-map"'
|
||||
},
|
||||
'draggableMarker',
|
||||
'disableScrollZooming',
|
||||
{
|
||||
key: 'disableScrollZooming',
|
||||
condition: 'model.provider !== "image-map"'
|
||||
},
|
||||
{
|
||||
key: 'latKeyName',
|
||||
condition: 'model.provider !== "image-map"'
|
||||
|
||||
@ -159,10 +159,8 @@ export class TripAnimationComponent implements OnInit, AfterViewInit {
|
||||
calculateIntervals() {
|
||||
this.historicalData.forEach((dataSource, index) => {
|
||||
this.minTime = dataSource[0]?.time || Infinity;
|
||||
const minTimeFormat = this.minTime !== Infinity ? moment(this.minTime).format('YYYY-MM-DD HH:mm:ss') : '';
|
||||
this.maxTime = dataSource[dataSource.length - 1]?.time || -Infinity;
|
||||
const maxTimeFormat = this.maxTime !== -Infinity ? moment(this.maxTime).format('YYYY-MM-DD HH:mm:ss') : '';
|
||||
this.interpolatedTimeData[index] = this.interpolateArray(dataSource, minTimeFormat, maxTimeFormat);
|
||||
this.interpolatedTimeData[index] = this.interpolateArray(dataSource);
|
||||
});
|
||||
if(!this.activeTrip){
|
||||
this.activeTrip = this.interpolatedTimeData.map(dataSource => dataSource[this.minTime]).filter(ds => ds)[0];
|
||||
@ -194,7 +192,7 @@ export class TripAnimationComponent implements OnInit, AfterViewInit {
|
||||
this.label = (parseWithTranslation.parseTemplate(labelText, data, true));
|
||||
}
|
||||
|
||||
interpolateArray(originData: FormattedData[], minTimeFormat?: string, maxTimeFormat?: string) {
|
||||
interpolateArray(originData: FormattedData[]) {
|
||||
const result = {};
|
||||
const latKeyName = this.settings.latKeyName;
|
||||
const lngKeyName = this.settings.lngKeyName;
|
||||
@ -203,8 +201,8 @@ export class TripAnimationComponent implements OnInit, AfterViewInit {
|
||||
const normalizeTime = this.minTime + Math.ceil((currentTime - this.minTime) / this.normalizationStep) * this.normalizationStep;
|
||||
result[normalizeTime] = {
|
||||
...data,
|
||||
minTime: minTimeFormat,
|
||||
maxTime: maxTimeFormat,
|
||||
minTime: this.minTime !== Infinity ? moment(this.minTime).format('YYYY-MM-DD HH:mm:ss') : '',
|
||||
maxTime: this.maxTime !== -Infinity ? moment(this.maxTime).format('YYYY-MM-DD HH:mm:ss') : '',
|
||||
rotationAngle: this.settings.rotationAngle
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user