mobility-toolbox-js 2.0.0-beta.1 → 2.0.0

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 (67) hide show
  1. package/README.md +7 -4
  2. package/api/index.js +0 -1
  3. package/api/tralis/TralisAPI.js +1 -1
  4. package/common/controls/Control.js +4 -1
  5. package/common/layers/Layer.js +18 -49
  6. package/common/layers/Layer.test.js +2 -106
  7. package/common/mixins/SearchMixin.js +1 -1
  8. package/common/mixins/TralisLayerMixin.js +549 -21
  9. package/common/styles/index.js +4 -0
  10. package/common/{utils/delayTrackerStyle.js → styles/trackerDefaultStyle.js} +8 -8
  11. package/common/styles/trackerDelayStyle.js +17 -0
  12. package/common/styles/trackerSimpleStyle.js +22 -0
  13. package/common/trackerConfig.test.js +0 -13
  14. package/common/utils/getMapboxMapCopyrights.js +1 -0
  15. package/common/utils/index.js +2 -3
  16. package/common/utils/sortByDelay.js +23 -0
  17. package/index.js +1 -1
  18. package/index.js.map +1 -1
  19. package/mapbox/controls/CopyrightControl.js +5 -1
  20. package/mapbox/index.js +0 -2
  21. package/mapbox/layers/Layer.test.js +2 -2
  22. package/mapbox/layers/TralisLayer.js +270 -5
  23. package/mapbox/layers/TralisLayer.test.js +40 -0
  24. package/module.js +1 -9
  25. package/ol/controls/CopyrightControl.js +4 -4
  26. package/ol/controls/CopyrightControl.test.js +16 -16
  27. package/ol/controls/RoutingControl.js +9 -7
  28. package/ol/controls/RoutingControl.test.js +1 -1
  29. package/ol/controls/StopFinderControl.js +8 -6
  30. package/ol/controls/StopFinderControl.test.js +1 -1
  31. package/ol/index.js +3 -3
  32. package/ol/layers/Layer.js +9 -0
  33. package/ol/layers/Layer.test.js +22 -7
  34. package/ol/layers/MapboxLayer.js +39 -44
  35. package/ol/layers/MapboxLayer.test.js +5 -5
  36. package/ol/layers/MapboxStyleLayer.js +0 -6
  37. package/ol/layers/MapboxStyleLayer.test.js +22 -6
  38. package/ol/layers/MaplibreLayer.js +280 -0
  39. package/ol/layers/RoutingLayer.test.js +1 -1
  40. package/ol/layers/TralisLayer.js +258 -76
  41. package/ol/layers/TralisLayer.test.js +1 -49
  42. package/ol/layers/VectorLayer.test.js +1 -1
  43. package/ol/layers/WMSLayer.test.js +6 -2
  44. package/ol/styles/fullTrajectoryDelayStyle.js +35 -0
  45. package/ol/styles/fullTrajectoryStyle.js +51 -0
  46. package/ol/styles/index.js +2 -0
  47. package/package.json +16 -8
  48. package/api/trajserv/TrajservAPI.js +0 -71
  49. package/api/trajserv/TrajservAPI.test.js +0 -171
  50. package/api/trajserv/TrajservAPIUtils.js +0 -191
  51. package/api/trajserv/TrajservAPIUtils.test.js +0 -40
  52. package/api/trajserv/typedefs.js +0 -44
  53. package/common/mixins/MapMixin.js +0 -103
  54. package/common/mixins/TrackerLayerMixin.js +0 -745
  55. package/common/mixins/TrajservLayerMixin.js +0 -544
  56. package/common/utils/simpleTrackerStyle.js +0 -18
  57. package/mapbox/Map.js +0 -87
  58. package/mapbox/layers/TrackerLayer.js +0 -282
  59. package/mapbox/layers/TrackerLayer.test.js +0 -68
  60. package/mapbox/layers/TrajservLayer.js +0 -114
  61. package/mapbox/layers/TrajservLayer.test.js +0 -90
  62. package/ol/Map.js +0 -109
  63. package/ol/Map.test.js +0 -34
  64. package/ol/layers/TrackerLayer.js +0 -296
  65. package/ol/layers/TrackerLayer.test.js +0 -70
  66. package/ol/layers/TrajservLayer.js +0 -190
  67. package/ol/layers/TrajservLayer.test.js +0 -113
