mobility-toolbox-js 2.0.0-beta.66 → 2.0.0-beta.68

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.
@@ -1,5 +1,5 @@
1
1
  import WebSocketAPI, { WebSocketAPIMessageCallback, WebSocketAPIMessageEventData } from '../common/api/WebSocketAPI';
2
- import { RealtimeMode, RealtimeDeparture, RealtimeNews, RealtimeStation, RealtimeExtraGeom, RealtimeTrainId, RealtimeGeneralizationLevel, RealtimeFullTrajectory, RealtimeTrajectoryResponse, RealtimeStationId } from '../types';
2
+ import type { RealtimeMode, RealtimeDeparture, RealtimeNews, RealtimeStation, RealtimeExtraGeom, RealtimeTrainId, RealtimeGeneralizationLevel, RealtimeFullTrajectory, RealtimeTrajectoryResponse, RealtimeStationId } from '../types';
3
3
  import { StopSequence } from './typedefs';
4
4
  export declare type RealtimeAPIOptions = {
5
5
  url?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"RealtimeAPI.d.ts","sourceRoot":"","sources":["../../src/api/RealtimeAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RealtimeAPI.d.ts","sourceRoot":"","sources":["../../src/api/RealtimeAPI.ts"],"names":[],"mappings":"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"}
@@ -135,7 +135,6 @@ class RealtimeAPI {
135
135
  });
136
136
  }
