mobility-toolbox-js 2.0.0-beta.67 → 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":"AAAA,OAAO,YAAY,EAAE,EACnB,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,oBAAY,kBAAkB,GAAG;IAC/B,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,MAAM,CAAC,OAAO,MAAM,yBAAyB,GAAG;IAC9C,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACpC,CAAC;AAEF,oBAAY,yBAAyB,GAAG;IACtC,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACpC,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,GAAG,EAAE,YAAY,CAAC;IAClB,WAAW,EAAE,YAAY,CAAC;IAC1B,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;CAIzB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,cAAM,WAAW;IACf,GAAG,EAAG,MAAM,CAAC;IAEb,KAAK,EAAG,YAAY,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAE3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,MAAM,EAAG,MAAM,CAAC;IAEhB,YAAY,EAAG,MAAM,CAAC;IAEtB,cAAc,EAAG,MAAM,CAAC;IAExB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;;;;;OASG;gBACS,OAAO,GAAE,kBAAuB;IAW5C,gBAAgB,CAAC,OAAO,EAAE,kBAAkB;IA0F5C,IAAI;IAYJ;;OAEG;IACH,KAAK;IAIL;;OAEG;IAEH,KAAK;IAIL;;;OAGG;IACH,MAAM;IAyBN;;;OAGG;IACH,OAAO;IAaP;;;;;;;;OAQG;IACH,SAAS,CACP,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,2BAA2B,CAAC,GAAG,CAAC,EAC3C,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAQxB;;;;;;;OAOG;IACH,WAAW,CACT,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAW,EACnB,SAAS,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IAoB9C;;;;;;;;OAQG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,2BAA2B,CAAC,iBAAiB,CAAC,EACzD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;;OAIG;IACH,qBAAqB,CACnB,EAAE,EAAE,iBAAiB,EACrB,SAAS,CAAC,EAAE,2BAA2B,CAAC,iBAAiB,CAAC;IAK5D;;;;;;OAMG;IACH,oBAAoB,CAClB,SAAS,EAAE,2BAA2B,CAAC,YAAY,CAAC,EACpD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;;OAIG;IACH,sBAAsB,CACpB,SAAS,CAAC,EAAE,2BAA2B,CAAC,YAAY,CAAC;IAKvD;;;;;;OAMG;IACH,UAAU,CACR,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,4BAA4B,CAAC,eAAe,CAAC,CAAC;IAWzD;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,SAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAW1E;;;;;;;;OAQG;IACH,iBAAiB,CACf,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,2BAA2B,CAAC,eAAe,CAAC,EACvD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAUxB;;;OAGG;IACH,mBAAmB,CACjB,SAAS,CAAC,EAAE,2BAA2B,CAAC,eAAe,CAAC;IAK1D;;;;;;OAMG;IACH,mBAAmB,CACjB,SAAS,EAAE,2BAA2B,CAAC,iBAAiB,CAAC,EACzD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;OAGG;IACH,qBAAqB,CACnB,SAAS,EAAE,2BAA2B,CAAC,iBAAiB,CAAC;IAK3D;;;;;;;OAOG;IACH,mBAAmB,CACjB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,2BAA2B,CAAC,0BAA0B,EAAE,CAAC,EACpE,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAWxB;;;OAGG;IACH,qBAAqB,CACnB,SAAS,EAAE,2BAA2B,CAAC,0BAA0B,EAAE,CAAC;IAKtE;;;;;;;OAOG;IACH,wBAAwB,CACtB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,2BAA2B,CAAC,eAAe,CAAC,EACvD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAWxB;;;OAGG;IACH,0BAA0B,CACxB,SAAS,EAAE,2BAA2B,CAAC,eAAe,CAAC;IAKzD;;;;;;;OAOG;IACH,iBAAiB,CACf,EAAE,EAAE,eAAe,EACnB,IAAI,EAAE,YAAY,EAClB,mBAAmB,EAAE,2BAA2B,GAAG,SAAS,GAC3D,OAAO,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;IAmBhE;;;;;;;;OAQG;IACH,uBAAuB,CACrB,EAAE,EAAE,eAAe,EACnB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,2BAA2B,CAAC,sBAAsB,CAAC,EAC9D,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAUxB;;;;;OAKG;IACH,yBAAyB,CACvB,EAAE,EAAE,eAAe,EACnB,SAAS,CAAC,EAAE,2BAA2B,CAAC,sBAAsB,CAAC;IAKjE;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,eAAe,GAClB,OAAO,CAAC,4BAA4B,CAAC,YAAY,EAAE,CAAC,CAAC;IAYxD;;;;;;;OAOG;IACH,qBAAqB,CACnB,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,2BAA2B,CAAC,YAAY,EAAE,CAAC,EACtD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;;;OAKG;IACH,uBAAuB,CACrB,EAAE,EAAE,eAAe,EACnB,SAAS,CAAC,EAAE,2BAA2B,CAAC,YAAY,EAAE,CAAC;IAKzD;;;;;OAKG;IACH,oBAAoB,CAClB,SAAS,EAAE,2BAA2B,CAAC,MAAM,CAAC,EAC9C,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;OAGG;IACH,sBAAsB,CAAC,SAAS,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC;CAGvE;AACD,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"RealtimeAPI.d.ts","sourceRoot":"","sources":["../../src/api/RealtimeAPI.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EACnB,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,4BAA4B,CAAC;AAGpC,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,EAC1B,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,oBAAY,kBAAkB,GAAG;IAC/B,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,MAAM,CAAC,OAAO,MAAM,yBAAyB,GAAG;IAC9C,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACpC,CAAC;AAEF,oBAAY,yBAAyB,GAAG;IACtC,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAAC;CACpC,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,GAAG,EAAE,YAAY,CAAC;IAClB,WAAW,EAAE,YAAY,CAAC;IAC1B,SAAS,EAAE,YAAY,CAAC;CACzB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;;;;CAIzB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,cAAM,WAAW;IACf,GAAG,EAAG,MAAM,CAAC;IAEb,KAAK,EAAG,YAAY,CAAC;IAErB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAE3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,MAAM,EAAG,MAAM,CAAC;IAEhB,YAAY,EAAG,MAAM,CAAC;IAEtB,cAAc,EAAG,MAAM,CAAC;IAExB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;;;;;OASG;gBACS,OAAO,GAAE,kBAAuB;IAW5C,gBAAgB,CAAC,OAAO,EAAE,kBAAkB;IA0F5C,IAAI;IAYJ;;OAEG;IACH,KAAK;IAIL;;OAEG;IAEH,KAAK;IAIL;;;OAGG;IACH,MAAM;IAyBN;;;OAGG;IACH,OAAO;IAaP;;;;;;;;OAQG;IACH,SAAS,CACP,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,2BAA2B,CAAC,GAAG,CAAC,EAC3C,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAQxB;;;;;;;OAOG;IACH,WAAW,CACT,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAW,EACnB,SAAS,CAAC,EAAE,2BAA2B,CAAC,GAAG,CAAC;IAoB9C;;;;;;;;OAQG;IACH,mBAAmB,CACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,2BAA2B,CAAC,iBAAiB,CAAC,EACzD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;;OAIG;IACH,qBAAqB,CACnB,EAAE,EAAE,iBAAiB,EACrB,SAAS,CAAC,EAAE,2BAA2B,CAAC,iBAAiB,CAAC;IAK5D;;;;;;OAMG;IACH,oBAAoB,CAClB,SAAS,EAAE,2BAA2B,CAAC,YAAY,CAAC,EACpD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;;OAIG;IACH,sBAAsB,CACpB,SAAS,CAAC,EAAE,2BAA2B,CAAC,YAAY,CAAC;IAKvD;;;;;;OAMG;IACH,UAAU,CACR,GAAG,EAAE,iBAAiB,EACtB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,4BAA4B,CAAC,eAAe,CAAC,CAAC;IAWzD;;;;;OAKG;IACH,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,SAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAW1E;;;;;;;;OAQG;IACH,iBAAiB,CACf,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,2BAA2B,CAAC,eAAe,CAAC,EACvD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAUxB;;;OAGG;IACH,mBAAmB,CACjB,SAAS,CAAC,EAAE,2BAA2B,CAAC,eAAe,CAAC;IAK1D;;;;;;OAMG;IACH,mBAAmB,CACjB,SAAS,EAAE,2BAA2B,CAAC,iBAAiB,CAAC,EACzD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;OAGG;IACH,qBAAqB,CACnB,SAAS,EAAE,2BAA2B,CAAC,iBAAiB,CAAC;IAK3D;;;;;;;OAOG;IACH,mBAAmB,CACjB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,2BAA2B,CAAC,0BAA0B,EAAE,CAAC,EACpE,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAWxB;;;OAGG;IACH,qBAAqB,CACnB,SAAS,EAAE,2BAA2B,CAAC,0BAA0B,EAAE,CAAC;IAKtE;;;;;;;OAOG;IACH,wBAAwB,CACtB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,2BAA2B,CAAC,eAAe,CAAC,EACvD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAWxB;;;OAGG;IACH,0BAA0B,CACxB,SAAS,EAAE,2BAA2B,CAAC,eAAe,CAAC;IAKzD;;;;;;;OAOG;IACH,iBAAiB,CACf,EAAE,EAAE,eAAe,EACnB,IAAI,EAAE,YAAY,EAClB,mBAAmB,EAAE,2BAA2B,GAAG,SAAS,GAC3D,OAAO,CAAC,4BAA4B,CAAC,sBAAsB,CAAC,CAAC;IAmBhE;;;;;;;;OAQG;IACH,uBAAuB,CACrB,EAAE,EAAE,eAAe,EACnB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE,2BAA2B,CAAC,sBAAsB,CAAC,EAC9D,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAUxB;;;;;OAKG;IACH,yBAAyB,CACvB,EAAE,EAAE,eAAe,EACnB,SAAS,CAAC,EAAE,2BAA2B,CAAC,sBAAsB,CAAC;IAKjE;;;;;OAKG;IACH,eAAe,CACb,EAAE,EAAE,eAAe,GAClB,OAAO,CAAC,4BAA4B,CAAC,YAAY,EAAE,CAAC,CAAC;IAYxD;;;;;;;OAOG;IACH,qBAAqB,CACnB,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,2BAA2B,CAAC,YAAY,EAAE,CAAC,EACtD,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;;;OAKG;IACH,uBAAuB,CACrB,EAAE,EAAE,eAAe,EACnB,SAAS,CAAC,EAAE,2BAA2B,CAAC,YAAY,EAAE,CAAC;IAKzD;;;;;OAKG;IACH,oBAAoB,CAClB,SAAS,EAAE,2BAA2B,CAAC,MAAM,CAAC,EAC9C,OAAO,GAAE,aAAwB,EACjC,KAAK,GAAE,OAAe;IAKxB;;;OAGG;IACH,sBAAsB,CAAC,SAAS,CAAC,EAAE,2BAA2B,CAAC,MAAM,CAAC;CAGvE;AACD,eAAe,WAAW,CAAC"}
@@ -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
package/mbt.js CHANGED
@@ -34787,7 +34787,8 @@ uniform ${i3} ${o3} u_${a3};
34787
34787
  noInterpolate = false,