@@ -0,0 +1,17 @@
1
+ import trackerDefaultStyle from './trackerDefaultStyle';
2
+
3
+ /**
4
+ * A tracker style that display the delay as backgroundColor.
5
+ *
6
+ * @param {*} trajectory The trajectory to render.
7
+ * @param {*} viewState The view state of the map.
8
+ * @param {*} options Some options to change the rendering
9
+ * @return a canvas
10
+ */
11
+ const style = (trajectory, viewState, options) => {
12
+ return trackerDefaultStyle(trajectory, viewState, {
13
+ ...options,
14
+ useDelayStyle: true,
15
+ });
16
+ };
17
+ export default style;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * A very simple tracker style.
3
+ * Display blue point for each train.
4
+ */
5
+ let canvas;
6
+ const style = () => {
7
+ if (!canvas) {
8
+ document.createElement('canvas');
9
+ canvas.width = 15;
10
+ canvas.height = 15;
11
+ const ctx = canvas.getContext('2d');
12
+ ctx.arc(8, 8, 5, 0, 2 * Math.PI, false);
13
+ ctx.fillStyle = '#8ED6FF';
14
+ ctx.fill();
15
+ ctx.lineWidth = 3;
16
+ ctx.strokeStyle = 'black';
17
+ ctx.stroke();
18
+ ctx.lineWidth = 3;
19
+ }
20
+ return canvas;
21
+ };
22
+ export default style;
@@ -10,19 +10,6 @@ describe('trackerConfig', () => {
10
10
  expect(getTypeIndex(undefined)).toBe(undefined);
11
11
  });
12
12
 
13
- test('find good index for old trajserv values', () => {
14
- expect(getTypeIndex('Tram')).toBe(0);
15
- expect(getTypeIndex('Subway / Metro / S-Bahn')).toBe(1);
16
- expect(getTypeIndex('Train')).toBe(2);
17
- expect(getTypeIndex('Bus')).toBe(3);
18
- expect(getTypeIndex('Ferry')).toBe(4);
19
- expect(getTypeIndex('Cable Car')).toBe(5);
20
- expect(getTypeIndex('Gondola')).toBe(6);
21
- expect(getTypeIndex('Funicular')).toBe(7);
22
- expect(getTypeIndex('Long distance bus')).toBe(8);
23
- expect(getTypeIndex('Rail')).toBe(9);
24
- });
25
-
26
13
  test('find good index for new tracker values', () => {
27
14
  expect(getTypeIndex('tram')).toBe(0);
28
15
  expect(getTypeIndex('subway')).toBe(1);
@@ -11,6 +11,7 @@ const getMapboxMapCopyrights = (map) => {
11
11
  }
12
12
  const { sourceCaches } = map.style;
13
13
  let copyrights = [];
14
+
14
15
  Object.values(sourceCaches).forEach((sourceCache) => {
15
16
  if (sourceCache.used) {
16
17
  const source = sourceCache.getSource();
@@ -1,7 +1,6 @@
1
1
  export { default as getMapboxStyleUrl } from './getMapboxStyleUrl';
2
2
  export { default as getMapboxMapCopyrights } from './getMapboxMapCopyrights';
3
3
  export { default as removeDuplicate } from './removeDuplicate';
4
- export { default as delayTrackerStyle } from './delayTrackerStyle';
5
- export * from './delayTrackerStyle';
6
- export { default as simpleTrackerStyle } from './simpleTrackerStyle';
7
4
  export * from './timeUtils';
5
+ export * from '../styles';
6
+ export { default as sortByDelay } from './sortByDelay';
@@ -0,0 +1,23 @@
1
+ const sortByDelay = (traj1, traj2) => {
2
+ const props1 = traj1.properties;
3
+ const props2 = traj2.properties;
4
+
5
+ if (props1.delay === null && props2.delay !== null) {
6
+ return 1;
7
+ }
8
+ if (props2.delay === null && props1.delay !== null) {
9
+ return -1;
10
+ }
11
+
12
+ // We put cancelled train inbetween green and yellow trains
13
+ // >=180000ms corresponds to yellow train
14
+ if (props1.cancelled && !props2.cancelled) {
15
+ return props2.delay < 180000 ? -1 : 1;
16
+ }
17
+ if (props2.cancelled && !props1.cancelled) {
18
+ return props1.delay < 180000 ? 1 : -1;
19
+ }
20
+ return props2.delay - props1.delay;
21
+ };
22
+
23
+ export default sortByDelay;