mobility-toolbox-js 2.0.0-beta.6 → 2.0.0-beta.60

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 (487) hide show
  1. package/README.md +29 -8
  2. package/api/RealtimeAPI.d.ts +279 -0
  3. package/api/RealtimeAPI.d.ts.map +1 -0
  4. package/api/RealtimeAPI.js +462 -0
  5. package/api/RoutingAPI.d.ts +37 -0
  6. package/api/RoutingAPI.d.ts.map +1 -0
  7. package/api/RoutingAPI.js +35 -0
  8. package/api/StopsAPI.d.ts +38 -0
  9. package/api/StopsAPI.d.ts.map +1 -0
  10. package/api/StopsAPI.js +36 -0
  11. package/api/index.d.ts +4 -0
  12. package/api/index.d.ts.map +1 -0
  13. package/api/index.js +3 -0
  14. package/api/typedefs.d.ts +179 -0
  15. package/api/typedefs.d.ts.map +1 -0
  16. package/{src/api/tralis → api}/typedefs.js +4 -10
  17. package/common/api/HttpAPI.d.ts +31 -0
  18. package/common/api/HttpAPI.d.ts.map +1 -0
  19. package/common/api/HttpAPI.js +57 -0
  20. package/common/api/WebSocketAPI.d.ts +153 -0
  21. package/common/api/WebSocketAPI.d.ts.map +1 -0
  22. package/common/api/WebSocketAPI.js +328 -0
  23. package/common/controls/ControlCommon.d.ts +76 -0
  24. package/common/controls/ControlCommon.d.ts.map +1 -0
  25. package/common/controls/ControlCommon.js +150 -0
  26. package/common/controls/CopyrightControlCommon.d.ts +13 -0
  27. package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
  28. package/common/controls/CopyrightControlCommon.js +34 -0
  29. package/common/controls/StopFinderControlCommon.d.ts +55 -0
  30. package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
  31. package/common/controls/StopFinderControlCommon.js +144 -0
  32. package/common/index.d.ts +3 -0
  33. package/common/index.d.ts.map +1 -0
  34. package/common/index.js +2 -0
  35. package/common/layers/LayerCommon.d.ts +94 -0
  36. package/common/layers/LayerCommon.d.ts.map +1 -0
  37. package/common/layers/LayerCommon.js +244 -0
  38. package/common/mixins/RealtimeLayerMixin.d.ts +289 -0
  39. package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
  40. package/common/mixins/RealtimeLayerMixin.js +746 -0
  41. package/common/mixins/UserInteractionsLayerMixin.d.ts +60 -0
  42. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
  43. package/common/mixins/UserInteractionsLayerMixin.js +241 -0
  44. package/common/styles/index.d.ts +5 -0
  45. package/common/styles/index.d.ts.map +1 -0
  46. package/common/styles/index.js +4 -0
  47. package/common/styles/realtimeDefaultStyle.d.ts +36 -0
  48. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
  49. package/common/styles/realtimeDefaultStyle.js +261 -0
  50. package/{src/common/styles/trackerDelayStyle.js → common/styles/realtimeDelayStyle.d.ts} +4 -9
  51. package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
  52. package/common/styles/realtimeDelayStyle.js +13 -0
  53. package/common/styles/realtimeSimpleStyle.d.ts +4 -0
  54. package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
  55. package/common/styles/realtimeSimpleStyle.js +24 -0
  56. package/common/typedefs.d.ts +111 -0
  57. package/common/typedefs.d.ts.map +1 -0
  58. package/common/typedefs.js +52 -0
  59. package/common/utils/compareDepartures.d.ts +11 -0
  60. package/common/utils/compareDepartures.d.ts.map +1 -0
  61. package/common/utils/compareDepartures.js +35 -0
  62. package/common/utils/createCanvas.d.ts +10 -0
  63. package/common/utils/createCanvas.d.ts.map +1 -0
  64. package/common/utils/createCanvas.js +27 -0
  65. package/common/utils/createRealtimeFilters.d.ts +13 -0
  66. package/common/utils/createRealtimeFilters.d.ts.map +1 -0
  67. package/common/utils/createRealtimeFilters.js +74 -0
  68. package/common/utils/debounceDeparturesMessages.d.ts +12 -0
  69. package/common/utils/debounceDeparturesMessages.d.ts.map +1 -0
  70. package/common/utils/debounceDeparturesMessages.js +24 -0
  71. package/common/utils/debounceWebsocketMessages.d.ts +11 -0
  72. package/common/utils/debounceWebsocketMessages.d.ts.map +1 -0
  73. package/common/utils/debounceWebsocketMessages.js +29 -0
  74. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  75. package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
  76. package/common/utils/getLayersAsFlatArray.js +15 -0
  77. package/common/utils/getMapboxMapCopyrights.d.ts +18 -0
  78. package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
  79. package/common/utils/getMapboxMapCopyrights.js +30 -0
  80. package/common/utils/getMapboxRender.d.ts +7 -0
  81. package/common/utils/getMapboxRender.d.ts.map +1 -0
  82. package/common/utils/getMapboxRender.js +87 -0
  83. package/common/utils/getMaplibreRender.d.ts +7 -0
  84. package/common/utils/getMaplibreRender.d.ts.map +1 -0
  85. package/common/utils/getMaplibreRender.js +38 -0
  86. package/common/utils/getRealtimeModeSuffix.d.ts +10 -0
  87. package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
  88. package/common/utils/getRealtimeModeSuffix.js +7 -0
  89. package/common/utils/getUrlWithParams.d.ts +9 -0
  90. package/common/utils/getUrlWithParams.d.ts.map +1 -0
  91. package/common/utils/getUrlWithParams.js +18 -0
  92. package/common/utils/getVehiclePosition.d.ts +16 -0
  93. package/common/utils/getVehiclePosition.d.ts.map +1 -0
  94. package/common/utils/getVehiclePosition.js +63 -0
  95. package/common/utils/index.d.ts +16 -0
  96. package/common/utils/index.d.ts.map +1 -0
  97. package/common/utils/index.js +16 -0
  98. package/common/utils/realtimeConfig.d.ts +49 -0
  99. package/common/utils/realtimeConfig.d.ts.map +1 -0
  100. package/common/utils/realtimeConfig.js +173 -0
  101. package/common/utils/removeDuplicate.d.ts +10 -0
  102. package/common/utils/removeDuplicate.d.ts.map +1 -0
  103. package/common/utils/removeDuplicate.js +15 -0
  104. package/common/utils/renderTrajectories.d.ts +17 -0
  105. package/common/utils/renderTrajectories.d.ts.map +1 -0
  106. package/common/utils/renderTrajectories.js +121 -0
  107. package/common/utils/sortAndFilterDepartures.d.ts +16 -0
  108. package/common/utils/sortAndFilterDepartures.d.ts.map +1 -0
  109. package/common/utils/sortAndFilterDepartures.js +58 -0
  110. package/common/utils/sortByDelay.d.ts +3 -0
  111. package/common/utils/sortByDelay.d.ts.map +1 -0
  112. package/common/utils/sortByDelay.js +20 -0
  113. package/common/utils/timeUtils.d.ts +24 -0
  114. package/common/utils/timeUtils.d.ts.map +1 -0
  115. package/{src/common → common}/utils/timeUtils.js +13 -18
  116. package/iife.d.ts +3 -0
  117. package/iife.d.ts.map +1 -0
  118. package/{src/iife.js → iife.js} +2 -4
  119. package/index.d.ts +10 -0
  120. package/index.d.ts.map +1 -0
  121. package/index.js +10 -0
  122. package/mapbox/controls/CopyrightControl.d.ts +29 -0
  123. package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
  124. package/mapbox/controls/CopyrightControl.js +48 -0
  125. package/mapbox/controls/index.d.ts +2 -0
  126. package/mapbox/controls/index.d.ts.map +1 -0
  127. package/mapbox/controls/index.js +2 -0
  128. package/mapbox/index.d.ts +6 -0
  129. package/mapbox/index.d.ts.map +1 -0
  130. package/mapbox/index.js +5 -0
  131. package/mapbox/layers/Layer.d.ts +59 -0
  132. package/mapbox/layers/Layer.d.ts.map +1 -0
  133. package/mapbox/layers/Layer.js +101 -0
  134. package/mapbox/layers/RealtimeLayer.d.ts +180 -0
  135. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
  136. package/mapbox/layers/RealtimeLayer.js +276 -0
  137. package/mapbox/layers/index.d.ts +3 -0
  138. package/mapbox/layers/index.d.ts.map +1 -0
  139. package/mapbox/layers/index.js +2 -0
  140. package/mapbox/utils/getMercatorResolution.d.ts +9 -0
  141. package/mapbox/utils/getMercatorResolution.d.ts.map +1 -0
  142. package/mapbox/utils/getMercatorResolution.js +18 -0
  143. package/mapbox/utils/getSourceCoordinates.d.ts +9 -0
  144. package/mapbox/utils/getSourceCoordinates.d.ts.map +1 -0
  145. package/mapbox/utils/getSourceCoordinates.js +27 -0
  146. package/mapbox/utils/index.d.ts +3 -0
  147. package/mapbox/utils/index.d.ts.map +1 -0
  148. package/mapbox/utils/index.js +2 -0
  149. package/mbt.js +50785 -0
  150. package/mbt.js.map +7 -0
  151. package/mbt.min.js +1083 -0
  152. package/mbt.min.js.map +7 -0
  153. package/ol/controls/CopyrightControl.d.ts +31 -0
  154. package/ol/controls/CopyrightControl.d.ts.map +1 -0
  155. package/ol/controls/CopyrightControl.js +68 -0
  156. package/ol/controls/RoutingControl.d.ts +193 -0
  157. package/ol/controls/RoutingControl.d.ts.map +1 -0
  158. package/ol/controls/RoutingControl.js +632 -0
  159. package/ol/controls/StopFinderControl.d.ts +30 -0
  160. package/ol/controls/StopFinderControl.d.ts.map +1 -0
  161. package/{src/ol → ol}/controls/StopFinderControl.js +10 -16
  162. package/ol/controls/index.d.ts +4 -0
  163. package/ol/controls/index.d.ts.map +1 -0
  164. package/ol/controls/index.js +3 -0
  165. package/ol/index.d.ts +6 -0
  166. package/ol/index.d.ts.map +1 -0
  167. package/ol/index.js +5 -0
  168. package/ol/layers/Layer.d.ts +86 -0
  169. package/ol/layers/Layer.d.ts.map +1 -0
  170. package/ol/layers/Layer.js +159 -0
  171. package/ol/layers/MapGlLayer.d.ts +67 -0
  172. package/ol/layers/MapGlLayer.d.ts.map +1 -0
  173. package/ol/layers/MapGlLayer.js +218 -0
  174. package/ol/layers/MapboxLayer.d.ts +50 -0
  175. package/ol/layers/MapboxLayer.d.ts.map +1 -0
  176. package/ol/layers/MapboxLayer.js +109 -0
  177. package/ol/layers/MapboxStyleLayer.d.ts +129 -0
  178. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
  179. package/ol/layers/MapboxStyleLayer.js +374 -0
  180. package/ol/layers/MaplibreLayer.d.ts +28 -0
  181. package/ol/layers/MaplibreLayer.d.ts.map +1 -0
  182. package/ol/layers/MaplibreLayer.js +34 -0
  183. package/ol/layers/RealtimeLayer.d.ts +201 -0
  184. package/ol/layers/RealtimeLayer.d.ts.map +1 -0
  185. package/ol/layers/RealtimeLayer.js +310 -0
  186. package/ol/layers/RoutingLayer.d.ts +34 -0
  187. package/ol/layers/RoutingLayer.d.ts.map +1 -0
  188. package/ol/layers/RoutingLayer.js +85 -0
  189. package/ol/layers/VectorLayer.d.ts +25 -0
  190. package/ol/layers/VectorLayer.d.ts.map +1 -0
  191. package/ol/layers/VectorLayer.js +38 -0
  192. package/ol/layers/WMSLayer.d.ts +42 -0
  193. package/ol/layers/WMSLayer.d.ts.map +1 -0
  194. package/ol/layers/WMSLayer.js +88 -0
  195. package/ol/layers/index.d.ts +9 -0
  196. package/ol/layers/index.d.ts.map +1 -0
  197. package/ol/layers/index.js +8 -0
  198. package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
  199. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
  200. package/ol/styles/fullTrajectoryDelayStyle.js +33 -0
  201. package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
  202. package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
  203. package/ol/styles/fullTrajectoryStyle.js +44 -0
  204. package/ol/styles/index.d.ts +3 -0
  205. package/ol/styles/index.d.ts.map +1 -0
  206. package/{src/ol → ol}/styles/index.js +0 -0
  207. package/package.json +71 -126
  208. package/setupTests.d.ts +2 -0
  209. package/setupTests.d.ts.map +1 -0
  210. package/{src/setupTests.js → setupTests.js} +0 -2
  211. package/types/common.d.ts +118 -0
  212. package/types/index.d.ts +11 -0
  213. package/types/realtime.d.ts +315 -0
  214. package/types/routing.d.ts +206 -0
  215. package/types/stops.d.ts +143 -0
  216. package/.babelrc +0 -6
  217. package/.esdoc.json +0 -17
  218. package/.eslintignore +0 -1
  219. package/.github/workflows/conventional-pr-title.yml +0 -21
  220. package/.github/workflows/cypress.yml +0 -29
  221. package/.github/workflows/nodejs.yml +0 -28
  222. package/.husky/commit-msg +0 -4
  223. package/.husky/post-checkout +0 -4
  224. package/.husky/post-merge +0 -4
  225. package/.husky/post-rebase +0 -4
  226. package/.husky/pre-commit +0 -4
  227. package/.neutrinorc.js +0 -176
  228. package/.nvmrc +0 -1
  229. package/CHANGELOG.md +0 -10
  230. package/LICENSE +0 -21
  231. package/Layer.js +0 -2
  232. package/Layer.js.map +0 -7
  233. package/__mocks__/mapbox-gl.js +0 -81
  234. package/__mocks__/maplibre-gl.js +0 -81
  235. package/commitlint.config.js +0 -1
  236. package/cypress/fixtures/example.json +0 -5
  237. package/cypress/integration/examples/api.spec.js +0 -7
  238. package/cypress/integration/examples/examples.spec.js +0 -7
  239. package/cypress/integration/examples/navigation.spec.js +0 -29
  240. package/cypress/plugins/index.js +0 -21
  241. package/cypress/support/commands.js +0 -25
  242. package/cypress/support/index.js +0 -20
  243. package/cypress.json +0 -4
  244. package/data/fetchRoute.json +0 -292
  245. package/data/fetchTrajectories.json +0 -18
  246. package/data/fetchTrajectoryById.json +0 -3
  247. package/data/fetchTrajectoryStations.json +0 -18
  248. package/data/stopsSearch.json +0 -15
  249. package/documentation.yml +0 -4
  250. package/esdoc/README.md +0 -27
  251. package/esdoc/plugins/MyPlugin.js +0 -69
  252. package/esdoc/plugins/dynamic-property-plugin/Plugin.js +0 -50
  253. package/esdoc/plugins/externals-plugin/Plugin.js +0 -45
  254. package/esdoc/plugins/externals-plugin/externals.js +0 -96
  255. package/global-setup.js +0 -3
  256. package/index.html +0 -0
  257. package/indexweb.html +0 -49
  258. package/jest.config.js +0 -5
  259. package/pull_request_template.md +0 -17
  260. package/renovate.json +0 -4
  261. package/scripts/read-pkg-json.js +0 -22
  262. package/src/api/index.js +0 -3
  263. package/src/api/routing/RoutingAPI.js +0 -44
  264. package/src/api/routing/RoutingAPI.test.js +0 -41
  265. package/src/api/stops/StopsAPI.js +0 -41
  266. package/src/api/stops/StopsAPI.test.js +0 -34
  267. package/src/api/tralis/TralisAPI.js +0 -731
  268. package/src/api/tralis/TralisAPI.test.js +0 -75
  269. package/src/api/tralis/TralisAPIUtils.js +0 -73
  270. package/src/api/tralis/WebSocketConnector.js +0 -338
  271. package/src/api/tralis/WebSocketConnector.test.js +0 -356
  272. package/src/assets/Lato-Black.ttf +0 -0
  273. package/src/assets/Lato-BlackItalic.ttf +0 -0
  274. package/src/assets/Lato-Bold.ttf +0 -0
  275. package/src/assets/Lato-BoldItalic.ttf +0 -0
  276. package/src/assets/Lato-Italic.ttf +0 -0
  277. package/src/assets/Lato-Light.ttf +0 -0
  278. package/src/assets/Lato-LightItalic.ttf +0 -0
  279. package/src/assets/Lato-Regular.ttf +0 -0
  280. package/src/assets/Lato-Thin.ttf +0 -0
  281. package/src/assets/Lato-ThinItalic.ttf +0 -0
  282. package/src/assets/OFL.txt +0 -93
  283. package/src/common/Tracker.js +0 -197
  284. package/src/common/api/api.js +0 -64
  285. package/src/common/api/api.test.js +0 -68
  286. package/src/common/controls/Control.js +0 -146
  287. package/src/common/controls/Control.test.js +0 -98
  288. package/src/common/layers/Layer.js +0 -404
  289. package/src/common/layers/Layer.test.js +0 -585
  290. package/src/common/mixins/CopyrightMixin.js +0 -48
  291. package/src/common/mixins/SearchMixin.js +0 -176
  292. package/src/common/mixins/TralisLayerMixin.js +0 -930
  293. package/src/common/styles/index.js +0 -4
  294. package/src/common/styles/trackerDefaultStyle.js +0 -333
  295. package/src/common/styles/trackerSimpleStyle.js +0 -22
  296. package/src/common/trackerConfig.js +0 -190
  297. package/src/common/trackerConfig.test.js +0 -25
  298. package/src/common/typedefs.js +0 -23
  299. package/src/common/utils/createTrackerFilters.js +0 -87
  300. package/src/common/utils/createTrackerFilters.test.js +0 -95
  301. package/src/common/utils/getMapboxMapCopyrights.js +0 -32
  302. package/src/common/utils/getMapboxMapCopyrights.test.js +0 -47
  303. package/src/common/utils/getMapboxStyleUrl.js +0 -32
  304. package/src/common/utils/getVehiclePosition.js +0 -72
  305. package/src/common/utils/index.js +0 -6
  306. package/src/common/utils/removeDuplicate.js +0 -22
  307. package/src/common/utils/removeDuplicate.test.js +0 -22
  308. package/src/common/utils/sortByDelay.js +0 -23
  309. package/src/common/utils/timeUtils.test.js +0 -16
  310. package/src/doc/App.js +0 -116
  311. package/src/doc/App.scss +0 -51
  312. package/src/doc/_redirects +0 -2
  313. package/src/doc/components/CodeSandboxButton.js +0 -103
  314. package/src/doc/components/Documentation.js +0 -40
  315. package/src/doc/components/Esdoc/Anchor.js +0 -57
  316. package/src/doc/components/Esdoc/ClassDoc.js +0 -272
  317. package/src/doc/components/Esdoc/DeprecatedHTML.js +0 -16
  318. package/src/doc/components/Esdoc/DetailDocs.js +0 -281
  319. package/src/doc/components/Esdoc/DetailHTML.js +0 -33
  320. package/src/doc/components/Esdoc/DirectSubclassHTML.js +0 -30
  321. package/src/doc/components/Esdoc/DocBuilderUtils.js +0 -694
  322. package/src/doc/components/Esdoc/DocLinkHTML.js +0 -62
  323. package/src/doc/components/Esdoc/DocsLinkHTML.js +0 -38
  324. package/src/doc/components/Esdoc/Esdoc.js +0 -63
  325. package/src/doc/components/Esdoc/EsdocContent.js +0 -51
  326. package/src/doc/components/Esdoc/EsdocNavigation.js +0 -13
  327. package/src/doc/components/Esdoc/EsdocSearch.js +0 -81
  328. package/src/doc/components/Esdoc/ExperimentalHTML.js +0 -17
  329. package/src/doc/components/Esdoc/ExtendsChainHTML.js +0 -32
  330. package/src/doc/components/Esdoc/FileDocLinkHTML.js +0 -60
  331. package/src/doc/components/Esdoc/IdentifiersDoc.js +0 -113
  332. package/src/doc/components/Esdoc/IndirectSubclassHTML.js +0 -30
  333. package/src/doc/components/Esdoc/InheritedSummaryDoc.js +0 -70
  334. package/src/doc/components/Esdoc/InheritedSummaryHTML.js +0 -38
  335. package/src/doc/components/Esdoc/MixinClassesHTML.js +0 -29
  336. package/src/doc/components/Esdoc/NavDoc.js +0 -112
  337. package/src/doc/components/Esdoc/OverrideMethod.js +0 -44
  338. package/src/doc/components/Esdoc/OverrideMethodDescription.js +0 -35
  339. package/src/doc/components/Esdoc/Properties.js +0 -89
  340. package/src/doc/components/Esdoc/README.md +0 -45
  341. package/src/doc/components/Esdoc/SignatureHTML.js +0 -123
  342. package/src/doc/components/Esdoc/SingleDoc.js +0 -31
  343. package/src/doc/components/Esdoc/SummaryDoc.js +0 -160
  344. package/src/doc/components/Esdoc/SummaryHTML.js +0 -96
  345. package/src/doc/components/Esdoc/TypeDocLinkHTML.js +0 -249
  346. package/src/doc/components/Esdoc/css/identifiers.css +0 -38
  347. package/src/doc/components/Esdoc/css/search.css +0 -76
  348. package/src/doc/components/Esdoc/css/style.css +0 -603
  349. package/src/doc/components/Esdoc/index.js +0 -7
  350. package/src/doc/components/Example.js +0 -153
  351. package/src/doc/components/Examples.js +0 -183
  352. package/src/doc/components/Home.js +0 -106
  353. package/src/doc/components/TrackerExample.js +0 -38
  354. package/src/doc/components/esm.min.js +0 -2
  355. package/src/doc/components/examples/assets/tralis-live-map/index.js +0 -11
  356. package/src/doc/components/examples/assets/tralis-live-map/s1kreis.svg +0 -105
  357. package/src/doc/components/examples/assets/tralis-live-map/s20kreis.svg +0 -101
  358. package/src/doc/components/examples/assets/tralis-live-map/s2kreis.svg +0 -95
  359. package/src/doc/components/examples/assets/tralis-live-map/s3kreis.svg +0 -95
  360. package/src/doc/components/examples/assets/tralis-live-map/s4kreis.svg +0 -95
  361. package/src/doc/components/examples/assets/tralis-live-map/s6kreis.svg +0 -95
  362. package/src/doc/components/examples/assets/tralis-live-map/s7kreis.svg +0 -95
  363. package/src/doc/components/examples/assets/tralis-live-map/s8kreis.svg +0 -93
  364. package/src/doc/components/examples/assets/tralis-live-map/unknown.svg +0 -107
  365. package/src/doc/components/examples/mb-copyright.html +0 -26
  366. package/src/doc/components/examples/mb-copyright.js +0 -37
  367. package/src/doc/components/examples/mb-tracker.html +0 -1
  368. package/src/doc/components/examples/mb-tracker.js +0 -39
  369. package/src/doc/components/examples/mb-tracker.md +0 -1
  370. package/src/doc/components/examples/mb-tralis.html +0 -1
  371. package/src/doc/components/examples/mb-tralis.js +0 -34
  372. package/src/doc/components/examples/ol-copyright.html +0 -26
  373. package/src/doc/components/examples/ol-copyright.js +0 -43
  374. package/src/doc/components/examples/ol-mapbox-layer.html +0 -1
  375. package/src/doc/components/examples/ol-mapbox-layer.js +0 -28
  376. package/src/doc/components/examples/ol-mapbox-layer.md +0 -0
  377. package/src/doc/components/examples/ol-mapbox-style-layer.html +0 -12
  378. package/src/doc/components/examples/ol-mapbox-style-layer.js +0 -44
  379. package/src/doc/components/examples/ol-query.html +0 -32
  380. package/src/doc/components/examples/ol-query.js +0 -83
  381. package/src/doc/components/examples/ol-routing.html +0 -26
  382. package/src/doc/components/examples/ol-routing.js +0 -59
  383. package/src/doc/components/examples/ol-routing.md +0 -1
  384. package/src/doc/components/examples/ol-stop-finder.html +0 -15
  385. package/src/doc/components/examples/ol-stop-finder.js +0 -31
  386. package/src/doc/components/examples/ol-stop-finder.md +0 -1
  387. package/src/doc/components/examples/ol-tracker.html +0 -1
  388. package/src/doc/components/examples/ol-tracker.js +0 -44
  389. package/src/doc/components/examples/ol-tracker.md +0 -1
  390. package/src/doc/components/examples/ol-tralis.html +0 -5
  391. package/src/doc/components/examples/ol-tralis.js +0 -57
  392. package/src/doc/components/examples/tralis-live-map.html +0 -1
  393. package/src/doc/components/examples/tralis-live-map.js +0 -51
  394. package/src/doc/components/examples/tralis-live-map.md +0 -3
  395. package/src/doc/examples/assets/tralis-live-map/index.js +0 -11
  396. package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +0 -105
  397. package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +0 -101
  398. package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +0 -95
  399. package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +0 -95
  400. package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +0 -95
  401. package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +0 -95
  402. package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +0 -95
  403. package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +0 -93
  404. package/src/doc/examples/assets/tralis-live-map/unknown.svg +0 -107
  405. package/src/doc/examples/mb-copyright.html +0 -26
  406. package/src/doc/examples/mb-copyright.js +0 -37
  407. package/src/doc/examples/mb-tracker.html +0 -1
  408. package/src/doc/examples/mb-tracker.js +0 -39
  409. package/src/doc/examples/mb-tracker.md +0 -1
  410. package/src/doc/examples/mb-tralis.html +0 -1
  411. package/src/doc/examples/mb-tralis.js +0 -34
  412. package/src/doc/examples/ol-copyright.html +0 -26
  413. package/src/doc/examples/ol-copyright.js +0 -43
  414. package/src/doc/examples/ol-mapbox-layer.html +0 -1
  415. package/src/doc/examples/ol-mapbox-layer.js +0 -28
  416. package/src/doc/examples/ol-mapbox-layer.md +0 -0
  417. package/src/doc/examples/ol-mapbox-style-layer.html +0 -12
  418. package/src/doc/examples/ol-mapbox-style-layer.js +0 -44
  419. package/src/doc/examples/ol-query.html +0 -32
  420. package/src/doc/examples/ol-query.js +0 -83
  421. package/src/doc/examples/ol-routing.html +0 -26
  422. package/src/doc/examples/ol-routing.js +0 -59
  423. package/src/doc/examples/ol-routing.md +0 -1
  424. package/src/doc/examples/ol-stop-finder.html +0 -15
  425. package/src/doc/examples/ol-stop-finder.js +0 -31
  426. package/src/doc/examples/ol-stop-finder.md +0 -1
  427. package/src/doc/examples/ol-tracker.html +0 -1
  428. package/src/doc/examples/ol-tracker.js +0 -44
  429. package/src/doc/examples/ol-tracker.md +0 -1
  430. package/src/doc/examples/ol-tralis.html +0 -5
  431. package/src/doc/examples/ol-tralis.js +0 -57
  432. package/src/doc/examples/tralis-live-map.html +0 -1
  433. package/src/doc/examples/tralis-live-map.js +0 -51
  434. package/src/doc/examples/tralis-live-map.md +0 -3
  435. package/src/doc/examples.js +0 -107
  436. package/src/doc/img/examples/live_tracker_mb.jpg +0 -0
  437. package/src/doc/img/examples/live_tracker_munich.jpg +0 -0
  438. package/src/doc/img/examples/live_tracker_ol.jpg +0 -0
  439. package/src/doc/img/examples/mapbox.jpg +0 -0
  440. package/src/doc/img/examples/mapbox_style.jpg +0 -0
  441. package/src/doc/img/examples/ol-copyright.png +0 -0
  442. package/src/doc/img/examples/query_objects.jpg +0 -0
  443. package/src/doc/img/examples/routing.jpg +0 -0
  444. package/src/doc/img/examples/simple_map.jpg +0 -0
  445. package/src/doc/img/examples/stops.jpg +0 -0
  446. package/src/doc/img/favico.ico +0 -0
  447. package/src/doc/index.js +0 -21
  448. package/src/index.js +0 -25
  449. package/src/mapbox/controls/CopyrightControl.js +0 -58
  450. package/src/mapbox/index.js +0 -3
  451. package/src/mapbox/layers/Layer.js +0 -118
  452. package/src/mapbox/layers/Layer.test.js +0 -202
  453. package/src/mapbox/layers/TralisLayer.js +0 -329
  454. package/src/mapbox/layers/TralisLayer.test.js +0 -40
  455. package/src/mapbox/utils.js +0 -46
  456. package/src/ol/README.md +0 -0
  457. package/src/ol/controls/CopyrightControl.js +0 -80
  458. package/src/ol/controls/CopyrightControl.test.js +0 -211
  459. package/src/ol/controls/RoutingControl.js +0 -752
  460. package/src/ol/controls/RoutingControl.test.js +0 -216
  461. package/src/ol/controls/StopFinderControl.test.js +0 -59
  462. package/src/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
  463. package/src/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
  464. package/src/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
  465. package/src/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
  466. package/src/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
  467. package/src/ol/controls/snapshots/RoutingControlStation1.json +0 -60
  468. package/src/ol/controls/snapshots/RoutingControlStation2.json +0 -49
  469. package/src/ol/index.js +0 -13
  470. package/src/ol/layers/Layer.js +0 -193
  471. package/src/ol/layers/Layer.test.js +0 -197
  472. package/src/ol/layers/MapboxLayer.js +0 -378
  473. package/src/ol/layers/MapboxLayer.test.js +0 -186
  474. package/src/ol/layers/MapboxStyleLayer.js +0 -417
  475. package/src/ol/layers/MapboxStyleLayer.test.js +0 -262
  476. package/src/ol/layers/MaplibreLayer.js +0 -280
  477. package/src/ol/layers/RoutingLayer.js +0 -91
  478. package/src/ol/layers/RoutingLayer.test.js +0 -49
  479. package/src/ol/layers/TralisLayer.js +0 -359
  480. package/src/ol/layers/TralisLayer.test.js +0 -97
  481. package/src/ol/layers/VectorLayer.js +0 -43
  482. package/src/ol/layers/VectorLayer.test.js +0 -98
  483. package/src/ol/layers/WMSLayer.js +0 -80
  484. package/src/ol/layers/WMSLayer.test.js +0 -84
  485. package/src/ol/styles/fullTrajectoryDelayStyle.js +0 -35
  486. package/src/ol/styles/fullTrajectoryStyle.js +0 -51
  487. package/webpack.config.js +0 -6
