mobility-toolbox-js 3.0.0-beta.17 → 3.0.0-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/HttpAPI.js +0 -1
- package/common/mixins/RealtimeLayerMixin.d.ts +29 -28
- package/common/mixins/RealtimeLayerMixin.js +2 -2
- package/common/typedefs.d.ts +4 -4
- package/maplibre/layers/RealtimeLayer.d.ts +35 -38
- package/mbt.js +12322 -3810
- package/mbt.js.map +4 -4
- package/mbt.min.js +62 -59
- package/mbt.min.js.map +4 -4
- package/ol/controls/RoutingControl.d.ts +2 -3
- package/ol/layers/Layer.d.ts +15 -15
- package/ol/layers/MaplibreLayer.d.ts +15 -25
- package/ol/layers/MaplibreLayer.js +3 -1
- package/ol/layers/MaplibreStyleLayer.d.ts +15 -15
- package/ol/layers/MaplibreStyleLayer.js +4 -4
- package/ol/layers/RealtimeLayer.d.ts +52 -52
- package/ol/layers/RealtimeLayer.js +8 -7
- package/ol/mixins/MobilityLayerMixin.d.ts +15 -15
- package/ol/mixins/PropertiesLayerMixin.d.ts +15 -15
- package/ol/renderers/MaplibreStyleLayerRenderer.js +6 -6
- package/package.json +24 -24
- package/types/common.d.ts +3 -0
package/api/HttpAPI.js
CHANGED
|
@@ -36,7 +36,6 @@ class HttpAPI {
|
|
|
36
36
|
// Clean requets parameters, removing undefined and null values.
|
|
37
37
|
const searchParams = params || {};
|
|
38
38
|
const url = getUrlWithParams(`${this.url}${path || ''}`, Object.assign({ key: this.apiKey }, searchParams));
|
|
39
|
-
fetch;
|
|
40
39
|
const response = yield fetch(url.toString(), config);
|
|
41
40
|
const data = yield response.json();
|
|
42
41
|
if (data.error) {
|
|
@@ -3,7 +3,7 @@ import { EventsKey } from 'ol/events';
|
|
|
3
3
|
import { Coordinate } from 'ol/coordinate';
|
|
4
4
|
import { Options } from 'ol/layer/Layer';
|
|
5
5
|
import { RealtimeAPI } from '../../api';
|
|
6
|
-
import { AnyCanvas,
|
|
6
|
+
import { AnyCanvas, AnyMap, AnyRealtimeLayer, LayerGetFeatureInfoOptions, RealtimeGeneralizationLevel, RealtimeMode, RealtimeMot, RealtimeRenderState, RealtimeStyleFunction, RealtimeStyleOptions, RealtimeTenant, RealtimeTrainId, ViewState, AnyLayer, LayerGetFeatureInfoResponse, RealtimeTrajectory, AnyLayerable } from '../../types';
|
|
7
7
|
import { WebSocketAPIMessageEventData } from '../../api/WebSocketAPI';
|
|
8
8
|
import { FilterFunction, SortFunction } from '../typedefs';
|
|
9
9
|
export type RealtimeLayerMixinOptions = Options & {
|
|
@@ -85,45 +85,46 @@ export declare class RealtimeLayerInterface {
|
|
|
85
85
|
* @return {Class} A class that implements {RealtimeLayerInterface} class and extends Base;
|
|
86
86
|
* @private
|
|
87
87
|
*/
|
|
88
|
-
declare function RealtimeLayerMixin<T extends
|
|
88
|
+
declare function RealtimeLayerMixin<T extends AnyLayerable>(Base: T): {
|
|
89
89
|
new (options: RealtimeLayerMixinOptions): {
|
|
90
90
|
[x: string]: any;
|
|
91
|
+
[x: symbol]: any;
|
|
91
92
|
debug: boolean;
|
|
92
93
|
trajectories?: {
|
|
93
|
-
[key:
|
|
94
|
-
}
|
|
95
|
-
canvas?: AnyCanvas
|
|
94
|
+
[key: RealtimeTrainId]: RealtimeTrajectory;
|
|
95
|
+
};
|
|
96
|
+
canvas?: AnyCanvas;
|
|
96
97
|
mode: RealtimeMode;
|
|
97
98
|
api: RealtimeAPI;
|
|
98
99
|
tenant: RealtimeTenant;
|
|
99
100
|
bboxParameters?: {
|
|
100
|
-
[index: string]: string | number | boolean | string[] |
|
|
101
|
-
}
|
|
102
|
-
time?: Date
|
|
103
|
-
live?: boolean
|
|
104
|
-
speed?: number
|
|
105
|
-
filter?:
|
|
106
|
-
sort?:
|
|
107
|
-
style?: RealtimeStyleFunction
|
|
108
|
-
styleOptions?: RealtimeStyleOptions
|
|
109
|
-
pixelRatio?: number
|
|
101
|
+
[index: string]: string | number | boolean | string[] | boolean[] | number[];
|
|
102
|
+
};
|
|
103
|
+
time?: Date;
|
|
104
|
+
live?: boolean;
|
|
105
|
+
speed?: number;
|
|
106
|
+
filter?: FilterFunction;
|
|
107
|
+
sort?: SortFunction;
|
|
108
|
+
style?: RealtimeStyleFunction;
|
|
109
|
+
styleOptions?: RealtimeStyleOptions;
|
|
110
|
+
pixelRatio?: number;
|
|
110
111
|
minZoomInterpolation: number;
|
|
111
112
|
isUpdateBboxOnMoveEnd: boolean;
|
|
112
|
-
hoverVehicleId?:
|
|
113
|
-
selectedVehicleId?:
|
|
114
|
-
renderState?: RealtimeRenderState
|
|
115
|
-
useRequestAnimationFrame?: boolean
|
|
116
|
-
useDebounce?: boolean
|
|
117
|
-
useThrottle?: boolean
|
|
118
|
-
mots?: RealtimeMot[]
|
|
113
|
+
hoverVehicleId?: RealtimeTrainId;
|
|
114
|
+
selectedVehicleId?: RealtimeTrainId;
|
|
115
|
+
renderState?: RealtimeRenderState;
|
|
116
|
+
useRequestAnimationFrame?: boolean;
|
|
117
|
+
useDebounce?: boolean;
|
|
118
|
+
useThrottle?: boolean;
|
|
119
|
+
mots?: RealtimeMot[];
|
|
119
120
|
motsByZoom: RealtimeMot[][];
|
|
120
|
-
generalizationLevel?: RealtimeGeneralizationLevel
|
|
121
|
+
generalizationLevel?: RealtimeGeneralizationLevel;
|
|
121
122
|
generalizationLevelByZoom: RealtimeGeneralizationLevel[];
|
|
122
123
|
renderTimeIntervalByZoom: number[];
|
|
123
124
|
format: GeoJSON;
|
|
124
|
-
requestId?: number
|
|
125
|
-
updateTimeInterval?: number
|
|
126
|
-
updateTimeDelay?: number
|
|
125
|
+
requestId?: number;
|
|
126
|
+
updateTimeInterval?: number;
|
|
127
|
+
updateTimeDelay?: number;
|
|
127
128
|
visibilityRef: EventsKey;
|
|
128
129
|
selectedVehicle: RealtimeTrajectory;
|
|
129
130
|
getMotsByZoom: (zoom: number) => RealtimeMot[];
|
|
@@ -131,8 +132,8 @@ declare function RealtimeLayerMixin<T extends AnyLayerClass>(Base: T): {
|
|
|
131
132
|
getRenderTimeIntervalByZoom: (zoom: number) => number;
|
|
132
133
|
throttleRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
|
|
133
134
|
debounceRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
|
|
134
|
-
onStart?: (
|
|
135
|
-
onStop?: (
|
|
135
|
+
onStart?: (realtimeLayer: AnyLayer) => void;
|
|
136
|
+
onStop?: (realtimeLayer: AnyLayer) => void;
|
|
136
137
|
/**
|
|
137
138
|
* Define layer's properties.
|
|
138
139
|
*
|
|
@@ -473,9 +473,9 @@ function RealtimeLayerMixin(Base) {
|
|
|
473
473
|
zoomFloor,
|
|
474
474
|
];
|
|
475
475
|
/* @private */
|
|
476
|
-
|
|
476
|
+
this.generalizationLevel = this.getGeneralizationLevelByZoom(zoomFloor);
|
|
477
477
|
if (this.generalizationLevel) {
|
|
478
|
-
bbox.push(`gen=${generalizationLevel}`);
|
|
478
|
+
bbox.push(`gen=${this.generalizationLevel}`);
|
|
479
479
|
}
|
|
480
480
|
/* @private */
|
|
481
481
|
this.mots = this.getMotsByZoom(zoomFloor);
|
package/common/typedefs.d.ts
CHANGED
|
@@ -14,11 +14,11 @@ export type ViewState = {
|
|
|
14
14
|
/**
|
|
15
15
|
* An Extent in mercator coordinates.
|
|
16
16
|
*/
|
|
17
|
-
extent:
|
|
17
|
+
extent: number[4];
|
|
18
18
|
/**
|
|
19
19
|
* A size ([width, height]).
|
|
20
20
|
*/
|
|
21
|
-
size:
|
|
21
|
+
size: number[2];
|
|
22
22
|
/**
|
|
23
23
|
* A rotation in radians.
|
|
24
24
|
*/
|
|
@@ -48,7 +48,7 @@ export type FeatureInfo = {
|
|
|
48
48
|
/**
|
|
49
49
|
* The coordinate where to find the featue.
|
|
50
50
|
*/
|
|
51
|
-
coordinate:
|
|
51
|
+
coordinate: number[2];
|
|
52
52
|
};
|
|
53
53
|
export type MaplibreLayerOptions = {
|
|
54
54
|
/**
|
|
@@ -136,7 +136,7 @@ export type VehiclePosition = {
|
|
|
136
136
|
/**
|
|
137
137
|
* Coordinate of the vehicle position in Mercator .
|
|
138
138
|
*/
|
|
139
|
-
coord:
|
|
139
|
+
coord: number[2];
|
|
140
140
|
/**
|
|
141
141
|
* An angle in radians representing the direction (from the true north) towards which the vehicle is facing.
|
|
142
142
|
*/
|
|
@@ -2,62 +2,59 @@ import { RealtimeLayerMixinOptions } from '../../common/mixins/RealtimeLayerMixi
|
|
|
2
2
|
import Layer, { LayerOptions } from './Layer';
|
|
3
3
|
import type { AnyMapGlMap, ViewState } from '../../types';
|
|
4
4
|
import type { RealtimeTrajectory } from '../../api/typedefs';
|
|
5
|
+
import { FilterFunction, SortFunction } from '../../common/typedefs';
|
|
5
6
|
export type RealtimeLayerOptions = LayerOptions & RealtimeLayerMixinOptions;
|
|
6
7
|
declare const RealtimeLayer_base: {
|
|
7
8
|
new (options: RealtimeLayerMixinOptions): {
|
|
8
9
|
[x: string]: any;
|
|
10
|
+
[x: symbol]: any;
|
|
9
11
|
debug: boolean;
|
|
10
12
|
trajectories?: {
|
|
11
13
|
[key: string]: import("../../types").RealtimeTrajectory;
|
|
12
14
|
} | undefined;
|
|
13
|
-
canvas?: import("../../types").AnyCanvas
|
|
15
|
+
canvas?: import("../../types").AnyCanvas;
|
|
14
16
|
mode: import("../../types").RealtimeMode;
|
|
15
17
|
api: import("..").RealtimeAPI;
|
|
16
|
-
tenant:
|
|
18
|
+
tenant: import("../../types").RealtimeTenant;
|
|
17
19
|
bboxParameters?: {
|
|
18
20
|
[index: string]: string | number | boolean | string[] | number[] | boolean[];
|
|
19
21
|
} | undefined;
|
|
20
|
-
time?: Date
|
|
21
|
-
live?: boolean
|
|
22
|
-
speed?: number
|
|
23
|
-
filter?:
|
|
24
|
-
sort?:
|
|
25
|
-
style?: import("../../types").RealtimeStyleFunction
|
|
26
|
-
styleOptions?: import("../../types").RealtimeStyleOptions
|
|
27
|
-
pixelRatio?: number
|
|
22
|
+
time?: Date;
|
|
23
|
+
live?: boolean;
|
|
24
|
+
speed?: number;
|
|
25
|
+
filter?: FilterFunction;
|
|
26
|
+
sort?: SortFunction;
|
|
27
|
+
style?: import("../../types").RealtimeStyleFunction;
|
|
28
|
+
styleOptions?: import("../../types").RealtimeStyleOptions;
|
|
29
|
+
pixelRatio?: number;
|
|
28
30
|
minZoomInterpolation: number;
|
|
29
31
|
isUpdateBboxOnMoveEnd: boolean;
|
|
30
|
-
hoverVehicleId?:
|
|
31
|
-
selectedVehicleId?:
|
|
32
|
-
renderState?: import("../../types").RealtimeRenderState
|
|
33
|
-
useRequestAnimationFrame?: boolean
|
|
34
|
-
useDebounce?: boolean
|
|
35
|
-
useThrottle?: boolean
|
|
36
|
-
mots?: import("../../types").RealtimeMot[]
|
|
32
|
+
hoverVehicleId?: import("../../types").RealtimeTrainId;
|
|
33
|
+
selectedVehicleId?: import("../../types").RealtimeTrainId;
|
|
34
|
+
renderState?: import("../../types").RealtimeRenderState;
|
|
35
|
+
useRequestAnimationFrame?: boolean;
|
|
36
|
+
useDebounce?: boolean;
|
|
37
|
+
useThrottle?: boolean;
|
|
38
|
+
mots?: import("../../types").RealtimeMot[];
|
|
37
39
|
motsByZoom: import("../../types").RealtimeMot[][];
|
|
38
|
-
generalizationLevel?: import("../../types").RealtimeGeneralizationLevel
|
|
40
|
+
generalizationLevel?: import("../../types").RealtimeGeneralizationLevel;
|
|
39
41
|
generalizationLevelByZoom: import("../../types").RealtimeGeneralizationLevel[];
|
|
40
42
|
renderTimeIntervalByZoom: number[];
|
|
41
|
-
format: import("ol/format").GeoJSON
|
|
42
|
-
requestId?: number
|
|
43
|
-
updateTimeInterval?: number
|
|
44
|
-
updateTimeDelay?: number
|
|
43
|
+
format: import("ol/format").GeoJSON;
|
|
44
|
+
requestId?: number;
|
|
45
|
+
updateTimeInterval?: number;
|
|
46
|
+
updateTimeDelay?: number;
|
|
45
47
|
visibilityRef: import("ol/events").EventsKey;
|
|
46
|
-
/**
|
|
47
|
-
* Render the trajectories using current map's size, resolution and rotation.
|
|
48
|
-
* @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
|
|
49
|
-
* @private
|
|
50
|
-
*/
|
|
51
48
|
selectedVehicle: import("../../types").RealtimeTrajectory;
|
|
52
49
|
getMotsByZoom: (zoom: number) => import("../../types").RealtimeMot[];
|
|
53
50
|
getGeneralizationLevelByZoom: (zoom: number) => import("../../types").RealtimeGeneralizationLevel;
|
|
54
51
|
getRenderTimeIntervalByZoom: (zoom: number) => number;
|
|
55
|
-
throttleRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean
|
|
56
|
-
debounceRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean
|
|
57
|
-
onStart?: ((realtimeLayer:
|
|
58
|
-
onStop?: ((realtimeLayer:
|
|
52
|
+
throttleRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
|
|
53
|
+
debounceRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
|
|
54
|
+
onStart?: ((realtimeLayer: import("../../types").AnyLayer) => void) | undefined;
|
|
55
|
+
onStop?: ((realtimeLayer: import("../../types").AnyLayer) => void) | undefined;
|
|
59
56
|
defineProperties(options: RealtimeLayerMixinOptions): void;
|
|
60
|
-
attachToMap(map:
|
|
57
|
+
attachToMap(map: import("../../types").AnyMap): void;
|
|
61
58
|
detachFromMap(): void;
|
|
62
59
|
start(): void;
|
|
63
60
|
startUpdateTime(): void;
|
|
@@ -67,22 +64,22 @@ declare const RealtimeLayer_base: {
|
|
|
67
64
|
renderTrajectories(viewState: ViewState | undefined, noInterpolate: boolean | undefined): void;
|
|
68
65
|
setBbox(extent: [number, number, number, number], zoom: number): void;
|
|
69
66
|
getRefreshTimeInMs(zoom?: number | undefined): number;
|
|
70
|
-
getVehicle(filterFc:
|
|
67
|
+
getVehicle(filterFc: FilterFunction): import("../../types").RealtimeTrajectory[];
|
|
71
68
|
getFeatureInfoAtCoordinate(coordinate: import("ol/coordinate").Coordinate, options: import("../../types").LayerGetFeatureInfoOptions): Promise<import("../../types").LayerGetFeatureInfoResponse>;
|
|
72
|
-
getTrajectoryInfos(id:
|
|
69
|
+
getTrajectoryInfos(id: import("../../types").RealtimeTrainId): Promise<{
|
|
73
70
|
stopSequence: import("../../api/WebSocketAPI").WebSocketAPIMessageEventData<import("../../types").RealtimeFullTrajectory> | import("../../api/WebSocketAPI").WebSocketAPIMessageEventData<import("../../types").RealtimeStopSequence[]>;
|
|
74
71
|
fullTrajectory: import("../../api/WebSocketAPI").WebSocketAPIMessageEventData<import("../../types").RealtimeFullTrajectory> | import("../../api/WebSocketAPI").WebSocketAPIMessageEventData<import("../../types").RealtimeStopSequence[]>;
|
|
75
72
|
}>;
|
|
76
73
|
purgeOutOfDateTrajectories(): void;
|
|
77
74
|
purgeTrajectory(trajectory: import("../../types").RealtimeTrajectory, extent: [number, number, number, number], zoom: number): boolean;
|
|
78
75
|
addTrajectory(trajectory: import("../../types").RealtimeTrajectory): void;
|
|
79
|
-
removeTrajectory(trajectoryOrId:
|
|
76
|
+
removeTrajectory(trajectoryOrId: import("../../types").RealtimeTrajectory | import("../../types").RealtimeTrainId): void;
|
|
80
77
|
onZoomEnd(): void;
|
|
81
78
|
onDocumentVisibilityChange(): void;
|
|
82
79
|
onTrajectoryMessage(data: import("../../api/WebSocketAPI").WebSocketAPIMessageEventData<import("../../types").RealtimeTrajectory>): void;
|
|
83
|
-
onDeleteTrajectoryMessage(data: import("../../api/WebSocketAPI").WebSocketAPIMessageEventData<
|
|
84
|
-
highlightVehicle(id:
|
|
85
|
-
selectVehicle(id:
|
|
80
|
+
onDeleteTrajectoryMessage(data: import("../../api/WebSocketAPI").WebSocketAPIMessageEventData<import("../../types").RealtimeTrainId>): void;
|
|
81
|
+
highlightVehicle(id: import("../../types").RealtimeTrainId): void;
|
|
82
|
+
selectVehicle(id: import("../../types").RealtimeTrainId): void;
|
|
86
83
|
};
|
|
87
84
|
} & typeof Layer;
|
|
88
85
|
/**
|