mobility-toolbox-js 3.0.0-beta.8 → 3.0.0-beta.9

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.
Files changed (81) hide show
  1. package/api/HttpAPI.d.ts +31 -0
  2. package/api/RealtimeAPI.d.ts +359 -0
  3. package/api/RoutingAPI.d.ts +37 -0
  4. package/api/StopsAPI.d.ts +38 -0
  5. package/api/WebSocketAPI.d.ts +153 -0
  6. package/api/index.d.ts +3 -0
  7. package/api/typedefs.d.ts +178 -0
  8. package/common/controls/StopFinderControlCommon.d.ts +53 -0
  9. package/common/index.d.ts +2 -0
  10. package/common/mixins/RealtimeLayerMixin.d.ts +273 -0
  11. package/common/styles/index.d.ts +4 -0
  12. package/common/styles/realtimeDefaultStyle.d.ts +36 -0
  13. package/common/styles/realtimeDelayStyle.d.ts +12 -0
  14. package/common/styles/realtimeHeadingStyle.d.ts +12 -0
  15. package/common/styles/realtimeSimpleStyle.d.ts +4 -0
  16. package/common/typedefs.d.ts +212 -0
  17. package/common/utils/compareDepartures.d.ts +10 -0
  18. package/common/utils/constants.d.ts +5 -0
  19. package/common/utils/createCanvas.d.ts +10 -0
  20. package/common/utils/createDefaultCopyrightElt.d.ts +5 -0
  21. package/common/utils/createDefaultStopFinderElt.d.ts +5 -0
  22. package/common/utils/createRealtimeFilters.d.ts +12 -0
  23. package/common/utils/debounceDeparturesMessages.d.ts +12 -0
  24. package/common/utils/debounceWebsocketMessages.d.ts +11 -0
  25. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  26. package/common/utils/getMapGlCopyrights.d.ts +17 -0
  27. package/common/utils/getRealtimeModeSuffix.d.ts +9 -0
  28. package/common/utils/getUrlWithParams.d.ts +8 -0
  29. package/common/utils/getVehiclePosition.d.ts +16 -0
  30. package/common/utils/index.d.ts +16 -0
  31. package/common/utils/realtimeConfig.d.ts +64 -0
  32. package/common/utils/removeDuplicate.d.ts +9 -0
  33. package/common/utils/renderTrajectories.d.ts +16 -0
  34. package/common/utils/sortAndFilterDepartures.d.ts +15 -0
  35. package/common/utils/sortByDelay.d.ts +3 -0
  36. package/common/utils/timeUtils.d.ts +23 -0
  37. package/common/utils/toMercatorExtent.d.ts +5 -0
  38. package/iife.d.ts +2 -0
  39. package/index.d.ts +9 -0
  40. package/maplibre/controls/CopyrightControl.d.ts +35 -0
  41. package/maplibre/controls/index.d.ts +1 -0
  42. package/maplibre/index.d.ts +5 -0
  43. package/maplibre/layers/Layer.d.ts +28 -0
  44. package/maplibre/layers/RealtimeLayer.d.ts +160 -0
  45. package/maplibre/layers/index.d.ts +2 -0
  46. package/maplibre/utils/getMercatorResolution.d.ts +7 -0
  47. package/maplibre/utils/getSourceCoordinates.d.ts +7 -0
  48. package/maplibre/utils/index.d.ts +2 -0
  49. package/mbt.js +32 -24
  50. package/mbt.js.map +2 -2
  51. package/mbt.min.js +1 -1
  52. package/mbt.min.js.map +3 -3
  53. package/ol/controls/CopyrightControl.d.ts +31 -0
  54. package/ol/controls/RoutingControl.d.ts +209 -0
  55. package/ol/controls/StopFinderControl.d.ts +37 -0
  56. package/ol/controls/index.d.ts +3 -0
  57. package/ol/index.d.ts +6 -0
  58. package/ol/layers/MapGlLayer.d.ts +144 -0
  59. package/ol/layers/MapGlLayer.js +3 -1
  60. package/ol/layers/MaplibreLayer.d.ts +63 -0
  61. package/ol/layers/MaplibreStyleLayer.d.ts +235 -0
  62. package/ol/layers/MaplibreStyleLayer.js +1 -1
  63. package/ol/layers/RealtimeLayer.d.ts +285 -0
  64. package/ol/layers/RealtimeLayer.js +11 -5
  65. package/ol/layers/index.d.ts +3 -0
  66. package/ol/mixins/MobilityLayerMixin.d.ts +98 -0
  67. package/ol/mixins/MobilityLayerMixin.js +1 -4
  68. package/ol/mixins/PropertiesLayerMixin.d.ts +127 -0
  69. package/ol/mixins/PropertiesLayerMixin.js +5 -4
  70. package/ol/renderers/MaplibreLayerRenderer.d.ts +20 -0
  71. package/ol/renderers/MaplibreStyleLayerRenderer.d.ts +20 -0
  72. package/ol/renderers/RealtimeLayerRenderer.d.ts +22 -0
  73. package/ol/renderers/RealtimeLayerRenderer.js +9 -9
  74. package/ol/styles/fullTrajectoryDelayStyle.d.ts +6 -0
  75. package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
  76. package/ol/styles/index.d.ts +3 -0
  77. package/ol/styles/routingStyle.d.ts +4 -0
  78. package/ol/utils/getFeatureInfoAtCoordinate.d.ts +8 -0
  79. package/ol/utils/index.d.ts +1 -0
  80. package/package.json +1 -1
  81. package/setupTests.d.ts +1 -0