@@ -1,118 +0,0 @@
1
- import { unByKey } from 'ol/Observable';
2
- import { transformExtent } from 'ol/proj';
3
- import LayerCommon from '../../common/layers/Layer';
4
-
5
- /**
6
- * A class representing a layer to display on an OpenLayers map.
7
- *
8
- * @example
9
- * import { Layer } from 'mobility-toolbox-js/ol';
10
- *
11
- * const layer = new Layer({
12
- * olLayer: ...,
13
- * });
14
- *
15
- * @see <a href="/example/ol-map">Map example</a>
16
- *
17
- * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
18
- * @extends {Layer}
19
- */
20
- class Layer extends LayerCommon {
21
- /**
22
- * Initialize the layer and listen to user events.
23
- * @param {ol/Map~Map} map
24
- */
25
- init(map) {
26
- super.init(map);
27
-
28
- if (!this.map) {
29
- return;
30
- }
31
-
32
- if (this.isClickActive || this.isHoverActive) {
33
- this.toggleVisibleListeners();
34
- this.onChangeVisibleKey = this.on(
35
- 'change:visible',
36
- this.toggleVisibleListeners,
37
- );
38
- }
39
- }
40
-
41
- terminate(map) {
42
- if (this.map) {
43
- this.map.off('mousemove', this.onUserMoveCallback);
44
- this.map.off('click', this.onUserClickCallback);
45
- unByKey(this.onChangeVisibleKey);
46
- }
47
- super.terminate(map);
48
- }
49
-
50
- /**
51
- * Function triggered when the user click the map.
52
- * @private
53
- */
54
- onUserClickCallback(evt) {
55
- super.onUserClickCallback({ coordinate: evt.lngLat.toArray(), ...evt });
56
- }
57
-
58
- /**
59
- * Function triggered when the user moves the cursor over the map.
60
- * @private
61
- */
62
- onUserMoveCallback(evt) {
63
- super.onUserMoveCallback({ coordinate: evt.lngLat.toArray(), ...evt });
64
- }
65
-
66
- /**
67
- * Toggle listeners needed when a layer is avisible or not.
68
- * @private
69
- */
70
- toggleVisibleListeners() {
71
- if (this.visible) {
72
- if (this.isClickActive) {
73
- this.map.on('click', this.onUserClickCallback);
74
- }
75
-
76
- if (this.isHoverActive) {
77
- this.map.on('mousemove', this.onUserMoveCallback);
78
- }
79
- } else {
80
- if (this.isClickActive) {
81
- this.map.off('click', this.onUserClickCallback);
82
- }
83
-
84
- if (this.isHoverActive) {
85
- this.map.off('mousemove', this.onUserMoveCallback);
86
- }
87
- }
88
- }
89
-
90
- /**
91
- * Returns the current extent in mercator coordinates.
92
- */
93
- getMercatorExtent() {
94
- const bounds = this.map.getBounds().toArray();
95
- return transformExtent(
96
- [...bounds[0], ...bounds[1]],
97
- 'EPSG:4326',
98
- 'EPSG:3857',
99
- );
100
- }
101
-
102
- /**
103
- * Returns the equivalent zoom in Openlayers.
104
- */
105
- getOlZoom() {
106
- return this.map.getZoom() + 1;
107
- }
108
-
109
- /**
110
- * Create a copy of the Layer.
111
- * @param {Object} newOptions Options to override
112
- * @return {Layer} A Layer
113
- */
114
- clone(newOptions) {
115
- return new Layer({ ...this.options, ...newOptions });
116
- }
117
- }
118
- export default Layer;
@@ -1,202 +0,0 @@
1
- import { Map } from 'maplibre-gl';
2
- import { toLonLat } from 'ol/proj';
3
- import Layer from './Layer';
4
-
5
- let map;
6
- let mapElement;
7
-
8
- describe('Layer', () => {
9
- beforeEach(() => {
10
- mapElement = document.createElement('div');
11
- const { style } = mapElement;
12
- style.position = 'absolute';
13
- style.left = '0px';
14
- style.top = '0px';
15
- style.width = '400px';
16
- style.height = '400px';
17
- mapElement.setAttribute('id', 'map');
18
- document.body.appendChild(mapElement);
19
- map = new Map({
20
- container: document.getElementById('map'),
21
- style: `path/to/style`,
22
- center: toLonLat([831634, 5933959]),
23
- zoom: 9,
24
- });
25
- });
26
-
27
- afterEach(() => {
28
- document.body.removeChild(mapElement);
29
- });
30
-
31
- test('should initialize.', () => {
32
- const layer = new Layer({ name: 'Layer' });
33
- expect(layer).toBeInstanceOf(Layer);
34
- });
35
-
36
- test('should be visible by default.', () => {
37
- const layer = new Layer({ name: 'Layer' });
38
- expect(layer.visible).toBe(true);
39
- });
40
-
41
- test('should be invisible if defined.', () => {
42
- const layer = new Layer({ name: 'Layer', visible: false });
43
- expect(layer.visible).toBe(false);
44
- });
45
-
46
- test('should be invisible if set.', () => {
47
- const layer = new Layer({ name: 'Layer' });
48
- layer.setVisible(false);
49
- expect(layer.visible).toBe(false);
50
- });
51
-
52
- test('should visibility stay unchanged', () => {
53
- const layer = new Layer({ name: 'Layer', visible: false });
54
- layer.setVisible(false);
55
- expect(layer.visible).toBe(false);
56
- });
57
-
58
- test('should return its name.', () => {
59
- const layer = new Layer({ name: 'Layer', visible: false });
60
- expect(layer.name).toEqual('Layer');
61
- });
62
-
63
- test('should call terminate on initialization.', () => {
64
- const layer = new Layer({ name: 'Layer' });
65
- const spy = jest.spyOn(layer, 'terminate');
66
- layer.init(map);
67
- expect(spy).toHaveBeenCalledTimes(1);
68
- });
69
-
70
- test('should listen for click/hover events when layer is visible by default then should not when hidden.', async () => {
71
- global.console.error = jest.fn();
72
- const layer = new Layer({ name: 'Layer' });
73
- expect(layer.visible).toBe(true);
74
- const spy = jest.fn();
75
- const spy2 = jest.fn();
76
- layer.init(map);
77
- layer.onHover(spy);
78
- layer.onClick(spy2);
79
- expect(spy).toHaveBeenCalledTimes(0);
80
- expect(spy2).toHaveBeenCalledTimes(0);
81
-
82
- await map.fire('mousemove', {
83
- type: 'mousemove',
84
- lngLat: { toArray: () => [0, 0] },
85
- coordinate: [0, 0],
86
- });
87
- await map.fire('click', {
88
- type: 'click',
89
- lngLat: { toArray: () => [0, 0] },
90
- });
91
- expect(spy).toHaveBeenCalledTimes(1);
92
- expect(spy2).toHaveBeenCalledTimes(1);
93
- spy.mockReset();
94
- spy2.mockReset();
95
-
96
- layer.setVisible(false);
97
- await map.fire('mousemove', {
98
- type: 'mousemove',
99
- lngLat: { toArray: () => [0, 0] },
100
- });
101
- await map.fire('click', {
102
- type: 'click',
103
- lngLat: { toArray: () => [0, 0] },
104
- });
105
- expect(spy).toHaveBeenCalledTimes(0);
106
- expect(spy2).toHaveBeenCalledTimes(0);
107
- global.console.error.mockRestore();
108
- });
109
-
110
- test('should not listen for click/hover events when layer is not visible by default then should not when visible.', async () => {
111
- global.console.error = jest.fn();
112
- const layer = new Layer({ name: 'Layer', visible: false });
113
- expect(layer.visible).toBe(false);
114
- const spy = jest.fn();
115
- const spy2 = jest.fn();
116
- layer.init(map);
117
- layer.onHover(spy);
118
- layer.onClick(spy2);
119
- expect(spy).toHaveBeenCalledTimes(0);
120
- expect(spy2).toHaveBeenCalledTimes(0);
121
-
122
- await map.fire('mousemove', {
123
- type: 'mousemove',
124
- lngLat: { toArray: () => [0, 0] },
125
- coordinate: [0, 0],
126
- });
127
- await map.fire('click', {
128
- type: 'click',
129
- lngLat: { toArray: () => [0, 0] },
130
- });
131
- expect(spy).toHaveBeenCalledTimes(0);
132
- expect(spy2).toHaveBeenCalledTimes(0);
133
- spy.mockReset();
134
- spy2.mockReset();
135
-
136
- layer.setVisible(true);
137
- await map.fire('mousemove', {
138
- type: 'mousemove',
139
- lngLat: { toArray: () => [0, 0] },
140
- coordinate: [0, 0],
141
- });
142
- await map.fire('click', {
143
- type: 'click',
144
- lngLat: { toArray: () => [0, 0] },
145
- });
146
- expect(spy).toHaveBeenCalledTimes(1);
147
- expect(spy2).toHaveBeenCalledTimes(1);
148
- global.console.error.mockRestore();
149
- });
150
-
151
- test('should not listen for click/hover events after layer.terminate()', async () => {
152
- global.console.error = jest.fn();
153
- const layer = new Layer({ name: 'Layer', visible: true });
154
- expect(layer.visible).toBe(true);
155
- const spy = jest.fn();
156
- const spy2 = jest.fn();
157
- layer.init(map);
158
- layer.onHover(spy);
159
- layer.onClick(spy2);
160
- expect(spy).toHaveBeenCalledTimes(0);
161
- expect(spy2).toHaveBeenCalledTimes(0);
162
-
163
- await map.fire('mousemove', {
164
- type: 'mousemove',
165
- lngLat: { toArray: () => [0, 0] },
166
- coordinate: [0, 0],
167
- });
168
- await map.fire('click', {
169
- type: 'click',
170
- lngLat: { toArray: () => [0, 0] },
171
- });
172
- expect(spy).toHaveBeenCalledTimes(1);
173
- expect(spy2).toHaveBeenCalledTimes(1);
174
- spy.mockReset();
175
- spy2.mockReset();
176
-
177
- layer.terminate(map);
178
- await map.fire('mousemove', {
179
- type: 'mousemove',
180
- lngLat: { toArray: () => [0, 0] },
181
- coordinate: [0, 0],
182
- });
183
- await map.fire('click', {
184
- type: 'click',
185
- lngLat: { toArray: () => [0, 0] },
186
- });
187
- expect(spy).toHaveBeenCalledTimes(0);
188
- expect(spy2).toHaveBeenCalledTimes(0);
189
- global.console.error.mockRestore();
190
- });
191
-
192
- test('should clone', () => {
193
- const layer = new Layer({
194
- name: 'Layer',
195
- copyrights: ['bar'],
196
- });
197
- const clone = layer.clone({ name: 'clone' });
198
- expect(clone).not.toBe(layer);
199
- expect(clone.name).toBe('clone');
200
- expect(clone).toBeInstanceOf(Layer);
201
- });
202
- });
@@ -1,329 +0,0 @@
1
- import { fromLonLat } from 'ol/proj';
2
- import { unByKey } from 'ol/Observable';
3
- import { getWidth, getHeight } from 'ol/extent';
4
- import transformRotate from '@turf/transform-rotate';
5
- import { point } from '@turf/helpers';
6
- import mixin from '../../common/mixins/TralisLayerMixin';
7
- import Layer from './Layer';
8
- import { getSourceCoordinates, getMercatorResolution } from '../utils';
9
-
10
- /**
11
- * Responsible for loading and display data from a Tralis service.
12
- *
13
- * @example
14
- * import { TralisLayer } from 'mobility-toolbox-js/mapbox';
15
- *
16
- * const layer = new TralisLayer({
17
- * url: [yourUrl],
18
- * apiKey: [yourApiKey],
19
- * });
20
- *
21
- *
22
- * @see <a href="/api/class/src/api/tralis/TralisAPI%20js~TralisAPI%20html">TralisAPI</a>
23
- *
24
- * @extends {Layer}
25
- * @implements {TralisLayerInterface}
26
- */
27
- class TralisLayer extends mixin(Layer) {
28
- constructor(options = {}) {
29
- super({
30
- ...options,
31
- });
32
-
33
- /** @ignore */
34
- this.onLoad = this.onLoad.bind(this);
35
-
36
- /** @ignore */
37
- this.onMove = this.onMove.bind(this);
38
-
39
- /** @ignore */
40
- this.onMoveEnd = this.onMoveEnd.bind(this);
41
-
42
- /** @ignore */
43
- this.onZoomEnd = this.onZoomEnd.bind(this);
44
-
45
- /** @ignore */
46
- this.onVisibilityChange = this.onVisibilityChange.bind(this);
47
- }
48
-
49
- /**
50
- * Initialize the layer.
51
- *
52
- * @param {mapboxgl.Map} map A [mapbox Map](https://docs.mapbox.com/mapbox-gl-js/api/map/).
53
- * @param {string} beforeId Layer's id before which we want to add the new layer.
54
- * @override
55
- */
56
- init(map, beforeId) {
57
- if (!map) {
58
- return;
59
- }
60
-
61
- const canvas = map.getCanvas();
62
-
63
- super.init(map, {
64
- width: canvas.width / this.pixelRatio,
65
- height: canvas.height / this.pixelRatio,
66
- });
67
-
68
- this.source = {
69
- type: 'canvas',
70
- canvas: this.tracker.canvas,
71
- coordinates: getSourceCoordinates(map, this.pixelRatio),
72
- // Set to true if the canvas source is animated. If the canvas is static, animate should be set to false to improve performance.
73
- animate: true,
74
- attribution: this.copyrights && this.copyrights.join(', '),
75
- };
76
-
77
- this.beforeId = beforeId;
78
- this.layer = {
79
- id: this.key,
80
- type: 'raster',
81
- source: this.key,
82
- layout: {
83
- visibility: this.visible ? 'visible' : 'none',
84
- },
85
- paint: {
86
- 'raster-opacity': 1,
87
- 'raster-fade-duration': 0,
88
- 'raster-resampling': 'nearest', // important otherwise it looks blurry
89
- },
90
- };
91
-
92
- if (map.isStyleLoaded()) {
93
- this.onLoad();
94
- }
95
-
96
- this.map.on('load', this.onLoad);
97
-
98
- this.listeners = [this.on('change:visible', this.onVisibilityChange)];
99
- }
100
-
101
- /**
102
- * Remove listeners from the Mapbox Map.
103
- */
104
- terminate() {
105
- if (this.map) {
106
- this.map.off('load', this.onLoad);
107
-
108
- this.listeners.forEach((listener) => {
109
- unByKey(listener);
110
- });
111
- if (this.map.getLayer(this.key)) {
112
- this.map.removeLayer(this.key);
113
- }
114
- if (this.map.getSource(this.key)) {
115
- this.map.removeSource(this.key);
116
- }
117
- }
118
- super.terminate();
119
- }
120
-
121
- /**
122
- * Start updating vehicles position.
123
- *
124
- * @listens {mapboxgl.map.event:zoomend} Listen to zoom end event.
125
- * @listens {mapboxgl.map.event:mousemove} Listen to mousemove end.
126
- * @override
127
- */
128
- start() {
129
- super.start();
130
-
131
- this.map.on('move', this.onMove);
132
- this.map.on('moveend', this.onMoveEnd);
133
- this.map.on('zoomend', this.onZoomEnd);
134
- }
135
-
136
- /**
137
- * Stop updating vehicles position, and unlisten events.
138
- *
139
- * @override
140
- */
141
- stop() {
142
- super.stop();
143
- if (this.map) {
144
- this.map.off('move', this.onMove);
145
- this.map.off('moveend', this.onMoveEnd);
146
- this.map.off('zoomend', this.onZoomEnd);
147
- }
148
- }
149
-
150
- onLoad() {
151
- if (!this.map.getSource(this.key)) {
152
- this.map.addSource(this.key, this.source);
153
- }
154
- if (!this.map.getLayer(this.key)) {
155
- this.map.addLayer(this.layer, this.beforeId);
156
- }
157
- }
158
-
159
- /**
160
- * Function triggered when the user click the map.
161
- * @override
162
- */
163
- onUserClickCallback(evt) {
164
- super.onUserClickCallback({
165
- coordinate: fromLonLat(evt.lngLat.toArray()),
166
- ...evt,
167
- });
168
- }
169
-
170
- /**
171
- * Function triggered when the user moves the cursor over the map.
172
- * @override
173
- */
174
- onUserMoveCallback(evt) {
175
- super.onUserMoveCallback({
176
- coordinate: fromLonLat(evt.lngLat.toArray()),
177
- ...evt,
178
- });
179
- }
180
-
181
- /**
182
- * Render the trajectories using current map's size, resolution and rotation.
183
- * @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
184
- * @overrides
185
- */
186
- renderTrajectories(noInterpolate) {
187
- const { width, height } = this.map.getCanvas();
188
- const center = this.map.getCenter();
189
-
190
- // We use turf here to have good transform.
191
- const leftBottom = this.map.unproject({
192
- x: 0,
193
- y: height / this.pixelRatio,
194
- }); // southWest
195
- const rightTop = this.map.unproject({ x: width / this.pixelRatio, y: 0 }); // north east
196
-
197
- const coord0 = transformRotate(
198
- point([leftBottom.lng, leftBottom.lat]),
199
- -this.map.getBearing(),
200
- {
201
- pivot: [center.lng, center.lat],
202
- },
203
- ).geometry.coordinates;
204
- const coord1 = transformRotate(
205
- point([rightTop.lng, rightTop.lat]),
206
- -this.map.getBearing(),
207
- {
208
- pivot: [center.lng, center.lat],
209
- },
210
- ).geometry.coordinates;
211
-
212
- const bounds = [...fromLonLat(coord0), ...fromLonLat(coord1)];
213
- const xResolution = getWidth(bounds) / (width / this.pixelRatio);
214
- const yResolution = getHeight(bounds) / (height / this.pixelRatio);
215
- const res = Math.max(xResolution, yResolution);
216
-
217
- // Coordinate of trajectories are in mercator so we have to pass the proper resolution and center in mercator.
218
- const viewState = {
219
- size: [width / this.pixelRatio, height / this.pixelRatio],
220
- center: fromLonLat([center.lng, center.lat]),
221
- extent: bounds,
222
- resolution: res,
223
- zoom: this.map.getZoom(),
224
- rotation: -(this.map.getBearing() * Math.PI) / 180,
225
- pixelRatio: this.pixelRatio,
226
- };
227
-
228
- super.renderTrajectories(viewState, noInterpolate);
229
- }
230
-
231
- /**
232
- * Return the delay in ms before the next rendering.
233
- */
234
- getRefreshTimeInMs() {
235
- return super.getRefreshTimeInMs(this.map.getZoom());
236
- }
237
-
238
- getFeatureInfoAtCoordinate(coordinate, options = {}) {
239
- const resolution = getMercatorResolution(this.map);
240
- return super.getFeatureInfoAtCoordinate(coordinate, {
241
- resolution,
242
- ...options,
243
- });
244
- }
245
-
246
- onVisibilityChange() {
247
- if (this.visible && !this.map.getLayer(this.key)) {
248
- this.map.addLayer(this.layer, this.beforeId);
249
- } else if (this.map.getLayer(this.key)) {
250
- this.map.removeLayer(this.key);
251
- }
252
- // We can't use setLayoutProperty it triggers an error probably a bug in mapbox
253
- // this.map.setLayoutProperty(
254
- // this.key,
255
- // 'visibilty',
256
- // this.visible ? 'visible' : 'none',
257
- // );
258
- }
259
-
260
- /**
261
- * Remove the trajectory form the list if necessary.
262
- *
263
- * @private
264
- */
265
- purgeTrajectory(trajectory, extent, zoom) {
266
- return super.purgeTrajectory(
267
- trajectory,
268
- extent || this.getMercatorExtent(),
269
- zoom || Math.floor(this.map.getZoom() + 1),
270
- );
271
- }
272
-
273
- /**
274
- * Send the current bbox to the websocket
275
- */
276
- setBbox(extent, zoom) {
277
- let newExtent = extent;
278
- let newZoom = zoom;
279
- if (!newExtent && this.isUpdateBboxOnMoveEnd) {
280
- newExtent = extent || this.getMercatorExtent();
281
- newZoom = Math.floor(this.getOlZoom());
282
- }
283
- super.setBbox(newExtent, newZoom);
284
- }
285
-
286
- /**
287
- * Callback on 'move' event.
288
- *
289
- * @private
290
- */
291
- onMove() {
292
- const extent = getSourceCoordinates(this.map, this.pixelRatio);
293
- const source = this.map.getSource(this.key);
294
- if (source) {
295
- source.setCoordinates(extent);
296
- }
297
- this.renderTrajectories();
298
- }
299
-
300
- /**
301
- * Send the new BBOX to the websocket.
302
- *
303
- * @param {ol/MapEvent~MapEvent} evt Moveend event
304
- * @private
305
- * @override
306
- */
307
- onMoveEnd() {
308
- this.renderTrajectories();
309
-
310
- if (this.visible && this.isUpdateBboxOnMoveEnd) {
311
- this.setBbox();
312
- }
313
- }
314
-
315
- /**
316
- * Update the cursor style when hovering a vehicle.
317
- *
318
- * @private
319
- * @override
320
- */
321
- onFeatureHover(features, layer, coordinate) {
322
- super.onFeatureHover(features, layer, coordinate);
323
- this.map.getCanvasContainer().style.cursor = features.length
324
- ? 'pointer'
325
- : 'auto';
326
- }
327
- }
328
-
329
- export default TralisLayer;
@@ -1,40 +0,0 @@
1
- import TralisLayer from './TralisLayer';
2
-
3
- let layer;
4
- let onClick;
5
-
6
- describe('TralisLayer', () => {
7
- beforeEach(() => {
8
- onClick = jest.fn();
9
- layer = new TralisLayer({
10
- onClick,
11
- });
12
- });
13
-
14
- test('should be instanced.', () => {
15
- expect(layer).toBeInstanceOf(TralisLayer);
16
- expect(layer.clickCallbacks[0]).toBe(onClick);
17
- });
18
-
19
- test('#onClick', () => {
20
- const f = () => {};
21
- layer.onClick(f);
22
- expect(layer.clickCallbacks[1]).toBe(f);
23
- expect(layer.clickCallbacks.length).toBe(2);
24
- layer.onClick(f);
25
- expect(layer.clickCallbacks.length).toBe(2);
26
- });
27
-
28
- test('#unClick', () => {
29
- const foo = () => {};
30
- const bar = () => {};
31
- layer.onClick(foo);
32
- layer.onClick(bar);
33
- expect(layer.clickCallbacks[1]).toBe(foo);
34
- expect(layer.clickCallbacks[2]).toBe(bar);
35
- expect(layer.clickCallbacks.length).toBe(3);
36
- layer.unClick(foo);
37
- expect(layer.clickCallbacks[1]).toBe(bar);
38
- expect(layer.clickCallbacks.length).toBe(2);
39
- });
40
- });