137
137
  open() {
138
- this.close();
139
138
  // Register BBOX and PROJECTION messages must be send before previous subscriptions.
140
139
  this.wsApi.connect(this.url, this.onOpen);
141
140
  // Register reconnection on close.
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketAPI.d.ts","sourceRoot":"","sources":["../../../src/common/api/WebSocketAPI.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebSocketAPI.d.ts","sourceRoot":"","sources":["../../../src/common/api/WebSocketAPI.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ class WebSocketAPI {
10
10
  defineProperties() {
11
11
  Object.defineProperties(this, {
12
12
  closed: {
13
- get: () => !!(this.websocket &&
13
+ get: () => !!(!this.websocket ||
14
14
  this.websocket.readyState === this.websocket.CLOSED),
15
15
  },
16
16
  closing: {
@@ -79,7 +79,12 @@ class WebSocketAPI {
79
79
  */
80
80
  connect(url, onOpen = () => { }) {
81
81
  if (this.websocket && !this.closed) {
82
- this.websocket.close();
82
+ if (!this.closing && this.websocket.url !== url) {
83
+ this.websocket.close();
84
+ }
85
+ else if (this.connecting) {
86
+ return;
87
+ }
83
88
  }
84
89
  /** @ignore */
85
90
  this.websocket = new WebSocket(url);
@@ -100,10 +105,12 @@ class WebSocketAPI {
100
105
  * @private
101
106
  */
102
107
  close() {
103
- if (this.websocket) {
104
- this.websocket.onclose = null;
108
+ if (this.websocket && (this.open || this.connecting)) {
109
+ this.websocket.onclose = () => {
110
+ // We set the ws to undefined here to wait that the ws is properly closed.
111
+ this.websocket = undefined;
112
+ };
105
113
  this.websocket.close();
106
- this.websocket = undefined;
107
114
  this.messagesOnOpen = [];
108
115
  }
109
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RealtimeLayerMixin.d.ts","sourceRoot":"","sources":["../../../src/common/mixins/RealtimeLayerMixin.ts"],"names":[],"mappings":"AAOA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAIxC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,EAAE,WAAW,EAAiB,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,SAAS,EACT,aAAa,EACb,MAAM,EACN,gBAAgB,EAChB,0BAA0B,EAC1B,2BAA2B,EAC3B,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,oBAAY,yBAAyB,GAAG,cAAc,GAAG;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,UAAU,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;IAC7B,yBAAyB,CAAC,EAAE,2BAA2B,EAAE,CAAC;IAC1D,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,iBAAiB,CAAC,EAAE,eAAe,CAAC;IACpC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,KAAK,WAAW,EAAE,CAAC;IAC5E,4BAA4B,CAAC,EAAE,CAC7B,IAAI,EAAE,MAAM,EACZ,yBAAyB,EAAE,2BAA2B,EAAE,KACrD,2BAA2B,CAAC;IACjC,2BAA2B,CAAC,EAAE,CAC5B,IAAI,EAAE,MAAM,EACZ,wBAAwB,EAAE,MAAM,EAAE,KAC/B,MAAM,CAAC;IAGZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,KAAK;IAEL;;OAEG;IACH,IAAI;IAEJ;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM;IAE9D;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,YAAY;IAE1B;;OAEG;IACH,kBAAkB;IAElB;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;CAClD;AAED;;;;;;GAMG;AACH,iBAAS,kBAAkB,CAAC,CAAC,SAAS,aAAa,EAAE,IAAI,EAAE,CAAC;kBAqFnC,yBAAyB;;eAlFvC,OAAO;;;;;cAMR,YAAY;aAEb,WAAW;gBAER,cAAc;;;;;;;;;8BAkBA,MAAM;+BAEL,OAAO;;;;;;;;oBAgBlB,WAAW,EAAE,EAAE;;mCAIA,2BAA2B,EAAE;kCAE9B,MAAM,EAAE;gBAE1B,OAAO;;;;uBAQC,SAAS;;8BAIH,MAAM,KAAK,WAAW,EAAE;6CAET,MAAM,KAAK,2BAA2B;4CAEvC,MAAM,KAAK,MAAM;gDAGxC,SAAS,kBACJ,OAAO,KACpB,IAAI;gDAGI,SAAS,kBACJ,OAAO,KACpB,IAAI;QAmGT;;;;WAIG;kCACuB,yBAAyB;yBAkLlC,MAAM;;;QA0EvB;;;WAGG;;;QAsBH;;;WAGG;;QAQH;;;;;;;;;;;;;WAaG;8CAEU,SAAS,kBACL,OAAO;QA8CxB;;;;;;;;;;;;;;WAcG;sCAEU,SAAS,GAAG,SAAS,iBACjB,OAAO,GAAG,SAAS;yBAwBnB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,MAAM;sBAyClD,YAAY;QAmB1B;;;;;WAKG;kCACsB,MAAM,GAAG,SAAS,GAAO,MAAM;QA0BxD;;;;WAIG;6BACkB,cAAc;QASnC;;;;;;;;WAQG;oEAGQ,0BAA0B;;;;;QAkCrC;;;;;WAKG;+BACoB,eAAe;;;;QAiBtC;;WAEG;;QAaH;;;;;;;;;;;WAWG;4DAGO,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,QAClC,MAAM;QAed;;;;WAIG;;yCAa8B,kBAAkB,GAAG,eAAe;QAYrE;;;;;WAKG;;;QAqBH;;;;;WAKG;kCAEK,6BAA6B,kBAAkB,CAAC;QAgDxD;;;;;;WAMG;wCAEK,6BAA6B,eAAe,CAAC;QAQrD;;;;;;WAMG;iCAES,OAAO,EAAE,SACZ,gBAAgB;QAgBzB;;;;;;WAMG;iCAES,OAAO,EAAE,SACZ,gBAAgB;;MAkB5B;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"RealtimeLayerMixin.d.ts","sourceRoot":"","sources":["../../../src/common/mixins/RealtimeLayerMixin.ts"],"names":[],"mappings":"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"}
@@ -81,8 +81,26 @@ function RealtimeLayerMixin(Base) {
81
81
  'funicular',
82
82
  'coach',
83
83
  ];
84
+ const onlyRail = ['rail'];
85
+ const withoutCable = ['tram', 'subway', 'rail', 'bus'];
84
86
  // Server will block non train before zoom 9
85
- this.motsByZoom = options.motsByZoom || [allMots];
87
+ this.motsByZoom = options.motsByZoom || [
88
+ onlyRail,
89
+ onlyRail,
90
+ onlyRail,
91
+ onlyRail,
92
+ onlyRail,
93
+ onlyRail,
94
+ onlyRail,
95
+ onlyRail,
96
+ onlyRail,
97
+ withoutCable,
98
+ withoutCable,
99
+ allMots,
100
+ allMots,
101
+ allMots,
102
+ allMots,
103
+ ];
86
104
  this.getMotsByZoom = (zoom) => {
87
105
  return ((options.getMotsByZoom &&
88
106
  options.getMotsByZoom(zoom, this.motsByZoom)) ||
@@ -590,9 +608,7 @@ function RealtimeLayerMixin(Base) {
590
608
  purgeTrajectory(trajectory, extent, zoom) {
591
609
  const { type, bounds } = trajectory.properties;
592
610
  if (!intersects(extent, bounds) ||
593
- (this.mots && !this.mots.includes(type)) ||
594
- (type !== 'rail' && zoom < 9) // zoom 9 is defined by the backend
595
- ) {
611
+ (this.mots && !this.mots.includes(type))) {
596
612
  this.removeTrajectory(trajectory);
597
613
  return true;
598
614
  }
@@ -10,7 +10,7 @@ export declare const getDelayBgCanvas: (origin: number, radius: number, color: s
10
10
  *
11
11
  * @private
12
12
  */
13
- export declare const getDelayTextCanvas: (width: number, text: string, fontSize: number, font: string, delayColor: string, delayOutlineColor?: string, pixelRatio?: number) => import("../../types").AnyCanvas | null;
13
+ export declare const getDelayTextCanvas: (text: string, fontSize: number, font: string, delayColor: string, delayOutlineColor?: string, pixelRatio?: number) => import("../../types").AnyCanvas | null;
14
14
  /**
15
15
  * Draw colored circle with black border
16
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"realtimeDefaultStyle.d.ts","sourceRoot":"","sources":["../../../src/common/styles/realtimeDefaultStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAMrB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WACnB,MAAM,UACN,MAAM,SACP,MAAM,2CAmBd,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UACtB,MAAM,QACP,MAAM,YACF,MAAM,QACV,MAAM,cACA,MAAM,sBACC,MAAM,eACb,MAAM,2CAuBnB,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAClB,MAAM,UACN,MAAM,SACP,MAAM,aACF,OAAO,WACT,OAAO,cACJ,MAAM,2CAiCnB,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,aAAa,SAClB,MAAM,UACJ,MAAM,YACJ,MAAM,aACL,MAAM,eACJ,MAAM,aACR,OAAO,cACN,MAAM,2CAmCnB,CAAC;AAKF;;;;;;;GAOG;AACH,QAAA,MAAM,oBAAoB,EAAE,qBAiN3B,CAAC;AACF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"realtimeDefaultStyle.d.ts","sourceRoot":"","sources":["../../../src/common/styles/realtimeDefaultStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAMrB;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,WACnB,MAAM,UACN,MAAM,SACP,MAAM,2CAmBd,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,SACvB,MAAM,YACF,MAAM,QACV,MAAM,cACA,MAAM,sBACC,MAAM,eACb,MAAM,2CA0BnB,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAClB,MAAM,UACN,MAAM,SACP,MAAM,aACF,OAAO,WACT,OAAO,cACJ,MAAM,2CAiCnB,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,aAAa,SAClB,MAAM,UACJ,MAAM,YACJ,MAAM,aACL,MAAM,eACJ,MAAM,aACR,OAAO,cACN,MAAM,2CAmCnB,CAAC;AAKF;;;;;;;GAOG;AACH,QAAA,MAAM,oBAAoB,EAAE,qBA0N3B,CAAC;AACF,eAAe,oBAAoB,CAAC"}
@@ -32,24 +32,24 @@ const cacheDelayText = {};
32
32
  *
33
33
  * @private
34
34
  */
35
- export const getDelayTextCanvas = (width, text, fontSize, font, delayColor, delayOutlineColor = '#000', pixelRatio = 1) => {
36
- const key = `${width}, ${text}, ${font}, ${delayColor}, ${delayOutlineColor}, ${pixelRatio}`;
35
+ export const getDelayTextCanvas = (text, fontSize, font, delayColor, delayOutlineColor = '#000', pixelRatio = 1) => {
36
+ const key = `${text}, ${font}, ${delayColor}, ${delayOutlineColor}, ${pixelRatio}`;
37
37
  if (!cacheDelayText[key]) {
38
- const canvas = createCanvas(width, fontSize + 8 * pixelRatio);
38
+ const canvas = createCanvas(Math.ceil(text.length * fontSize), Math.ceil(fontSize + 8 * pixelRatio));
39
39
  if (canvas) {
40
40
  const ctx = canvas.getContext('2d');
41
41
  if (!ctx) {
42
42
  return null;
43
43
  }
44
+ ctx.font = font;
44
45
  ctx.textAlign = 'left';
45
46
  ctx.textBaseline = 'middle';
46
47
  ctx.font = font;
47
48
  ctx.fillStyle = delayColor;
48
49
  ctx.strokeStyle = delayOutlineColor;
49
50
  ctx.lineWidth = 1.5 * pixelRatio;
50
- const delayText = text;
51
- ctx.strokeText(delayText, 0, fontSize);
52
- ctx.fillText(delayText, 0, fontSize);
51
+ ctx.strokeText(text, 0, fontSize);
52
+ ctx.fillText(text, 0, fontSize);
53
53
  cacheDelayText[key] = canvas;
54
54
  }
55
55
  }
@@ -191,67 +191,75 @@ const realtimeDefaultStyle = (trajectory, viewState, options) => {
191
191
  const margin = 1 * pixelRatio;
192
192
  const radiusDelay = radius + 2;
193
193
  const markerSize = radius * 2;
194
- const size = radiusDelay * 2 + margin * 2 + 100 * pixelRatio; // add space for delay information
194
+ const size = radiusDelay * 2 + margin * 2;
195
195
  const origin = size / 2;
196
+ // Draw circle delay background
197
+ let delayBg = null;
198
+ if (isDisplayStrokeAndDelay && delay !== null) {
199
+ delayBg = getDelayBgCanvas(origin, radiusDelay, getDelayColor(delay, cancelled));
200
+ }
201
+ // Show delay if feature is hovered or if delay is above 5mins.
202
+ let delayText = null;
203
+ let fontSize = 0;
204
+ if (isDisplayStrokeAndDelay &&
205
+ (hover || (delay || 0) >= delayDisplay || cancelled)) {
206
+ // Draw delay text
207
+ fontSize =
208
+ Math.max(cancelled ? 19 : 14, Math.min(cancelled ? 19 : 17, radius * 1.2)) * pixelRatio;
209
+ const text = getDelayText(delay, cancelled);
210
+ if (text) {
211
+ delayText = getDelayTextCanvas(text, fontSize, `bold ${fontSize}px arial, sans-serif`, getDelayColor(delay, cancelled, true), delayOutlineColor, pixelRatio);
212
+ }
213
+ }
214
+ // Draw colored circle with black border
215
+ let circleFillColor;
216
+ if (useDelayStyle) {
217
+ circleFillColor = getDelayColor(delay, cancelled);
218
+ }
219
+ else {
220
+ circleFillColor = color || getBgColor(type);
221
+ }
222
+ const hasStroke = isDisplayStrokeAndDelay || hover || selected;
223
+ const hasDash = !!isDisplayStrokeAndDelay &&
224
+ !!useDelayStyle &&
225
+ delay === null &&
226
+ operatorProvidesRealtime === 'yes';
227
+ const circle = getCircleCanvas(origin, radius, circleFillColor, hasStroke, hasDash, pixelRatio);
196
228
  // Create the canvas
197
- const canvas = createCanvas(size, size);
229
+ const width = size + ((delayText === null || delayText === void 0 ? void 0 : delayText.width) || 0) * 2;
230
+ const height = size;
231
+ const canvas = createCanvas(width, height);
198
232
  if (canvas) {
199
233
  const ctx = canvas.getContext('2d');
200
234
  if (!ctx) {
201
235
  return null;
202
236
  }
203
- if (isDisplayStrokeAndDelay && delay !== null) {
204
- // Draw circle delay background
205
- const delayBg = getDelayBgCanvas(origin, radiusDelay, getDelayColor(delay, cancelled));
206
- if (delayBg) {
207
- ctx.drawImage(delayBg, 0, 0);
208
- }
237
+ // The renderTrajectories will center the image on the vehicle positions.
238
+ const originX = (delayText === null || delayText === void 0 ? void 0 : delayText.width) || 0;
239
+ if (delayBg) {
240
+ ctx.drawImage(delayBg, originX, 0);
209
241
  }
210
- // Show delay if feature is hovered or if delay is above 5mins.
211
- if (isDisplayStrokeAndDelay &&
212
- (hover || (delay || 0) >= delayDisplay || cancelled)) {
213
- // Draw delay text
214
- const fontSize = Math.max(cancelled ? 19 : 14, Math.min(cancelled ? 19 : 17, radius * 1.2)) * pixelRatio;
215
- const text = getDelayText(delay, cancelled);
216
- if (text) {
217
- const textWidth = text.length * fontSize;
218
- const delayText = getDelayTextCanvas(textWidth, text, fontSize, `bold ${fontSize}px arial, sans-serif`, getDelayColor(delay, cancelled, true), delayOutlineColor, pixelRatio);
219
- if (delayText) {
220
- ctx.drawImage(delayText, origin + radiusDelay + margin, origin - fontSize);
221
- }
222
- }
223
- }
224
- // Draw colored circle with black border
225
- let circleFillColor;
226
- if (useDelayStyle) {
227
- circleFillColor = getDelayColor(delay, cancelled);
228
- }
229
- else {
230
- circleFillColor = color || getBgColor(type);
231
- }
232
- const hasStroke = isDisplayStrokeAndDelay || hover || selected;
233
- const hasDash = !!isDisplayStrokeAndDelay &&
234
- !!useDelayStyle &&
235
- delay === null &&
236
- operatorProvidesRealtime === 'yes';
237
- const circle = getCircleCanvas(origin, radius, circleFillColor, hasStroke, hasDash, pixelRatio);
238
242
  if (circle) {
239
- ctx.drawImage(circle, 0, 0);
243
+ ctx.drawImage(circle, originX, 0);
240
244
  }
241
245
  // Draw text in the circle
242
- if (isDisplayText && ctx) {
243
- const fontSize = Math.max(radius, 10);
244
- const textSize = getTextSize(ctx, markerSize, name, fontSize);
246
+ let circleText = null;
247
+ if (isDisplayText) {
248
+ const fontSize2 = Math.max(radius, 10);
249
+ const textSize = getTextSize(ctx, markerSize, name, fontSize2);
245
250
  const textColor2 = !useDelayStyle
246
251
  ? textColor || getTextColor(type)
247
252
  : '#000000';
248
253
  const hasStroke2 = !!useDelayStyle &&
249
254
  delay === null &&
250
255
  operatorProvidesRealtime === 'yes';
251
- const text = getTextCanvas(name, origin, textSize, textColor2, circleFillColor, hasStroke2, pixelRatio);
252
- if (text) {
253
- ctx.drawImage(text, 0, 0);
254
- }
256
+ circleText = getTextCanvas(name, origin, textSize, textColor2, circleFillColor, hasStroke2, pixelRatio);
257
+ }
258
+ if (circleText) {
259
+ ctx.drawImage(circleText, originX, 0);
260
+ }
261
+ if (delayText) {
262
+ ctx.drawImage(delayText, originX + Math.ceil(origin + radiusDelay) + margin, Math.ceil(origin - fontSize));
255
263
  }
256
264
  cache[key] = canvas;
257
265
  }
@@ -1 +1 @@
1
- {"version":3,"file":"renderTrajectories.d.ts","sourceRoot":"","sources":["../../../src/common/utils/renderTrajectories.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,kBAAkB,WACd,SAAS,gBACH,oBAAoB,SAC3B,qBAAqB,aACjB,SAAS,WACX,oBAAoB,KAC5B,mBAmLF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"renderTrajectories.d.ts","sourceRoot":"","sources":["../../../src/common/utils/renderTrajectories.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,kBAAkB,WACd,SAAS,gBACH,oBAAoB,SAC3B,qBAAqB,aACjB,SAAS,WACX,oBAAoB,KAC5B,mBA+JF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1,4 +1,3 @@
1
- /* eslint-disable no-param-reassign */
2
1
  import { compose, apply, create } from 'ol/transform';
3
2
  import getVehiclePosition from './getVehiclePosition';
4
3
  /**
@@ -22,7 +21,9 @@ const renderTrajectories = (canvas, trajectories, style, viewState, options) =>
22
21
  if (!resolution || !center) {
23
22
  return { renderedTrajectories: [] };
24
23
  }
25
- const { noInterpolate = false, hoverVehicleId, selectedVehicleId, filter, } = options;
24
+ const { noInterpolate = false, hoverVehicleId, selectedVehicleId, filter, getScreenPixel = (pixel, viewStat) => (viewStat.zoom || 0) < 12
25
+ ? pixel.map((coord) => Math.floor(coord))
26
+ : pixel, } = options;
26
27
  const context = canvas.getContext('2d');
27
28
  context === null || context === void 0 ? void 0 : context.clearRect(0, 0, canvas.width, canvas.height);
28
29
  const [width, height] = size;
@@ -37,12 +38,8 @@ const renderTrajectories = (canvas, trajectories, style, viewState, options) =>
37
38
  }
38
39
  let hoverVehicleImg;
39
40
  let hoverVehiclePx;
40
- let hoverVehicleWidth;
41
- let hoverVehicleHeight;
42
41
  let selectedVehicleImg;
43
42
  let selectedVehiclePx;
44
- let selectedVehicleWidth;
45
- let selectedVehicleHeight;
46
43
  const renderedTrajectories = [];
47
44
  for (let i = trajectories.length - 1; i >= 0; i -= 1) {
48
45
  const trajectory = trajectories[i];
@@ -81,38 +78,30 @@ const renderTrajectories = (canvas, trajectories, style, viewState, options) =>
81
78
  // eslint-disable-next-line no-continue
82
79
  continue;
83
80
  }
84
- const imgWidth = vehicleImg.width;
85
- const imgHeight = vehicleImg.height;
86
81
  if (hoverVehicleId !== id && selectedVehicleId !== id) {
87
- context === null || context === void 0 ? void 0 : context.drawImage(vehicleImg, px[0] - imgWidth / 2, px[1] - imgHeight / 2, imgWidth, imgHeight);
82
+ // To optimize the performance we use integer as pixel coordinate
83
+ // to avoid an additional work by the browser on zoom level < 12.
84
+ // See https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Optimizing_canvas?retiredLocale=de#avoid_floating-point_coordinates_and_use_integers_instead
85
+ const [x, y] = getScreenPixel([px[0] - vehicleImg.width / 2, px[1] - vehicleImg.height / 2], viewState);
86
+ context === null || context === void 0 ? void 0 : context.drawImage(vehicleImg, x, y);
88
87
  }
89
88
  if (hoverVehicleId && hoverVehicleId === id) {
90
89
  // Store the canvas to draw it at the end
91
90
  hoverVehicleImg = vehicleImg;
92
91
  hoverVehiclePx = px;
93
- hoverVehicleWidth = imgWidth;
94
- hoverVehicleHeight = imgHeight;
95
92
  }
96
93
  if (selectedVehicleId && selectedVehicleId === id) {
97
94
  // Store the canvas to draw it at the end
98
95
  selectedVehicleImg = vehicleImg;
99
96
  selectedVehiclePx = px;
100
- selectedVehicleWidth = imgWidth;
101
- selectedVehicleHeight = imgHeight;
102
97
  }
103
98
  renderedTrajectories.push(trajectory);
104
99
  }
105
- if (selectedVehicleImg &&
106
- selectedVehiclePx &&
107
- selectedVehicleWidth &&
108
- selectedVehicleHeight) {
109
- context === null || context === void 0 ? void 0 : context.drawImage(selectedVehicleImg, selectedVehiclePx[0] - selectedVehicleWidth / 2, selectedVehiclePx[1] - selectedVehicleHeight / 2, selectedVehicleWidth, selectedVehicleHeight);
100
+ if (selectedVehicleImg && selectedVehiclePx) {
101
+ context === null || context === void 0 ? void 0 : context.drawImage(selectedVehicleImg, Math.floor(selectedVehiclePx[0] - selectedVehicleImg.width / 2), Math.floor(selectedVehiclePx[1] - selectedVehicleImg.height / 2));
110
102
  }
111
- if (hoverVehicleImg &&
112
- hoverVehiclePx &&
113
- hoverVehicleWidth &&
114
- hoverVehicleHeight) {
115
- context === null || context === void 0 ? void 0 : context.drawImage(hoverVehicleImg, hoverVehiclePx[0] - hoverVehicleWidth / 2, hoverVehiclePx[1] - hoverVehicleHeight / 2, hoverVehicleWidth, hoverVehicleHeight);
103
+ if (hoverVehicleImg && hoverVehiclePx) {
104
+ context === null || context === void 0 ? void 0 : context.drawImage(hoverVehicleImg, Math.floor(hoverVehiclePx[0] - hoverVehicleImg.width / 2), Math.floor(hoverVehiclePx[1] - hoverVehicleImg.height / 2));
116
105
  }
117
106
  return {
118
107
  renderedTrajectories,
@@ -179,7 +179,7 @@ class RealtimeLayer extends mixin(Layer) {
179
179
  center: fromLonLat([center.lng, center.lat]),
180
180
  extent: bounds,
181
181
  resolution: res,
182
- zoom: this.map.getZoom(),
182
+ zoom: this.getOlZoom(),
183
183
  rotation: -(this.map.getBearing() * Math.PI) / 180,
184
184
  pixelRatio: this.pixelRatio,
185
185
  };
@@ -215,7 +215,7 @@ class RealtimeLayer extends mixin(Layer) {
215
215
  * @private
216
216
  */
217
217
  purgeTrajectory(trajectory, extent, zoom) {
218
- return super.purgeTrajectory(trajectory, extent || this.getMercatorExtent(), zoom || Math.floor(this.map.getZoom() + 1));
218
+ return super.purgeTrajectory(trajectory, extent || this.getMercatorExtent(), zoom || Math.floor(this.getOlZoom()));
219
219
  }
220
220
  /**
221
221
  * Send the current bbox to the websocket