map-models.ts
3.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
///
/// Copyright © 2016-2020 The Thingsboard Authors
///
/// Licensed under the Apache License; Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
/// http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing; software
/// distributed under the License is distributed on an "AS IS" BASIS;
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND; either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///
import { LatLngTuple } from 'leaflet';
export type GenericFunction = (data: FormattedData, dsData: FormattedData[], dsIndex: number) => string;
export type MarkerImageFunction = (data: FormattedData, dsData: FormattedData[], dsIndex: number) => string;
export type MapSettings = {
polygonKeyName: any;
draggableMarker: boolean;
initCallback?: () => any;
defaultZoomLevel?: number;
dontFitMapBounds?: boolean;
disableScrollZooming?: boolean;
minZoomLevel?: number;
latKeyName?: string;
lngKeyName?: string;
xPosKeyName?: string;
yPosKeyName?: string;
mapProvider: MapProviders;
mapUrl?: string;
credentials?: any; // declare credentials format
defaultCenterPosition?: LatLngTuple;
markerClusteringSetting?;
useDefaultCenterPosition?: boolean;
gmDefaultMapType?: string;
useLabelFunction: string;
icon?: any;
}
export enum MapProviders {
google = 'google-map',
openstreet = 'openstreet-map',
here = 'here',
image = 'image-map',
tencent = 'tencent-map'
}
export type MarkerSettings = {
tooltipPattern?: any;
icon?: any;
showLabel?: boolean;
label: string;
labelColor: string;
labelText: string;
useLabelFunction: boolean;
draggableMarker: boolean;
showTooltip?: boolean;
color?: string;
autocloseTooltip: boolean;
displayTooltipAction: string;
currentImage?: string;
useMarkerImageFunction?: boolean;
markerImages?: string[];
labelFunction: GenericFunction;
markerImageFunction?: MarkerImageFunction;
}
export interface FormattedData {
aliasName: string;
entityName: string;
$datasource: string;
dsIndex: number;
deviceType: string
}
export type PolygonSettings = {
showPolygon: boolean;
showTooltip: any;
polygonStrokeOpacity: number;
polygonOpacity: number;
polygonStrokeWeight: number;
polygonStrokeColor: string;
polygonColor: string;
autocloseTooltip: boolean;
displayTooltipAction: string;
}
export type PolylineSettings = {
usePolylineDecorator: any;
autocloseTooltip: boolean;
displayTooltipAction: string;
useColorFunction: any;
color: string;
useStrokeOpacityFunction: any;
strokeOpacity: number;
useStrokeWeightFunction: any;
strokeWeight: number;
decoratorOffset: string | number;
endDecoratorOffset: string | number;
decoratorRepeat: string | number;
decoratorSymbol: any;
decoratorSymbolSize: any;
useDecoratorCustomColor: any;
decoratorCustomColor: any;
colorFunction: GenericFunction;
strokeOpacityFunction: GenericFunction;
strokeWeightFunction: GenericFunction;
}
export interface HistorySelectSettings {
buttonColor: string;
}
export type UnitedMapSettings = MapSettings & PolygonSettings & MarkerSettings & PolygonSettings;