34788
34788
  hoverVehicleId,
34789
34789
  selectedVehicleId,
34790
- filter
34790
+ filter,
34791
+ getScreenPixel = (pixel, viewStat) => (viewStat.zoom || 0) < 12 ? pixel.map((coord) => Math.floor(coord)) : pixel
34791
34792
  } = options;
34792
34793
  const context = canvas2.getContext("2d");
34793
34794
  context?.clearRect(0, 0, canvas2.width, canvas2.height);
@@ -34802,12 +34803,8 @@ uniform ${i3} ${o3} u_${a3};
34802
34803
  }
34803
34804
  let hoverVehicleImg;
34804
34805
  let hoverVehiclePx;
34805
- let hoverVehicleWidth;
34806
- let hoverVehicleHeight;
34807
34806
  let selectedVehicleImg;
34808
34807
  let selectedVehiclePx;
34809
- let selectedVehicleWidth;
34810
- let selectedVehicleHeight;
34811
34808
  const renderedTrajectories = [];
34812
34809
  for (let i = trajectories.length - 1; i >= 0; i -= 1) {
34813
34810
  const trajectory = trajectories[i];
@@ -34833,30 +34830,25 @@ uniform ${i3} ${o3} u_${a3};
34833
34830
  if (!vehicleImg) {
34834
34831
  continue;
34835
34832
  }
34836
- const imgWidth = vehicleImg.width;
34837
- const imgHeight = vehicleImg.height;
34838
34833
  if (hoverVehicleId !== id && selectedVehicleId !== id) {
34839
- context?.drawImage(vehicleImg, px[0] - imgWidth / 2, px[1] - imgHeight / 2, imgWidth, imgHeight);
34834
+ const [x, y] = getScreenPixel([px[0] - vehicleImg.width / 2, px[1] - vehicleImg.height / 2], viewState);
34835
+ context?.drawImage(vehicleImg, x, y);
34840
34836
  }
34841
34837
  if (hoverVehicleId && hoverVehicleId === id) {
34842
34838
  hoverVehicleImg = vehicleImg;
34843
34839
  hoverVehiclePx = px;
34844
- hoverVehicleWidth = imgWidth;
34845
- hoverVehicleHeight = imgHeight;
34846
34840
  }
34847
34841
  if (selectedVehicleId && selectedVehicleId === id) {
34848
34842
  selectedVehicleImg = vehicleImg;
34849
34843
  selectedVehiclePx = px;
34850
- selectedVehicleWidth = imgWidth;
34851
- selectedVehicleHeight = imgHeight;
34852
34844
  }
34853
34845
  renderedTrajectories.push(trajectory);
34854
34846
  }