@@ -0,0 +1,178 @@
1
+ export default dummy;
2
+ export type Departure = {
3
+ /**
4
+ * Timestamp in ms.
5
+ */
6
+ time: number;
7
+ no_stop_between: boolean;
8
+ train_number: number;
9
+ to: string[];
10
+ /**
11
+ * Timestamp in ms.
12
+ */
13
+ ris_aimed_time: number;
14
+ /**
15
+ * Timestamp in ms.
16
+ */
17
+ updated_at: number;
18
+ new_to: boolean;
19
+ /**
20
+ * Timestamp in ms.
21
+ */
22
+ min_arrival_time: number;
23
+ /**
24
+ * List of next stops. Like value in at_station_ds100.
25
+ */
26
+ next_stoppoints: string[];
27
+ /**
28
+ * Timestamp in ms.
29
+ */
30
+ ris_estimated_time: number;
31
+ line: NetworkLine;
32
+ /**
33
+ * if true this departure has realtime data.
34
+ */
35
+ has_fzo: boolean;
36
+ train_id: number;
37
+ platform: string;
38
+ state: any | null;
39
+ /**
40
+ * Timestamp in ms.
41
+ */
42
+ fzo_estimated_time: number;
43
+ formation: any | null;
44
+ no_stop_till: any | null;
45
+ train_type: number;
46
+ call_id: number;
47
+ /**
48
+ * Timestamp in ms.
49
+ */
50
+ created_at: string;
51
+ at_station_ds100: string;
52
+ /**
53
+ * Timestamp in ms.
54
+ */
55
+ timediff: number;
56
+ };
57
+ export type Station = GeoJSONFeature;
58
+ export type StationProperties = {
59
+ transfers: Transfer[];
60
+ elevatorOutOfOrder: boolean;
61
+ uic: number;
62
+ name: string;
63
+ networkLines: NetworkLine[];
64
+ hasElevator: boolean;
65
+ hasZOB: boolean;
66
+ hasAccessibility: boolean;
67
+ type: string;
68
+ };
69
+ export type NetworkLine = {
70
+ /**
71
+ * Identifier of the line.
72
+ */
73
+ id: number;
74
+ /**
75
+ * Color of the line (CSS color string).
76
+ */
77
+ color: string;
78
+ /**
79
+ * Stroke color of the line (CSS color string).
80
+ */
81
+ stroke: string;
82
+ /**
83
+ * Name of the line.
84
+ */
85
+ name: string;
86
+ /**
87
+ * Text color of the line (CSS color string).
88
+ */
89
+ text_color: string;
90
+ };
91
+ export type Transfer = {
92
+ /**
93
+ * Mode of transportation (ex: U-Bahn).
94
+ */
95
+ mot: string;
96
+ /**
97
+ * Array of lines name (ex: ["U4", "U5"]).
98
+ */
99
+ lines: string[];
100
+ };
101
+ export type StopSequence = GeoJSONFeature;
102
+ export type RealtimeTrajectory = GeoJSONFeature;
103
+ export type FullTrajectory = GeoJSONFeature;
104
+ export type Vehicle = GeoJSONFeature;
105
+ export type ExtraGeom = GeoJSONFeature;
106
+ /**
107
+ * @typedef {Object} Departure
108
+ * @property {number} time Timestamp in ms.
109
+ * @property {boolean} no_stop_between
110
+ * @property {number} train_number
111
+ * @property {string[]} to
112
+ * @property {number} ris_aimed_time Timestamp in ms.
113
+ * @property {number} updated_at Timestamp in ms.
114
+ * @property {boolean} new_to
115
+ * @property {number} min_arrival_time Timestamp in ms.
116
+ * @property {string[]} next_stoppoints List of next stops. Like value in at_station_ds100.
117
+ * @property {number} ris_estimated_time Timestamp in ms.
118
+ * @property {NetworkLine} line
119
+ * @property {boolean} has_fzo if true this departure has realtime data.
120
+ * @property {number} train_id
121
+ * @property {string} platform
122
+ * @property {?*} state
123
+ * @property {number} fzo_estimated_time Timestamp in ms.
124
+ * @property {?*} formation
125
+ * @property {?*} no_stop_till
126
+ * @property {number} train_type
127
+ * @property {number} call_id
128
+ * @property {string} created_at Timestamp in ms.
129
+ * @property {string} at_station_ds100
130
+ * @property {number} timediff Timestamp in ms.
131
+ *
132
+ */
133
+ /**
134
+ * @typedef {GeoJSONFeature} Station
135
+ * @property {StationProperties} properties Returns the station's properties.
136
+ * @property {GeoJSONPoint} geometry Returns a point.
137
+ */
138
+ /**
139
+ * @typedef {Object} StationProperties
140
+ * @property {Transfer[]} transfers
141
+ * @property {boolean} elevatorOutOfOrder
142
+ * @property {number} uic
143
+ * @property {string} name
144
+ * @property {NetworkLine[]} networkLines
145
+ * @property {boolean} hasElevator
146
+ * @property {boolean} hasZOB
147
+ * @property {boolean} hasAccessibility
148
+ * @property {string} type
149
+ */
150
+ /**
151
+ * @typedef {Object} NetworkLine
152
+ * @property {number} id Identifier of the line.
153
+ * @property {string} color Color of the line (CSS color string).
154
+ * @property {string} stroke Stroke color of the line (CSS color string).
155
+ * @property {string} name Name of the line.
156
+ * @property {string} text_color Text color of the line (CSS color string).
157
+ */
158
+ /**
159
+ * @typedef {Object} Transfer
160
+ * @property {string} mot Mode of transportation (ex: U-Bahn).
161
+ * @property {string[]} lines Array of lines name (ex: ["U4", "U5"]).
162
+ */
163
+ /**
164
+ * @typedef {GeoJSONFeature} StopSequence
165
+ */
166
+ /**
167
+ * @typedef {GeoJSONFeature} RealtimeTrajectory
168
+ */
169
+ /**
170
+ * @typedef {GeoJSONFeature} FullTrajectory
171
+ */
172
+ /**
173
+ * @typedef {GeoJSONFeature} Vehicle
174
+ */
175
+ /**
176
+ * @typedef {GeoJSONFeature} ExtraGeom
177
+ */
178
+ declare function dummy(): void;
@@ -0,0 +1,53 @@
1
+ import { Feature, FeatureCollection } from 'geojson';
2
+ import { StopsAPI } from '../../api';
3
+ import { StopsAPIOptions } from '../../api/StopsAPI';
4
+ import { StopsParameters } from '../../types';
5
+ export type StopFinderControlCommonOptions = StopsAPIOptions & {
6
+ element: HTMLElement;
7
+ placeholder?: string;
8
+ apiParams: StopsParameters;
9
+ onSuggestionClick?: (suggestion: Feature, evt: MouseEvent) => void;
10
+ };
11
+ /**
12
+ * A class representing a stop finder control to display on map.
13
+ * This class only draw the html elements.
14
+ * The geographic logic must be implemented by subclasses.
15
+ *
16
+ * @private
17
+ */
18
+ declare class StopFinderControlCommon {
19
+ apiParams: StopsParameters;
20
+ placeholder: string;
21
+ api: StopsAPI;
22
+ abortController?: AbortController;
23
+ suggestionsElt?: HTMLElement;
24
+ inputElt?: HTMLInputElement;
25
+ clearElt?: HTMLDivElement;
26
+ options?: StopFinderControlCommonOptions;
27
+ /**
28
+ * Constructor.
29
+ *
30
+ * @param {Object} options Options
31
+ * @param {HTMLElement} options.element HTML element where to attach input and suggestions.
32
+ * @param {string} options.apiKey Access key for [geOps services](https://developer.geops.io/). See StopsAPI.
33
+ * @param {string} [options.url='https://api.geops.io/tracker/v1'] Stops service url. See StopsAPI.
34
+ * @param {string} [options.placeholder='Search for a stop...'] Input field placeholder.
35
+ * @param {StopsSearchParams} [options.apiParams={ limit: 20 }] Request parameters. See [Stops service documentation](https://developer.geops.io/apis/5dcbd702a256d90001cf1361/).
36
+ */
37
+ constructor(options: StopFinderControlCommonOptions);
38
+ render(featureCollection?: FeatureCollection): void;
39
+ createElement({ element }: StopFinderControlCommonOptions): void;
40
+ /**
41
+ * Clear the search field and close the control.
42
+ */
43
+ clear(): void;
44
+ /**
45
+ * Launch a search.
46
+ *
47
+ * @param {String} query The query to search for.
48
+ * @param {AbortController} abortController Abort controller used to cancel the request.
49
+ * @return {Promise<Array<GeoJSONFeature>>} An array of GeoJSON features with coordinates in [EPSG:4326](http://epsg.io/4326).
50
+ */
51
+ search(q: string, abortController: AbortController): Promise<void>;
52
+ }
53
+ export default StopFinderControlCommon;
@@ -0,0 +1,2 @@
1
+ export * from "./utils";
2
+ export * from "./styles";
@@ -0,0 +1,273 @@
1
+ import GeoJSON from 'ol/format/GeoJSON';
2
+ import { EventsKey } from 'ol/events';
3
+ import { Coordinate } from 'ol/coordinate';
4
+ import { Options } from 'ol/layer/Layer';
5
+ import { RealtimeAPI } from '../../api';
6
+ import { AnyCanvas, AnyLayerClass, AnyMap, AnyRealtimeLayer, LayerGetFeatureInfoOptions, RealtimeGeneralizationLevel, RealtimeMode, RealtimeMot, RealtimeRenderState, RealtimeStyleFunction, RealtimeStyleOptions, RealtimeTenant, RealtimeTrainId, ViewState, AnyLayer, LayerGetFeatureInfoResponse } from '../../types';
7
+ import { RealtimeTrajectory } from '../../api/typedefs';
8
+ import { WebSocketAPIMessageEventData } from '../../api/WebSocketAPI';
9
+ import { FilterFunction, SortFunction } from '../typedefs';
10
+ export type RealtimeLayerMixinOptions = Options & {
11
+ debug?: boolean;
12
+ mode?: RealtimeMode;
13
+ api?: RealtimeAPI;
14
+ tenant?: RealtimeTenant;
15
+ minZoomInterpolation?: number;
16
+ isUpdateBboxOnMoveEnd?: boolean;
17
+ motsByZoom?: RealtimeMot[][];
18
+ generalizationLevelByZoom?: RealtimeGeneralizationLevel[];
19
+ renderTimeIntervalByZoom?: number[];
20
+ style?: RealtimeStyleFunction;
21
+ speed?: number;
22
+ pixelRatio?: number;
23
+ hoverVehicleId?: RealtimeTrainId;
24
+ selectedVehicleId?: RealtimeTrainId;
25
+ filter?: FilterFunction;
26
+ sort?: SortFunction;
27
+ time?: number;
28
+ live?: boolean;
29
+ canvas?: HTMLCanvasElement;
30
+ styleOptions?: RealtimeStyleOptions;
31
+ useRequestAnimationFrame?: boolean;
32
+ useDebounce?: boolean;
33
+ useThrottle?: boolean;
34
+ getMotsByZoom?: (zoom: number, motsByZoom: RealtimeMot[][]) => RealtimeMot[];
35
+ getGeneralizationLevelByZoom?: (zoom: number, generalizationLevelByZoom: RealtimeGeneralizationLevel[]) => RealtimeGeneralizationLevel;
36
+ getRenderTimeIntervalByZoom?: (zoom: number, renderTimeIntervalByZoom: number[]) => number;
37
+ onStart?: (realtimeLayer: AnyRealtimeLayer) => void;
38
+ onStop?: (realtimeLayer: AnyRealtimeLayer) => void;
39
+ url?: string;
40
+ apiKey?: string;
41
+ prefix?: string;
42
+ bbox?: (number | string)[];
43
+ buffer?: number[];
44
+ pingIntervalMs?: number;
45
+ bboxParameters?: {
46
+ [index: string]: string | number | boolean | string[] | boolean[] | number[];
47
+ };
48
+ };
49
+ /**
50
+ * RealtimeLayerInterface.
51
+ * @private
52
+ */
53
+ export declare class RealtimeLayerInterface {
54
+ /**
55
+ * Start the clock.
56
+ */
57
+ start(): void;
58
+ /**
59
+ * Stop the clock.
60
+ */
61
+ stop(): void;
62
+ /**
63
+ * Set the Realtime api's bbox.
64
+ *
65
+ * @param {Array<number>} extent Extent to request, [minX, minY, maxX, maxY].
66
+ * @param {number} zoom Zoom level to request. Must be an integer.
67
+ */
68
+ setBbox(extent: [number, number, number, number], zoom: number): void;
69
+ /**
70
+ * Render the trajectories
71
+ */
72
+ renderTrajectories(): void;
73
+ /**
74
+ * Request the stopSequence and the fullTrajectory informations for a vehicle.
75
+ *
76
+ * @param {string} id The vehicle identifier (the train_id property).
77
+ * @param {RealtimeMode} mode The mode to request. If not defined, the layer´s mode propetrty will be used.
78
+ * @return {Promise<{stopSequence: StopSequence, fullTrajectory: FullTrajectory>} A promise that will be resolved with the trajectory informations.
79
+ */
80
+ getTrajectoryInfos(id: string, mode: RealtimeMode): void;
81
+ }
82
+ /**
83
+ * Mixin for RealtimeLayerInterface.
84
+ *
85
+ * @param {Class} Base A class to extend with {RealtimeLayerInterface} functionnalities.
86
+ * @return {Class} A class that implements {RealtimeLayerInterface} class and extends Base;
87
+ * @private
88
+ */
89
+ declare function RealtimeLayerMixin<T extends AnyLayerClass>(Base: T): {
90
+ new (options: RealtimeLayerMixinOptions): {
91
+ [x: string]: any;
92
+ debug: boolean;
93
+ trajectories?: {
94
+ [key: string]: GeoJSONFeature;
95
+ } | undefined;
96
+ canvas?: AnyCanvas | undefined;
97
+ mode: RealtimeMode;
98
+ api: RealtimeAPI;
99
+ tenant: RealtimeTenant;
100
+ bboxParameters?: {
101
+ [index: string]: string | number | boolean | string[] | number[] | boolean[];
102
+ } | undefined;
103
+ time?: Date | undefined;
104
+ live?: boolean | undefined;
105
+ speed?: number | undefined;
106
+ filter?: Function | undefined;
107
+ sort?: Function | undefined;
108
+ style?: RealtimeStyleFunction | undefined;
109
+ styleOptions?: RealtimeStyleOptions | undefined;
110
+ pixelRatio?: number | undefined;
111
+ minZoomInterpolation: number;
112
+ isUpdateBboxOnMoveEnd: boolean;
113
+ hoverVehicleId?: string | undefined;
114
+ selectedVehicleId?: string | undefined;
115
+ renderState?: RealtimeRenderState | undefined;
116
+ useRequestAnimationFrame?: boolean | undefined;
117
+ useDebounce?: boolean | undefined;
118
+ useThrottle?: boolean | undefined;
119
+ mots?: RealtimeMot[] | undefined;
120
+ motsByZoom: RealtimeMot[][];
121
+ generalizationLevel?: RealtimeGeneralizationLevel | undefined;
122
+ generalizationLevelByZoom: RealtimeGeneralizationLevel[];
123
+ renderTimeIntervalByZoom: number[];
124
+ format: GeoJSON;
125
+ requestId?: number | undefined;
126
+ updateTimeInterval?: number | undefined;
127
+ updateTimeDelay?: number | undefined;
128
+ visibilityRef: EventsKey;
129
+ selectedVehicle: GeoJSONFeature;
130
+ getMotsByZoom: (zoom: number) => RealtimeMot[];
131
+ getGeneralizationLevelByZoom: (zoom: number) => RealtimeGeneralizationLevel;
132
+ getRenderTimeIntervalByZoom: (zoom: number) => number;
133
+ throttleRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
134
+ debounceRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
135
+ onStart?: ((realtimeLayer: AnyLayer) => void) | undefined;
136
+ onStop?: ((realtimeLayer: AnyLayer) => void) | undefined;
137
+ /**
138
+ * Define layer's properties.
139
+ *
140
+ * @private
141
+ */
142
+ defineProperties(options: RealtimeLayerMixinOptions): void;
143
+ attachToMap(map: AnyMap): void;
144
+ detachFromMap(): void;
145
+ start(): void;
146
+ /**
147
+ * Start the clock.
148
+ * @private
149
+ */
150
+ startUpdateTime(): void;
151
+ stop(): void;
152
+ /**
153
+ * Stop the clock.
154
+ * @private
155
+ */
156
+ stopUpdateTime(): void;
157
+ /**
158
+ * Launch renderTrajectories. it avoids duplicating code in renderTrajectories method.
159
+ *
160
+ * @param {object} viewState The view state of the map.
161
+ * @param {number[2]} viewState.center Center coordinate of the map in mercator coordinate.
162
+ * @param {number[4]} viewState.extent Extent of the map in mercator coordinates.
163
+ * @param {number[2]} viewState.size Size ([width, height]) of the canvas to render.
164
+ * @param {number} [viewState.rotation = 0] Rotation of the map to render.
165
+ * @param {number} viewState.resolution Resolution of the map to render.
166
+ * @param {boolean} noInterpolate If true trajectories are not interpolated but
167
+ * drawn at the last known coordinate. Use this for performance optimization
168
+ * during map navigation.
169
+ * @private
170
+ */
171
+ renderTrajectoriesInternal(viewState: ViewState, noInterpolate?: boolean): boolean;
172
+ /**
173
+ * Render the trajectories requesting an animation frame and cancelling the previous one.
174
+ * This function must be overrided by children to provide the correct parameters.
175
+ *
176
+ * @param {object} viewState The view state of the map.
177
+ * @param {number[2]} viewState.center Center coordinate of the map in mercator coordinate.
178
+ * @param {number[4]} viewState.extent Extent of the map in mercator coordinates.
179
+ * @param {number[2]} viewState.size Size ([width, height]) of the canvas to render.
180
+ * @param {number} [viewState.rotation = 0] Rotation of the map to render.
181
+ * @param {number} viewState.resolution Resolution of the map to render.
182
+ * @param {boolean} noInterpolate If true trajectories are not interpolated but
183
+ * drawn at the last known coordinate. Use this for performance optimization
184
+ * during map navigation.
185
+ * @private
186
+ */
187
+ renderTrajectories(viewState: ViewState | undefined, noInterpolate: boolean | undefined): void;
188
+ setBbox(extent: [number, number, number, number], zoom: number): void;
189
+ /**
190
+ * Get the duration before the next update depending on zoom level.
191
+ *
192
+ * @private
193
+ * @param {number} zoom
194
+ */
195
+ getRefreshTimeInMs(zoom?: number | undefined): number;
196
+ /**
197
+ * Get vehicle.
198
+ * @param {function} filterFc A function use to filter results.
199
+ * @return {Array<Object>} Array of vehicle.
200
+ */
201
+ getVehicle(filterFc: FilterFunction): GeoJSONFeature[];
202
+ /**
203
+ * Request feature information for a given coordinate.
204
+ *
205
+ * @param {ol/coordinate~Coordinate} coordinate Coordinate.
206
+ * @param {Object} options Options See child classes to see which options are supported.
207
+ * @param {number} [options.resolution=1] The resolution of the map.
208
+ * @param {number} [options.nb=Infinity] The max number of vehicles to return.
209
+ * @return {Promise<FeatureInfo>} Promise with features, layer and coordinate.
210
+ */
211
+ getFeatureInfoAtCoordinate(coordinate: Coordinate, options: LayerGetFeatureInfoOptions): Promise<LayerGetFeatureInfoResponse>;
212
+ /**
213
+ * Request the stopSequence and the fullTrajectory informations for a vehicle.
214
+ *
215
+ * @param {string} id The vehicle identifier (the train_id property).
216
+ * @return {Promise<{stopSequence: StopSequence, fullTrajectory: FullTrajectory>} A promise that will be resolved with the trajectory informations.
217
+ */
218
+ getTrajectoryInfos(id: RealtimeTrainId): Promise<{
219
+ stopSequence: WebSocketAPIMessageEventData<import("../../types").RealtimeFullTrajectory> | WebSocketAPIMessageEventData<GeoJSONFeature[]>;
220
+ fullTrajectory: WebSocketAPIMessageEventData<import("../../types").RealtimeFullTrajectory> | WebSocketAPIMessageEventData<GeoJSONFeature[]>;
221
+ }>;
222
+ /**
223
+ * Remove all trajectories that are in the past.
224
+ */
225
+ purgeOutOfDateTrajectories(): void;
226
+ /**
227
+ * Determine if the trajectory is useless and should be removed from the list or not.
228
+ * By default, this function exclude vehicles:
229
+ * - that have their trajectory outside the current extent and
230
+ * - that aren't in the MOT list.
231
+ *
232
+ * @param {RealtimeTrajectory} trajectory
233
+ * @param {Array<number>} extent
234
+ * @param {number} zoom
235
+ * @return {boolean} if the trajectory must be displayed or not.
236
+ * @private
237
+ */
238
+ purgeTrajectory(trajectory: GeoJSONFeature, extent: [number, number, number, number], zoom: number): boolean;
239
+ /**
240
+ * Add a trajectory.
241
+ * @param {RealtimeTrajectory} trajectory The trajectory to add.
242
+ * @private
243
+ */
244
+ addTrajectory(trajectory: GeoJSONFeature): void;
245
+ removeTrajectory(trajectoryOrId: RealtimeTrajectory | RealtimeTrainId): void;
246
+ /**
247
+ * On zoomend we adjust the time interval of the update of vehicles positions.
248
+ *
249
+ * @param evt Event that triggered the function.
250
+ * @private
251
+ */
252
+ onZoomEnd(): void;
253
+ onDocumentVisibilityChange(): void;
254
+ /**
255
+ * Callback on websocket's trajectory channel events.
256
+ * It adds a trajectory to the list.
257
+ *
258
+ * @private
259
+ */
260
+ onTrajectoryMessage(data: WebSocketAPIMessageEventData<RealtimeTrajectory>): void;
261
+ /**
262
+ * Callback on websocket's deleted_vehicles channel events.
263
+ * It removes the trajectory from the list.
264
+ *
265
+ * @private
266
+ * @override
267
+ */
268
+ onDeleteTrajectoryMessage(data: WebSocketAPIMessageEventData<RealtimeTrainId>): void;
269
+ highlightVehicle(id: RealtimeTrainId): void;
270
+ selectVehicle(id: RealtimeTrainId): void;
271
+ };
272
+ } & T;
273
+ export default RealtimeLayerMixin;
@@ -0,0 +1,4 @@
1
+ export { default as realtimeDefaultStyle } from "./realtimeDefaultStyle";
2
+ export { default as realtimeDelayStyle } from "./realtimeDelayStyle";
3
+ export { default as realtimeSimpleStyle } from "./realtimeSimpleStyle";
4
+ export * from "./realtimeDefaultStyle";
@@ -0,0 +1,36 @@
1
+ import type { RealtimeStyleFunction } from '../../types';
2
+ /**
3
+ * Draw circle delay background
4
+ *
5
+ * @private
6
+ */
7
+ export declare const getDelayBgCanvas: (origin: number, radius: number, color: string) => import("../../types").AnyCanvas | null;
8
+ /**
9
+ * Draw delay text
10
+ *
11
+ * @private
12
+ */
13
+ export declare const getDelayTextCanvas: (text: string, fontSize: number, font: string, delayColor: string, delayOutlineColor?: string, pixelRatio?: number) => import("../../types").AnyCanvas | null;
14
+ /**
15
+ * Draw colored circle with black border
16
+ *
17
+ * @private
18
+ */
19
+ export declare const getCircleCanvas: (origin: number, radius: number, color: string, hasStroke: boolean, hasDash: boolean, pixelRatio: number) => import("../../types").AnyCanvas | null;
20
+ /**
21
+ * Draw text in the circle
22
+ *
23
+ * @private
24
+ */
25
+ export declare const getTextCanvas: (text: string, origin: number, textSize: number, fillColor: string, strokeColor: string, hasStroke: boolean, pixelRatio: number, getTextFont: (fontSize: number, text?: string) => string) => import("../../types").AnyCanvas | null;
26
+ /**
27
+ * A tracker style that take in account the delay.
28
+ *
29
+ * @param {RealtimeTrajectory} trajectory The trajectory to render.
30
+ * @param {ViewState} viewState The view state of the map.
31
+ * @param {RealtimeStyleOptions} options Some options to change the rendering
32
+ * @return a canvas
33
+ * @private
34
+ */
35
+ declare const realtimeDefaultStyle: RealtimeStyleFunction;
36
+ export default realtimeDefaultStyle;
@@ -0,0 +1,12 @@
1
+ import type { RealtimeStyleFunction } from '../../types';
2
+ /**
3
+ * A tracker style that display the delay as backgroundColor.
4
+ *
5
+ * @param {*} trajectory The trajectory to render.
6
+ * @param {*} viewState The view state of the map.
7
+ * @param {*} options Some options to change the rendering
8
+ * @return a canvas
9
+ * @private
10
+ */
11
+ declare const realtimeDelayStyle: RealtimeStyleFunction;
12
+ export default realtimeDelayStyle;
@@ -0,0 +1,12 @@
1
+ import type { RealtimeStyleFunction } from '../../types';
2
+ /**
3
+ * A tracker style that take in account the delay.
4
+ *
5
+ * @param {RealtimeTrajectory} trajectory The trajectory to render.
6
+ * @param {ViewState} viewState The view state of the map.
7
+ * @param {RealtimeStyleOptions} options Some options to change the rendering
8
+ * @return a canvas
9
+ * @private
10
+ */
11
+ declare const realtimeHeadingStyle: RealtimeStyleFunction;
12
+ export default realtimeHeadingStyle;
@@ -0,0 +1,4 @@
1
+ import type { RealtimeStyleFunction } from '../../types';
2
+ /** @private */
3
+ declare const realtimeSimpleStyle: RealtimeStyleFunction;
4
+ export default realtimeSimpleStyle;