mobility-toolbox-js 2.0.0-beta.75 → 2.0.0-beta.76
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/common/api/WebSocketAPI.js +1 -1
- package/common/mixins/RealtimeLayerMixin.d.ts +3 -3
- package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -1
- package/common/mixins/RealtimeLayerMixin.js +1 -1
- package/common/styles/realtimeHeadingStyle.d.ts +12 -0
- package/common/styles/realtimeHeadingStyle.d.ts.map +1 -0
- package/common/styles/realtimeHeadingStyle.js +85 -0
- package/mbt.js +1 -1
- package/mbt.js.map +2 -2
- package/mbt.min.js +1 -1
- package/mbt.min.js.map +2 -2
- package/ol/layers/RealtimeLayer.d.ts +1 -0
- package/ol/layers/RealtimeLayer.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -47,7 +47,7 @@ export declare type RealtimeLayerMixinOptions = OlLayerOptions & {
|
|
|
47
47
|
/**
|
|
48
48
|
* RealtimeLayerInterface.
|
|
49
49
|
*/
|
|
50
|
-
export declare class
|
|
50
|
+
export declare class RealtimeLayerInterface {
|
|
51
51
|
/**
|
|
52
52
|
* Start the clock.
|
|
53
53
|
*/
|
|
@@ -97,8 +97,8 @@ declare function RealtimeLayerMixin<T extends AnyLayerClass>(Base: T): {
|
|
|
97
97
|
time?: Date | undefined;
|
|
98
98
|
live?: boolean | undefined;
|
|
99
99
|
speed?: number | undefined;
|
|
100
|
-
filter?:
|
|
101
|
-
sort?:
|
|
100
|
+
filter?: Function | undefined;
|
|
101
|
+
sort?: Function | undefined;
|
|
102
102
|
style?: RealtimeStyleFunction | undefined;
|
|
103
103
|
styleOptions?: RealtimeStyleOptions | undefined;
|
|
104
104
|
pixelRatio?: number | undefined;
|
|
@@ -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,EACT,QAAQ,EACT,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;IACZ,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpD,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAGnD,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,
|
|
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,EACT,QAAQ,EACT,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;IACZ,OAAO,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACpD,MAAM,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAGnD,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;;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;kBAyFnC,yBAAyB;;eAtFvC,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;mCAEiB,QAAQ,KAAK,IAAI;kCAElB,QAAQ,KAAK,IAAI;QAwH1C;;;;WAIG;kCACuB,yBAAyB;yBAqMlC,MAAM;;;QAgFvB;;;WAGG;;;QAyBH;;;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;QAyChE;;;;;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;QAcd;;;;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"}
|
|
@@ -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
|
+
*/
|
|
10
|
+
declare const realtimeHeadingStyle: RealtimeStyleFunction;
|
|
11
|
+
export default realtimeHeadingStyle;
|
|
12
|
+
//# sourceMappingURL=realtimeHeadingStyle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"realtimeHeadingStyle.d.ts","sourceRoot":"","sources":["../../../src/common/styles/realtimeHeadingStyle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,qBAAqB,EAEtB,MAAM,aAAa,CAAC;AAoFrB;;;;;;;GAOG;AACH,QAAA,MAAM,oBAAoB,EAAE,qBAoC3B,CAAC;AACF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import createCanvas from '../utils/createCanvas';
|
|
2
|
+
import { getBgColor } from '../utils/realtimeConfig';
|
|
3
|
+
import realtimeDefaultStyle from './realtimeDefaultStyle';
|
|
4
|
+
/** @private */
|
|
5
|
+
const rotateCanvas = (canvas, rotation) => {
|
|
6
|
+
const ctx = canvas.getContext('2d');
|
|
7
|
+
ctx === null || ctx === void 0 ? void 0 : ctx.translate(canvas.width / 2, canvas.height / 2);
|
|
8
|
+
ctx === null || ctx === void 0 ? void 0 : ctx.rotate(rotation);
|
|
9
|
+
ctx === null || ctx === void 0 ? void 0 : ctx.translate(-canvas.width / 2, -canvas.height / 2);
|
|
10
|
+
};
|
|
11
|
+
const arrowCache = {};
|
|
12
|
+
/** @private */
|
|
13
|
+
const getArrowCanvas = (fillColor) => {
|
|
14
|
+
const key = `${fillColor}`;
|
|
15
|
+
if (!arrowCache[key]) {
|
|
16
|
+
// Create the arrow canvas
|
|
17
|
+
const arrowCanvas = createCanvas(20, 20);
|
|
18
|
+
const ctx = arrowCanvas === null || arrowCanvas === void 0 ? void 0 : arrowCanvas.getContext('2d');
|
|
19
|
+
if (ctx) {
|
|
20
|
+
ctx.fillStyle = fillColor;
|
|
21
|
+
ctx.beginPath();
|
|
22
|
+
ctx.moveTo(5, 5);
|
|
23
|
+
ctx.lineTo(10, 10);
|
|
24
|
+
ctx.lineTo(5, 15);
|
|
25
|
+
ctx.fill();
|
|
26
|
+
ctx.beginPath();
|
|
27
|
+
ctx.moveTo(5, 5);
|
|
28
|
+
ctx.lineTo(10, 10);
|
|
29
|
+
ctx.lineTo(5, 15);
|
|
30
|
+
ctx.lineTo(5, 5);
|
|
31
|
+
ctx.stroke();
|
|
32
|
+
}
|
|
33
|
+
arrowCache[key] = arrowCanvas;
|
|
34
|
+
}
|
|
35
|
+
return arrowCache[key];
|
|
36
|
+
};
|
|
37
|
+
const bufferArrowCache = {};
|
|
38
|
+
/** @private */
|
|
39
|
+
const getBufferArrowCanvas = (canvas, fillColor, rotation) => {
|
|
40
|
+
const margin = 20;
|
|
41
|
+
const bufferKey = `${fillColor},${canvas.width},${canvas.height},${rotation}`;
|
|
42
|
+
if (!bufferArrowCache[bufferKey]) {
|
|
43
|
+
// Create a buffer canvas around the current vehicle to display properly the arrow
|
|
44
|
+
const buffer = createCanvas(canvas.width + margin * 2, canvas.height + margin * 2);
|
|
45
|
+
const arrowCanvas = getArrowCanvas(fillColor);
|
|
46
|
+
if (arrowCanvas && buffer) {
|
|
47
|
+
const bufferCtx = buffer.getContext('2d');
|
|
48
|
+
bufferCtx === null || bufferCtx === void 0 ? void 0 : bufferCtx.drawImage(arrowCanvas, buffer.width - margin, buffer.height / 2 - arrowCanvas.height / 2, arrowCanvas.width, arrowCanvas.height);
|
|
49
|
+
bufferCtx === null || bufferCtx === void 0 ? void 0 : bufferCtx.save();
|
|
50
|
+
const rot = rotation + (90 * Math.PI) / 180;
|
|
51
|
+
rotateCanvas(buffer, -rot);
|
|
52
|
+
bufferCtx === null || bufferCtx === void 0 ? void 0 : bufferCtx.restore();
|
|
53
|
+
}
|
|
54
|
+
bufferArrowCache[bufferKey] = buffer;
|
|
55
|
+
}
|
|
56
|
+
return bufferArrowCache[bufferKey];
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* A tracker style that take in account the delay.
|
|
60
|
+
*
|
|
61
|
+
* @param {RealtimeTrajectory} trajectory The trajectory to render.
|
|
62
|
+
* @param {ViewState} viewState The view state of the map.
|
|
63
|
+
* @param {RealtimeStyleOptions} options Some options to change the rendering
|
|
64
|
+
* @return a canvas
|
|
65
|
+
*/
|
|
66
|
+
const realtimeHeadingStyle = (trajectory, viewState, options) => {
|
|
67
|
+
var _a, _b;
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
const { rotation, type, line } = trajectory.properties;
|
|
70
|
+
const { color } = line || {};
|
|
71
|
+
const canvas = realtimeDefaultStyle(trajectory, viewState, options);
|
|
72
|
+
if (canvas && rotation !== null) {
|
|
73
|
+
const circleFillColor = color || getBgColor(type);
|
|
74
|
+
const bufferArrow = getBufferArrowCanvas(canvas, circleFillColor, rotation);
|
|
75
|
+
if (bufferArrow) {
|
|
76
|
+
const bufferSize = (bufferArrow.width - canvas.width) / 2;
|
|
77
|
+
const vehicleWithArrow = createCanvas(bufferArrow.width, bufferArrow.height);
|
|
78
|
+
(_a = vehicleWithArrow === null || vehicleWithArrow === void 0 ? void 0 : vehicleWithArrow.getContext('2d')) === null || _a === void 0 ? void 0 : _a.drawImage(bufferArrow, 0, 0, bufferArrow.width, bufferArrow.height);
|
|
79
|
+
(_b = vehicleWithArrow === null || vehicleWithArrow === void 0 ? void 0 : vehicleWithArrow.getContext('2d')) === null || _b === void 0 ? void 0 : _b.drawImage(canvas, bufferSize, bufferSize, canvas.width, canvas.height);
|
|
80
|
+
return vehicleWithArrow;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return canvas;
|
|
84
|
+
};
|
|
85
|
+
export default realtimeHeadingStyle;
|
package/mbt.js
CHANGED
|
@@ -34011,7 +34011,7 @@ uniform ${i3} ${o3} u_${a3};
|
|
|
34011
34011
|
}
|
|
34012
34012
|
}
|
|
34013
34013
|
send(message) {
|
|
34014
|
-
if (!this.websocket) {
|
|
34014
|
+
if (!this.websocket || this.closed || this.closing) {
|
|
34015
34015
|
return;
|
|
34016
34016
|
}
|
|
34017
34017
|
const send = () => {
|