34855
- if (selectedVehicleImg && selectedVehiclePx && selectedVehicleWidth && selectedVehicleHeight) {
34856
- context?.drawImage(selectedVehicleImg, selectedVehiclePx[0] - selectedVehicleWidth / 2, selectedVehiclePx[1] - selectedVehicleHeight / 2, selectedVehicleWidth, selectedVehicleHeight);
34847
+ if (selectedVehicleImg && selectedVehiclePx) {
34848
+ context?.drawImage(selectedVehicleImg, Math.floor(selectedVehiclePx[0] - selectedVehicleImg.width / 2), Math.floor(selectedVehiclePx[1] - selectedVehicleImg.height / 2));
34857
34849
  }
34858
- if (hoverVehicleImg && hoverVehiclePx && hoverVehicleWidth && hoverVehicleHeight) {
34859
- context?.drawImage(hoverVehicleImg, hoverVehiclePx[0] - hoverVehicleWidth / 2, hoverVehiclePx[1] - hoverVehicleHeight / 2, hoverVehicleWidth, hoverVehicleHeight);
34850
+ if (hoverVehicleImg && hoverVehiclePx) {
34851
+ context?.drawImage(hoverVehicleImg, Math.floor(hoverVehiclePx[0] - hoverVehicleImg.width / 2), Math.floor(hoverVehiclePx[1] - hoverVehicleImg.height / 2));
34860
34852
  }
34861
34853
  return {
34862
34854
  renderedTrajectories
@@ -36095,24 +36087,24 @@ uniform ${i3} ${o3} u_${a3};
36095
36087
  return cacheDelayBg[key];
36096
36088
  };
36097
36089
  var cacheDelayText = {};
36098
- var getDelayTextCanvas = (width, text, fontSize, font, delayColor, delayOutlineColor = "#000", pixelRatio = 1) => {
36099
- const key = `${width}, ${text}, ${font}, ${delayColor}, ${delayOutlineColor}, ${pixelRatio}`;
36090
+ var getDelayTextCanvas = (text, fontSize, font, delayColor, delayOutlineColor = "#000", pixelRatio = 1) => {
36091
+ const key = `${text}, ${font}, ${delayColor}, ${delayOutlineColor}, ${pixelRatio}`;
36100
36092
  if (!cacheDelayText[key]) {
36101
- const canvas2 = createCanvas_default(width, fontSize + 8 * pixelRatio);
36093
+ const canvas2 = createCanvas_default(Math.ceil(text.length * fontSize), Math.ceil(fontSize + 8 * pixelRatio));
36102
36094
  if (canvas2) {
36103
36095
  const ctx = canvas2.getContext("2d");
36104
36096
  if (!ctx) {
36105
36097
  return null;
36106
36098
  }
36099
+ ctx.font = font;
36107
36100
  ctx.textAlign = "left";
36108
36101
  ctx.textBaseline = "middle";
36109
36102
  ctx.font = font;
36110
36103
  ctx.fillStyle = delayColor;
36111
36104
  ctx.strokeStyle = delayOutlineColor;
36112
36105
  ctx.lineWidth = 1.5 * pixelRatio;
36113
- const delayText = text;
36114
- ctx.strokeText(delayText, 0, fontSize);
36115
- ctx.fillText(delayText, 0, fontSize);
36106
+ ctx.strokeText(text, 0, fontSize);
36107
+ ctx.fillText(text, 0, fontSize);
36116
36108
  cacheDelayText[key] = canvas2;
36117
36109
  }
36118
36110
  }
@@ -36246,52 +36238,58 @@ uniform ${i3} ${o3} u_${a3};
36246
36238
  const margin = 1 * pixelRatio;
36247
36239
  const radiusDelay = radius + 2;
36248
36240
  const markerSize = radius * 2;
36249
- const size = radiusDelay * 2 + margin * 2 + 100 * pixelRatio;
36241
+ const size = radiusDelay * 2 + margin * 2;
36250
36242
  const origin = size / 2;
36251
- const canvas2 = createCanvas_default(size, size);
36243
+ let delayBg = null;
36244
+ if (isDisplayStrokeAndDelay && delay !== null) {
36245
+ delayBg = getDelayBgCanvas(origin, radiusDelay, getDelayColor2(delay, cancelled));
36246
+ }
36247
+ let delayText = null;
36248
+ let fontSize = 0;
36249
+ if (isDisplayStrokeAndDelay && (hover || (delay || 0) >= delayDisplay || cancelled)) {
36250
+ fontSize = Math.max(cancelled ? 19 : 14, Math.min(cancelled ? 19 : 17, radius * 1.2)) * pixelRatio;
36251
+ const text = getDelayText2(delay, cancelled);
36252
+ if (text) {
36253
+ delayText = getDelayTextCanvas(text, fontSize, `bold ${fontSize}px arial, sans-serif`, getDelayColor2(delay, cancelled, true), delayOutlineColor, pixelRatio);
36254
+ }
36255
+ }
36256
+ let circleFillColor;
36257
+ if (useDelayStyle) {
36258
+ circleFillColor = getDelayColor2(delay, cancelled);
36259
+ } else {
36260
+ circleFillColor = color || getBgColor2(type);
36261
+ }
36262
+ const hasStroke = isDisplayStrokeAndDelay || hover || selected;
36263
+ const hasDash = !!isDisplayStrokeAndDelay && !!useDelayStyle && delay === null && operatorProvidesRealtime === "yes";
36264
+ const circle = getCircleCanvas(origin, radius, circleFillColor, hasStroke, hasDash, pixelRatio);
36265
+ const width = size + (delayText?.width || 0) * 2;
36266
+ const height = size;
36267
+ const canvas2 = createCanvas_default(width, height);
36252
36268
  if (canvas2) {
36253
36269
  const ctx = canvas2.getContext("2d");
36254
36270
  if (!ctx) {
36255
36271
  return null;
36256
36272
  }
36257
- if (isDisplayStrokeAndDelay && delay !== null) {
36258
- const delayBg = getDelayBgCanvas(origin, radiusDelay, getDelayColor2(delay, cancelled));
36259
- if (delayBg) {
36260
- ctx.drawImage(delayBg, 0, 0);
36261
- }
36262
- }
36263
- if (isDisplayStrokeAndDelay && (hover || (delay || 0) >= delayDisplay || cancelled)) {
36264
- const fontSize = Math.max(cancelled ? 19 : 14, Math.min(cancelled ? 19 : 17, radius * 1.2)) * pixelRatio;
36265
- const text = getDelayText2(delay, cancelled);
36266
- if (text) {
36267
- const textWidth = text.length * fontSize;
36268
- const delayText = getDelayTextCanvas(textWidth, text, fontSize, `bold ${fontSize}px arial, sans-serif`, getDelayColor2(delay, cancelled, true), delayOutlineColor, pixelRatio);
36269
- if (delayText) {
36270
- ctx.drawImage(delayText, origin + radiusDelay + margin, origin - fontSize);
36271
- }
36272
- }
36273
- }
36274
- let circleFillColor;
36275
- if (useDelayStyle) {
36276
- circleFillColor = getDelayColor2(delay, cancelled);
36277
- } else {
36278
- circleFillColor = color || getBgColor2(type);
36273
+ const originX = delayText?.width || 0;
36274
+ if (delayBg) {
36275
+ ctx.drawImage(delayBg, originX, 0);
36279
36276
  }
36280
- const hasStroke = isDisplayStrokeAndDelay || hover || selected;
36281
- const hasDash = !!isDisplayStrokeAndDelay && !!useDelayStyle && delay === null && operatorProvidesRealtime === "yes";
36282
- const circle = getCircleCanvas(origin, radius, circleFillColor, hasStroke, hasDash, pixelRatio);
36283
36277
  if (circle) {
36284
- ctx.drawImage(circle, 0, 0);
36278
+ ctx.drawImage(circle, originX, 0);
36285
36279
  }
36286
- if (isDisplayText && ctx) {
36287
- const fontSize = Math.max(radius, 10);
36288
- const textSize = getTextSize2(ctx, markerSize, name, fontSize);
36280
+ let circleText = null;
36281
+ if (isDisplayText) {
36282
+ const fontSize2 = Math.max(radius, 10);
36283
+ const textSize = getTextSize2(ctx, markerSize, name, fontSize2);
36289
36284
  const textColor2 = !useDelayStyle ? textColor || getTextColor2(type) : "#000000";
36290
36285
  const hasStroke2 = !!useDelayStyle && delay === null && operatorProvidesRealtime === "yes";
36291
- const text = getTextCanvas(name, origin, textSize, textColor2, circleFillColor, hasStroke2, pixelRatio);
36292
- if (text) {
36293
- ctx.drawImage(text, 0, 0);
36294
- }
36286
+ circleText = getTextCanvas(name, origin, textSize, textColor2, circleFillColor, hasStroke2, pixelRatio);
36287
+ }
36288
+ if (circleText) {
36289
+ ctx.drawImage(circleText, originX, 0);
36290
+ }
36291
+ if (delayText) {
36292
+ ctx.drawImage(delayText, originX + Math.ceil(origin + radiusDelay) + margin, Math.ceil(origin - fontSize));
36295
36293
  }
36296
36294
  cache2[key] = canvas2;
36297
36295
  }
@@ -49161,7 +49159,25 @@ uniform ${i3} ${o3} u_${a3};
49161
49159
  "funicular",
49162
49160
  "coach"
49163
49161
  ];
49164
- this.motsByZoom = options.motsByZoom || [allMots];
49162
+ const onlyRail = ["rail"];
49163
+ const withoutCable = ["tram", "subway", "rail", "bus"];
49164
+ this.motsByZoom = options.motsByZoom || [
49165
+ onlyRail,
49166
+ onlyRail,
49167
+ onlyRail,
49168
+ onlyRail,
49169
+ onlyRail,
49170
+ onlyRail,
49171
+ onlyRail,
49172
+ onlyRail,
49173
+ onlyRail,
49174
+ withoutCable,
49175
+ withoutCable,
49176
+ allMots,
49177
+ allMots,
49178
+ allMots,
49179
+ allMots
49180
+ ];
49165
49181
  this.getMotsByZoom = (zoom) => {
49166
49182
  return options.getMotsByZoom && options.getMotsByZoom(zoom, this.motsByZoom) || this.motsByZoom[zoom] || this.motsByZoom[this.motsByZoom.length - 1];
49167
49183
  };
@@ -49523,7 +49539,7 @@ uniform ${i3} ${o3} u_${a3};
49523
49539
  }
49524
49540
  purgeTrajectory(trajectory, extent, zoom) {
49525
49541
  const { type, bounds } = trajectory.properties;
49526
- if (!intersects(extent, bounds) || this.mots && !this.mots.includes(type) || type !== "rail" && zoom < 9) {
49542
+ if (!intersects(extent, bounds) || this.mots && !this.mots.includes(type)) {
49527
49543
  this.removeTrajectory(trajectory);
49528
49544
  return true;
49529
49545
  }
@@ -49791,7 +49807,9 @@ uniform ${i3} ${o3} u_${a3};
49791
49807
  }
49792
49808
  hasFeatureInfoAtCoordinate(coordinate) {
49793
49809
  if (this.map && this.canvas) {
49794
- const context = this.canvas.getContext("2d");
49810
+ const context = this.canvas.getContext("2d", {
49811
+ willReadFrequently: true
49812
+ });
49795
49813
  const pixel = this.map.getPixelFromCoordinate(coordinate);
49796
49814
  return !!context?.getImageData(pixel[0] * (this.pixelRatio || 1), pixel[1] * (this.pixelRatio || 1), 1, 1).data[3];
49797
49815
  }
@@ -49847,6 +49865,12 @@ uniform ${i3} ${o3} u_${a3};
49847
49865
  }
49848
49866
  onZoomEnd() {
49849
49867
  super.onZoomEnd();
49868
+ if (this.visible && this.isUpdateBboxOnMoveEnd) {
49869
+ this.setBbox();
49870
+ }
49871
+ if (this.visible && this.isUpdateBboxOnMoveEnd && this.userClickInteractions && this.selectedVehicleId) {
49872
+ this.highlightTrajectory(this.selectedVehicleId);
49873
+ }
49850
49874
  }
49851
49875
  onFeatureHover(features, layer, coordinate) {
49852
49876
  super.onFeatureHover(features, layer, coordinate);
@@ -50713,7 +50737,7 @@ uniform ${i3} ${o3} u_${a3};
50713
50737
  center: fromLonLat([center.lng, center.lat]),
50714
50738
  extent: bounds,
50715
50739
  resolution: res,
50716
- zoom: this.map.getZoom(),
50740
+ zoom: this.getOlZoom(),
50717
50741
  rotation: -(this.map.getBearing() * Math.PI) / 180,
50718
50742
  pixelRatio: this.pixelRatio
50719
50743
  };
@@ -50737,7 +50761,7 @@ uniform ${i3} ${o3} u_${a3};
50737
50761
  }
50738
50762
  }
50739
50763
  purgeTrajectory(trajectory, extent, zoom) {
50740
- return super.purgeTrajectory(trajectory, extent || this.getMercatorExtent(), zoom || Math.floor(this.map.getZoom() + 1));
50764
+ return super.purgeTrajectory(trajectory, extent || this.getMercatorExtent(), zoom || Math.floor(this.getOlZoom()));
50741
50765
  }
50742
50766
  setBbox(extent, zoom) {
50743
50767
  let newExtent = extent;