mobility-toolbox-js 2.0.0-beta.8 → 2.0.0-beta.80

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 (447) hide show
  1. package/api/RealtimeAPI.d.ts +279 -0
  2. package/api/RealtimeAPI.d.ts.map +1 -0
  3. package/api/RealtimeAPI.js +466 -0
  4. package/api/RoutingAPI.d.ts +37 -0
  5. package/api/RoutingAPI.d.ts.map +1 -0
  6. package/api/RoutingAPI.js +35 -0
  7. package/api/StopsAPI.d.ts +38 -0
  8. package/api/StopsAPI.d.ts.map +1 -0
  9. package/api/StopsAPI.js +36 -0
  10. package/api/index.d.ts +4 -0
  11. package/api/index.d.ts.map +1 -0
  12. package/api/index.js +3 -0
  13. package/api/typedefs.d.ts +179 -0
  14. package/api/typedefs.d.ts.map +1 -0
  15. package/{src/api/tralis → api}/typedefs.js +4 -10
  16. package/common/api/HttpAPI.d.ts +31 -0
  17. package/common/api/HttpAPI.d.ts.map +1 -0
  18. package/common/api/HttpAPI.js +57 -0
  19. package/common/api/WebSocketAPI.d.ts +153 -0
  20. package/common/api/WebSocketAPI.d.ts.map +1 -0
  21. package/common/api/WebSocketAPI.js +341 -0
  22. package/common/controls/ControlCommon.d.ts +76 -0
  23. package/common/controls/ControlCommon.d.ts.map +1 -0
  24. package/common/controls/ControlCommon.js +150 -0
  25. package/common/controls/CopyrightControlCommon.d.ts +13 -0
  26. package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
  27. package/common/controls/CopyrightControlCommon.js +34 -0
  28. package/common/controls/StopFinderControlCommon.d.ts +55 -0
  29. package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
  30. package/common/controls/StopFinderControlCommon.js +144 -0
  31. package/common/index.d.ts +3 -0
  32. package/common/index.d.ts.map +1 -0
  33. package/common/index.js +2 -0
  34. package/common/layers/LayerCommon.d.ts +94 -0
  35. package/common/layers/LayerCommon.d.ts.map +1 -0
  36. package/common/layers/LayerCommon.js +244 -0
  37. package/common/mixins/RealtimeLayerMixin.d.ts +286 -0
  38. package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
  39. package/common/mixins/RealtimeLayerMixin.js +776 -0
  40. package/common/mixins/UserInteractionsLayerMixin.d.ts +60 -0
  41. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
  42. package/common/mixins/UserInteractionsLayerMixin.js +241 -0
  43. package/common/styles/index.d.ts +5 -0
  44. package/common/styles/index.d.ts.map +1 -0
  45. package/common/styles/index.js +4 -0
  46. package/common/styles/realtimeDefaultStyle.d.ts +36 -0
  47. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
  48. package/common/styles/realtimeDefaultStyle.js +275 -0
  49. package/{src/common/styles/trackerDelayStyle.js → common/styles/realtimeDelayStyle.d.ts} +4 -9
  50. package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
  51. package/common/styles/realtimeDelayStyle.js +13 -0
  52. package/common/styles/realtimeHeadingStyle.d.ts +12 -0
  53. package/common/styles/realtimeHeadingStyle.d.ts.map +1 -0
  54. package/common/styles/realtimeHeadingStyle.js +85 -0
  55. package/common/styles/realtimeSimpleStyle.d.ts +4 -0
  56. package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
  57. package/common/styles/realtimeSimpleStyle.js +23 -0
  58. package/common/typedefs.d.ts +111 -0
  59. package/common/typedefs.d.ts.map +1 -0
  60. package/common/typedefs.js +52 -0
  61. package/common/utils/compareDepartures.d.ts +11 -0
  62. package/common/utils/compareDepartures.d.ts.map +1 -0
  63. package/common/utils/compareDepartures.js +35 -0
  64. package/common/utils/createCanvas.d.ts +10 -0
  65. package/common/utils/createCanvas.d.ts.map +1 -0
  66. package/common/utils/createCanvas.js +27 -0
  67. package/common/utils/createRealtimeFilters.d.ts +13 -0
  68. package/common/utils/createRealtimeFilters.d.ts.map +1 -0
  69. package/common/utils/createRealtimeFilters.js +74 -0
  70. package/common/utils/debounceDeparturesMessages.d.ts +12 -0
  71. package/common/utils/debounceDeparturesMessages.d.ts.map +1 -0
  72. package/common/utils/debounceDeparturesMessages.js +24 -0
  73. package/common/utils/debounceWebsocketMessages.d.ts +11 -0
  74. package/common/utils/debounceWebsocketMessages.d.ts.map +1 -0
  75. package/common/utils/debounceWebsocketMessages.js +29 -0
  76. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  77. package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
  78. package/common/utils/getLayersAsFlatArray.js +15 -0
  79. package/common/utils/getMapboxMapCopyrights.d.ts +18 -0
  80. package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
  81. package/common/utils/getMapboxMapCopyrights.js +30 -0
  82. package/common/utils/getMapboxRender.d.ts +7 -0
  83. package/common/utils/getMapboxRender.d.ts.map +1 -0
  84. package/common/utils/getMapboxRender.js +87 -0
  85. package/common/utils/getMaplibreRender.d.ts +7 -0
  86. package/common/utils/getMaplibreRender.d.ts.map +1 -0
  87. package/common/utils/getMaplibreRender.js +38 -0
  88. package/common/utils/getRealtimeModeSuffix.d.ts +10 -0
  89. package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
  90. package/common/utils/getRealtimeModeSuffix.js +7 -0
  91. package/common/utils/getUrlWithParams.d.ts +9 -0
  92. package/common/utils/getUrlWithParams.d.ts.map +1 -0
  93. package/common/utils/getUrlWithParams.js +18 -0
  94. package/common/utils/getVehiclePosition.d.ts +16 -0
  95. package/common/utils/getVehiclePosition.d.ts.map +1 -0
  96. package/common/utils/getVehiclePosition.js +72 -0
  97. package/common/utils/index.d.ts +17 -0
  98. package/common/utils/index.d.ts.map +1 -0
  99. package/common/utils/index.js +17 -0
  100. package/common/utils/realtimeConfig.d.ts +49 -0
  101. package/common/utils/realtimeConfig.d.ts.map +1 -0
  102. package/common/utils/realtimeConfig.js +173 -0
  103. package/common/utils/removeDuplicate.d.ts +10 -0
  104. package/common/utils/removeDuplicate.d.ts.map +1 -0
  105. package/common/utils/removeDuplicate.js +15 -0
  106. package/common/utils/renderTrajectories.d.ts +17 -0
  107. package/common/utils/renderTrajectories.d.ts.map +1 -0
  108. package/common/utils/renderTrajectories.js +110 -0
  109. package/common/utils/sortAndFilterDepartures.d.ts +16 -0
  110. package/common/utils/sortAndFilterDepartures.d.ts.map +1 -0
  111. package/common/utils/sortAndFilterDepartures.js +58 -0
  112. package/common/utils/sortByDelay.d.ts +3 -0
  113. package/common/utils/sortByDelay.d.ts.map +1 -0
  114. package/common/utils/sortByDelay.js +20 -0
  115. package/common/utils/timeUtils.d.ts +24 -0
  116. package/common/utils/timeUtils.d.ts.map +1 -0
  117. package/{src/common → common}/utils/timeUtils.js +13 -18
  118. package/iife.d.ts +3 -0
  119. package/iife.d.ts.map +1 -0
  120. package/{src/iife.js → iife.js} +1 -3
  121. package/index.d.ts +10 -0
  122. package/index.d.ts.map +1 -0
  123. package/index.js +10 -0
  124. package/mapbox/controls/CopyrightControl.d.ts +29 -0
  125. package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
  126. package/mapbox/controls/CopyrightControl.js +48 -0
  127. package/mapbox/controls/index.d.ts +2 -0
  128. package/mapbox/controls/index.d.ts.map +1 -0
  129. package/mapbox/index.d.ts +6 -0
  130. package/mapbox/index.d.ts.map +1 -0
  131. package/{src/mapbox → mapbox}/index.js +1 -0
  132. package/mapbox/layers/Layer.d.ts +59 -0
  133. package/mapbox/layers/Layer.d.ts.map +1 -0
  134. package/mapbox/layers/Layer.js +101 -0
  135. package/mapbox/layers/RealtimeLayer.d.ts +181 -0
  136. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
  137. package/mapbox/layers/RealtimeLayer.js +276 -0
  138. package/mapbox/layers/index.d.ts +3 -0
  139. package/mapbox/layers/index.d.ts.map +1 -0
  140. package/mapbox/layers/index.js +2 -0
  141. package/mapbox/utils/getMercatorResolution.d.ts +9 -0
  142. package/mapbox/utils/getMercatorResolution.d.ts.map +1 -0
  143. package/mapbox/utils/getMercatorResolution.js +18 -0
  144. package/mapbox/utils/getSourceCoordinates.d.ts +9 -0
  145. package/mapbox/utils/getSourceCoordinates.d.ts.map +1 -0
  146. package/mapbox/utils/getSourceCoordinates.js +27 -0
  147. package/mapbox/utils/index.d.ts +3 -0
  148. package/mapbox/utils/index.d.ts.map +1 -0
  149. package/mapbox/utils/index.js +2 -0
  150. package/mbt.js +59981 -0
  151. package/mbt.js.map +7 -0
  152. package/mbt.min.js +1084 -0
  153. package/mbt.min.js.map +7 -0
  154. package/ol/controls/CopyrightControl.d.ts +31 -0
  155. package/ol/controls/CopyrightControl.d.ts.map +1 -0
  156. package/ol/controls/CopyrightControl.js +68 -0
  157. package/ol/controls/RoutingControl.d.ts +193 -0
  158. package/ol/controls/RoutingControl.d.ts.map +1 -0
  159. package/ol/controls/RoutingControl.js +631 -0
  160. package/ol/controls/StopFinderControl.d.ts +30 -0
  161. package/ol/controls/StopFinderControl.d.ts.map +1 -0
  162. package/{src/ol → ol}/controls/StopFinderControl.js +10 -16
  163. package/ol/controls/index.d.ts +4 -0
  164. package/ol/controls/index.d.ts.map +1 -0
  165. package/ol/index.d.ts +6 -0
  166. package/ol/index.d.ts.map +1 -0
  167. package/ol/layers/Layer.d.ts +86 -0
  168. package/ol/layers/Layer.d.ts.map +1 -0
  169. package/ol/layers/Layer.js +160 -0
  170. package/ol/layers/MapGlLayer.d.ts +67 -0
  171. package/ol/layers/MapGlLayer.d.ts.map +1 -0
  172. package/ol/layers/MapGlLayer.js +218 -0
  173. package/ol/layers/MapboxLayer.d.ts +50 -0
  174. package/ol/layers/MapboxLayer.d.ts.map +1 -0
  175. package/ol/layers/MapboxLayer.js +109 -0
  176. package/ol/layers/MapboxStyleLayer.d.ts +129 -0
  177. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
  178. package/ol/layers/MapboxStyleLayer.js +374 -0
  179. package/ol/layers/MaplibreLayer.d.ts +28 -0
  180. package/ol/layers/MaplibreLayer.d.ts.map +1 -0
  181. package/ol/layers/MaplibreLayer.js +34 -0
  182. package/ol/layers/RealtimeLayer.d.ts +202 -0
  183. package/ol/layers/RealtimeLayer.d.ts.map +1 -0
  184. package/ol/layers/RealtimeLayer.js +340 -0
  185. package/ol/layers/RoutingLayer.d.ts +34 -0
  186. package/ol/layers/RoutingLayer.d.ts.map +1 -0
  187. package/ol/layers/RoutingLayer.js +85 -0
  188. package/ol/layers/VectorLayer.d.ts +25 -0
  189. package/ol/layers/VectorLayer.d.ts.map +1 -0
  190. package/ol/layers/VectorLayer.js +38 -0
  191. package/ol/layers/WMSLayer.d.ts +42 -0
  192. package/ol/layers/WMSLayer.d.ts.map +1 -0
  193. package/ol/layers/WMSLayer.js +88 -0
  194. package/ol/layers/index.d.ts +9 -0
  195. package/ol/layers/index.d.ts.map +1 -0
  196. package/{src/ol → ol}/layers/index.js +1 -1
  197. package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
  198. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
  199. package/ol/styles/fullTrajectoryDelayStyle.js +33 -0
  200. package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
  201. package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
  202. package/ol/styles/fullTrajectoryStyle.js +44 -0
  203. package/ol/styles/index.d.ts +3 -0
  204. package/ol/styles/index.d.ts.map +1 -0
  205. package/package.json +96 -189
  206. package/setupTests.d.ts +2 -0
  207. package/setupTests.d.ts.map +1 -0
  208. package/{src/setupTests.js → setupTests.js} +13 -2
  209. package/types/common.d.ts +122 -0
  210. package/types/index.d.ts +11 -0
  211. package/types/realtime.d.ts +320 -0
  212. package/types/routing.d.ts +206 -0
  213. package/types/stops.d.ts +143 -0
  214. package/.babelrc +0 -6
  215. package/.esdoc.json +0 -17
  216. package/.eslintignore +0 -1
  217. package/.github/workflows/conventional-pr-title.yml +0 -21
  218. package/.github/workflows/cypress.yml +0 -29
  219. package/.github/workflows/nodejs.yml +0 -28
  220. package/.husky/commit-msg +0 -4
  221. package/.husky/post-checkout +0 -4
  222. package/.husky/post-merge +0 -4
  223. package/.husky/post-rebase +0 -4
  224. package/.husky/pre-commit +0 -4
  225. package/.neutrinorc.js +0 -176
  226. package/.nvmrc +0 -1
  227. package/CHANGELOG.md +0 -10
  228. package/LICENSE +0 -21
  229. package/README.md +0 -23
  230. package/__mocks__/mapbox-gl.js +0 -81
  231. package/__mocks__/maplibre-gl.js +0 -81
  232. package/commitlint.config.js +0 -1
  233. package/cypress/fixtures/example.json +0 -5
  234. package/cypress/integration/examples/api.spec.js +0 -7
  235. package/cypress/integration/examples/examples.spec.js +0 -7
  236. package/cypress/integration/examples/navigation.spec.js +0 -29
  237. package/cypress/plugins/index.js +0 -21
  238. package/cypress/support/commands.js +0 -25
  239. package/cypress/support/index.js +0 -20
  240. package/cypress.json +0 -4
  241. package/data/fetchRoute.json +0 -292
  242. package/data/fetchTrajectories.json +0 -18
  243. package/data/fetchTrajectoryById.json +0 -3
  244. package/data/fetchTrajectoryStations.json +0 -18
  245. package/data/stopsSearch.json +0 -15
  246. package/documentation.yml +0 -4
  247. package/esdoc/README.md +0 -27
  248. package/esdoc/plugins/MyPlugin.js +0 -69
  249. package/esdoc/plugins/dynamic-property-plugin/Plugin.js +0 -50
  250. package/esdoc/plugins/externals-plugin/Plugin.js +0 -45
  251. package/esdoc/plugins/externals-plugin/externals.js +0 -96
  252. package/global-setup.js +0 -3
  253. package/index.html +0 -0
  254. package/indexweb.html +0 -49
  255. package/jest.config.js +0 -5
  256. package/pull_request_template.md +0 -17
  257. package/renovate.json +0 -4
  258. package/scripts/read-pkg-json.js +0 -22
  259. package/src/api/index.js +0 -3
  260. package/src/api/routing/RoutingAPI.js +0 -44
  261. package/src/api/routing/RoutingAPI.test.js +0 -41
  262. package/src/api/stops/StopsAPI.js +0 -41
  263. package/src/api/stops/StopsAPI.test.js +0 -34
  264. package/src/api/tralis/TralisAPI.js +0 -731
  265. package/src/api/tralis/TralisAPI.test.js +0 -75
  266. package/src/api/tralis/TralisAPIUtils.js +0 -73
  267. package/src/api/tralis/WebSocketConnector.js +0 -338
  268. package/src/api/tralis/WebSocketConnector.test.js +0 -356
  269. package/src/assets/Lato-Black.ttf +0 -0
  270. package/src/assets/Lato-BlackItalic.ttf +0 -0
  271. package/src/assets/Lato-Bold.ttf +0 -0
  272. package/src/assets/Lato-BoldItalic.ttf +0 -0
  273. package/src/assets/Lato-Italic.ttf +0 -0
  274. package/src/assets/Lato-Light.ttf +0 -0
  275. package/src/assets/Lato-LightItalic.ttf +0 -0
  276. package/src/assets/Lato-Regular.ttf +0 -0
  277. package/src/assets/Lato-Thin.ttf +0 -0
  278. package/src/assets/Lato-ThinItalic.ttf +0 -0
  279. package/src/assets/OFL.txt +0 -93
  280. package/src/common/Tracker.js +0 -197
  281. package/src/common/api/api.js +0 -64
  282. package/src/common/api/api.test.js +0 -68
  283. package/src/common/controls/Control.js +0 -146
  284. package/src/common/controls/Control.test.js +0 -98
  285. package/src/common/index.js +0 -5
  286. package/src/common/layers/Layer.js +0 -404
  287. package/src/common/layers/Layer.test.js +0 -585
  288. package/src/common/mixins/CopyrightMixin.js +0 -48
  289. package/src/common/mixins/SearchMixin.js +0 -176
  290. package/src/common/mixins/TralisLayerMixin.js +0 -930
  291. package/src/common/styles/index.js +0 -4
  292. package/src/common/styles/trackerDefaultStyle.js +0 -333
  293. package/src/common/styles/trackerSimpleStyle.js +0 -22
  294. package/src/common/trackerConfig.js +0 -190
  295. package/src/common/trackerConfig.test.js +0 -25
  296. package/src/common/typedefs.js +0 -23
  297. package/src/common/utils/createTrackerFilters.js +0 -87
  298. package/src/common/utils/createTrackerFilters.test.js +0 -95
  299. package/src/common/utils/getMapboxMapCopyrights.js +0 -32
  300. package/src/common/utils/getMapboxMapCopyrights.test.js +0 -47
  301. package/src/common/utils/getMapboxStyleUrl.js +0 -32
  302. package/src/common/utils/getVehiclePosition.js +0 -72
  303. package/src/common/utils/index.js +0 -5
  304. package/src/common/utils/removeDuplicate.js +0 -22
  305. package/src/common/utils/removeDuplicate.test.js +0 -22
  306. package/src/common/utils/sortByDelay.js +0 -23
  307. package/src/common/utils/timeUtils.test.js +0 -16
  308. package/src/doc/App.js +0 -116
  309. package/src/doc/App.scss +0 -51
  310. package/src/doc/_redirects +0 -2
  311. package/src/doc/components/CodeSandboxButton.js +0 -103
  312. package/src/doc/components/Documentation.js +0 -40
  313. package/src/doc/components/Esdoc/Anchor.js +0 -57
  314. package/src/doc/components/Esdoc/ClassDoc.js +0 -272
  315. package/src/doc/components/Esdoc/DeprecatedHTML.js +0 -16
  316. package/src/doc/components/Esdoc/DetailDocs.js +0 -281
  317. package/src/doc/components/Esdoc/DetailHTML.js +0 -33
  318. package/src/doc/components/Esdoc/DirectSubclassHTML.js +0 -30
  319. package/src/doc/components/Esdoc/DocBuilderUtils.js +0 -694
  320. package/src/doc/components/Esdoc/DocLinkHTML.js +0 -62
  321. package/src/doc/components/Esdoc/DocsLinkHTML.js +0 -38
  322. package/src/doc/components/Esdoc/Esdoc.js +0 -63
  323. package/src/doc/components/Esdoc/EsdocContent.js +0 -51
  324. package/src/doc/components/Esdoc/EsdocNavigation.js +0 -13
  325. package/src/doc/components/Esdoc/EsdocSearch.js +0 -81
  326. package/src/doc/components/Esdoc/ExperimentalHTML.js +0 -17
  327. package/src/doc/components/Esdoc/ExtendsChainHTML.js +0 -32
  328. package/src/doc/components/Esdoc/FileDocLinkHTML.js +0 -60
  329. package/src/doc/components/Esdoc/IdentifiersDoc.js +0 -113
  330. package/src/doc/components/Esdoc/IndirectSubclassHTML.js +0 -30
  331. package/src/doc/components/Esdoc/InheritedSummaryDoc.js +0 -70
  332. package/src/doc/components/Esdoc/InheritedSummaryHTML.js +0 -38
  333. package/src/doc/components/Esdoc/MixinClassesHTML.js +0 -29
  334. package/src/doc/components/Esdoc/NavDoc.js +0 -112
  335. package/src/doc/components/Esdoc/OverrideMethod.js +0 -44
  336. package/src/doc/components/Esdoc/OverrideMethodDescription.js +0 -35
  337. package/src/doc/components/Esdoc/Properties.js +0 -89
  338. package/src/doc/components/Esdoc/README.md +0 -45
  339. package/src/doc/components/Esdoc/SignatureHTML.js +0 -123
  340. package/src/doc/components/Esdoc/SingleDoc.js +0 -31
  341. package/src/doc/components/Esdoc/SummaryDoc.js +0 -160
  342. package/src/doc/components/Esdoc/SummaryHTML.js +0 -96
  343. package/src/doc/components/Esdoc/TypeDocLinkHTML.js +0 -249
  344. package/src/doc/components/Esdoc/css/identifiers.css +0 -38
  345. package/src/doc/components/Esdoc/css/search.css +0 -76
  346. package/src/doc/components/Esdoc/css/style.css +0 -603
  347. package/src/doc/components/Esdoc/index.js +0 -7
  348. package/src/doc/components/Example.js +0 -153
  349. package/src/doc/components/Examples.js +0 -183
  350. package/src/doc/components/Home.js +0 -106
  351. package/src/doc/components/TrackerExample.js +0 -38
  352. package/src/doc/examples/assets/tralis-live-map/index.js +0 -11
  353. package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +0 -105
  354. package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +0 -101
  355. package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +0 -95
  356. package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +0 -95
  357. package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +0 -95
  358. package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +0 -95
  359. package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +0 -95
  360. package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +0 -93
  361. package/src/doc/examples/assets/tralis-live-map/unknown.svg +0 -107
  362. package/src/doc/examples/mb-copyright.html +0 -26
  363. package/src/doc/examples/mb-copyright.js +0 -37
  364. package/src/doc/examples/mb-tracker.html +0 -1
  365. package/src/doc/examples/mb-tracker.js +0 -39
  366. package/src/doc/examples/mb-tracker.md +0 -1
  367. package/src/doc/examples/mb-tralis.html +0 -1
  368. package/src/doc/examples/mb-tralis.js +0 -34
  369. package/src/doc/examples/ol-copyright.html +0 -26
  370. package/src/doc/examples/ol-copyright.js +0 -43
  371. package/src/doc/examples/ol-mapbox-layer.html +0 -1
  372. package/src/doc/examples/ol-mapbox-layer.js +0 -28
  373. package/src/doc/examples/ol-mapbox-layer.md +0 -0
  374. package/src/doc/examples/ol-mapbox-style-layer.html +0 -12
  375. package/src/doc/examples/ol-mapbox-style-layer.js +0 -44
  376. package/src/doc/examples/ol-query.html +0 -32
  377. package/src/doc/examples/ol-query.js +0 -83
  378. package/src/doc/examples/ol-routing.html +0 -26
  379. package/src/doc/examples/ol-routing.js +0 -59
  380. package/src/doc/examples/ol-routing.md +0 -1
  381. package/src/doc/examples/ol-stop-finder.html +0 -15
  382. package/src/doc/examples/ol-stop-finder.js +0 -31
  383. package/src/doc/examples/ol-stop-finder.md +0 -1
  384. package/src/doc/examples/ol-tracker.html +0 -1
  385. package/src/doc/examples/ol-tracker.js +0 -44
  386. package/src/doc/examples/ol-tracker.md +0 -1
  387. package/src/doc/examples/ol-tralis.html +0 -5
  388. package/src/doc/examples/ol-tralis.js +0 -57
  389. package/src/doc/examples/tralis-live-map.html +0 -1
  390. package/src/doc/examples/tralis-live-map.js +0 -51
  391. package/src/doc/examples/tralis-live-map.md +0 -3
  392. package/src/doc/examples.js +0 -107
  393. package/src/doc/img/examples/live_tracker_mb.jpg +0 -0
  394. package/src/doc/img/examples/live_tracker_munich.jpg +0 -0
  395. package/src/doc/img/examples/live_tracker_ol.jpg +0 -0
  396. package/src/doc/img/examples/mapbox.jpg +0 -0
  397. package/src/doc/img/examples/mapbox_style.jpg +0 -0
  398. package/src/doc/img/examples/ol-copyright.png +0 -0
  399. package/src/doc/img/examples/query_objects.jpg +0 -0
  400. package/src/doc/img/examples/routing.jpg +0 -0
  401. package/src/doc/img/examples/simple_map.jpg +0 -0
  402. package/src/doc/img/examples/stops.jpg +0 -0
  403. package/src/doc/img/favico.ico +0 -0
  404. package/src/doc/index.js +0 -21
  405. package/src/index.js +0 -10
  406. package/src/mapbox/controls/CopyrightControl.js +0 -58
  407. package/src/mapbox/layers/Layer.js +0 -118
  408. package/src/mapbox/layers/Layer.test.js +0 -202
  409. package/src/mapbox/layers/TralisLayer.js +0 -329
  410. package/src/mapbox/layers/TralisLayer.test.js +0 -40
  411. package/src/mapbox/layers/index.js +0 -2
  412. package/src/mapbox/utils.js +0 -46
  413. package/src/ol/README.md +0 -0
  414. package/src/ol/controls/CopyrightControl.js +0 -80
  415. package/src/ol/controls/CopyrightControl.test.js +0 -211
  416. package/src/ol/controls/RoutingControl.js +0 -752
  417. package/src/ol/controls/RoutingControl.test.js +0 -216
  418. package/src/ol/controls/StopFinderControl.test.js +0 -59
  419. package/src/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
  420. package/src/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
  421. package/src/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
  422. package/src/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
  423. package/src/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
  424. package/src/ol/controls/snapshots/RoutingControlStation1.json +0 -60
  425. package/src/ol/controls/snapshots/RoutingControlStation2.json +0 -49
  426. package/src/ol/layers/Layer.js +0 -193
  427. package/src/ol/layers/Layer.test.js +0 -197
  428. package/src/ol/layers/MapboxLayer.js +0 -378
  429. package/src/ol/layers/MapboxLayer.test.js +0 -186
  430. package/src/ol/layers/MapboxStyleLayer.js +0 -417
  431. package/src/ol/layers/MapboxStyleLayer.test.js +0 -262
  432. package/src/ol/layers/MaplibreLayer.js +0 -280
  433. package/src/ol/layers/RoutingLayer.js +0 -91
  434. package/src/ol/layers/RoutingLayer.test.js +0 -49
  435. package/src/ol/layers/TralisLayer.js +0 -359
  436. package/src/ol/layers/TralisLayer.test.js +0 -97
  437. package/src/ol/layers/VectorLayer.js +0 -43
  438. package/src/ol/layers/VectorLayer.test.js +0 -98
  439. package/src/ol/layers/WMSLayer.js +0 -80
  440. package/src/ol/layers/WMSLayer.test.js +0 -84
  441. package/src/ol/styles/fullTrajectoryDelayStyle.js +0 -35
  442. package/src/ol/styles/fullTrajectoryStyle.js +0 -51
  443. package/webpack.config.js +0 -6
  444. /package/{src/mapbox → mapbox}/controls/index.js +0 -0
  445. /package/{src/ol → ol}/controls/index.js +0 -0
  446. /package/{src/ol → ol}/index.js +0 -0
  447. /package/{src/ol → ol}/styles/index.js +0 -0
@@ -0,0 +1,181 @@
1
+ /// <reference types="mapbox-gl" />
2
+ import { Coordinate } from 'ol/coordinate';
3
+ import { Feature } from 'ol';
4
+ import Layer from './Layer';
5
+ import type { AnyMapboxMap, LayerGetFeatureInfoResponse } from '../../types';
6
+ import type { RealtimeTrajectory } from '../../api/typedefs';
7
+ declare const RealtimeLayer_base: {
8
+ new (options: import("../../common/mixins/RealtimeLayerMixin").RealtimeLayerMixinOptions): {
9
+ [x: string]: any;
10
+ debug: boolean;
11
+ trajectories?: {
12
+ [key: string]: GeoJSONFeature;
13
+ } | undefined;
14
+ canvas?: import("../../types").AnyCanvas | undefined;
15
+ mode: import("../../types").RealtimeMode;
16
+ api: import("../../api/RealtimeAPI").default;
17
+ tenant: string;
18
+ time?: Date | undefined;
19
+ live?: boolean | undefined;
20
+ speed?: number | undefined;
21
+ filter?: Function | undefined;
22
+ sort?: Function | undefined;
23
+ style?: import("../../types").RealtimeStyleFunction | undefined;
24
+ styleOptions?: import("../../types").RealtimeStyleOptions | undefined;
25
+ pixelRatio?: number | undefined;
26
+ minZoomInterpolation: number;
27
+ isUpdateBboxOnMoveEnd: boolean;
28
+ hoverVehicleId?: string | undefined;
29
+ selectedVehicleId?: string | undefined;
30
+ renderState?: import("../../types").RealtimeRenderState | undefined;
31
+ useRequestAnimationFrame?: boolean | undefined;
32
+ useDebounce?: boolean | undefined;
33
+ useThrottle?: boolean | undefined;
34
+ mots?: import("../../types").RealtimeMot[] | undefined;
35
+ motsByZoom: import("../../types").RealtimeMot[][];
36
+ generalizationLevel?: import("../../types").RealtimeGeneralizationLevel | undefined;
37
+ generalizationLevelByZoom: import("../../types").RealtimeGeneralizationLevel[];
38
+ renderTimeIntervalByZoom: number[];
39
+ format: import("ol/format/GeoJSON").default;
40
+ requestId?: number | undefined;
41
+ updateTimeInterval?: number | undefined;
42
+ updateTimeDelay?: number | undefined;
43
+ visibilityRef: import("ol/events").EventsKey;
44
+ selectedVehicle: GeoJSONFeature;
45
+ getMotsByZoom: (zoom: number) => import("../../types").RealtimeMot[];
46
+ getGeneralizationLevelByZoom: (zoom: number) => import("../../types").RealtimeGeneralizationLevel;
47
+ getRenderTimeIntervalByZoom: (zoom: number) => number;
48
+ throttleRenderTrajectories: (viewState: import("../../types").ViewState, noInterpolate?: boolean | undefined) => void;
49
+ debounceRenderTrajectories: (viewState: import("../../types").ViewState, noInterpolate?: boolean | undefined) => void;
50
+ onStart?: ((realtimeLayer: any) => void) | undefined;
51
+ onStop?: ((realtimeLayer: any) => void) | undefined;
52
+ defineProperties(options: import("../../common/mixins/RealtimeLayerMixin").RealtimeLayerMixinOptions): void;
53
+ attachToMap(map: any): void;
54
+ detachFromMap(): void;
55
+ start(): void;
56
+ startUpdateTime(): void;
57
+ stop(): void;
58
+ stopUpdateTime(): void;
59
+ renderTrajectoriesInternal(viewState: import("../../types").ViewState, noInterpolate?: boolean): boolean;
60
+ renderTrajectories(viewState: import("../../types").ViewState | undefined, noInterpolate: boolean | undefined): void;
61
+ setBbox(extent?: [number, number, number, number] | undefined, zoom?: number | undefined): void;
62
+ getRefreshTimeInMs(zoom?: number | undefined): number;
63
+ getVehicle(filterFc: Function): GeoJSONFeature[];
64
+ getFeatureInfoAtCoordinate(coordinate: Coordinate, options: import("../../types").LayerGetFeatureInfoOptions): Promise<{
65
+ layer: any;
66
+ features: Feature<import("ol/geom/Geometry").default>[];
67
+ coordinate: Coordinate;
68
+ }>;
69
+ getTrajectoryInfos(id: string): Promise<{
70
+ stopSequence: import("../../common/api/WebSocketAPI").WebSocketAPIMessageEventData<import("../../types").RealtimeFullTrajectory> | import("../../common/api/WebSocketAPI").WebSocketAPIMessageEventData<GeoJSONFeature[]>;
71
+ fullTrajectory: import("../../common/api/WebSocketAPI").WebSocketAPIMessageEventData<import("../../types").RealtimeFullTrajectory> | import("../../common/api/WebSocketAPI").WebSocketAPIMessageEventData<GeoJSONFeature[]>;
72
+ }>;
73
+ purgeOutOfDateTrajectories(): void;
74
+ purgeTrajectory(trajectory: GeoJSONFeature, extent: [number, number, number, number], zoom: number): boolean;
75
+ addTrajectory(trajectory: GeoJSONFeature): void;
76
+ removeTrajectory(trajectoryOrId: any): void;
77
+ onZoomEnd(): void;
78
+ onDocumentVisibilityChange(): void;
79
+ onTrajectoryMessage(data: import("../../common/api/WebSocketAPI").WebSocketAPIMessageEventData<GeoJSONFeature>): void;
80
+ onDeleteTrajectoryMessage(data: import("../../common/api/WebSocketAPI").WebSocketAPIMessageEventData<string>): void;
81
+ onFeatureHover(features: Feature<import("ol/geom/Geometry").default>[], layer: import("../../types").AnyRealtimeLayer, coordinate: Coordinate): void;
82
+ onFeatureClick(features: Feature<import("ol/geom/Geometry").default>[], layer: import("../../types").AnyRealtimeLayer, coordinate: Coordinate): void;
83
+ };
84
+ } & typeof Layer;
85
+ /**
86
+ * Responsible for loading and display data from a Realtime service.
87
+ *
88
+ * @example
89
+ * import { RealtimeLayer } from 'mobility-toolbox-js/mapbox';
90
+ *
91
+ * const layer = new RealtimeLayer({
92
+ * url: [yourUrl],
93
+ * apiKey: [yourApiKey],
94
+ * });
95
+ *
96
+ *
97
+ * @see <a href="/api/class/src/api/RealtimeAPI%20js~RealtimeAPI%20html">RealtimeAPI</a>
98
+ *
99
+ * @extends {Layer}
100
+ * @implements {RealtimeLayerInterface}
101
+ */
102
+ declare class RealtimeLayer extends RealtimeLayer_base {
103
+ constructor(options?: {});
104
+ /**
105
+ * Initialize the layer.
106
+ *
107
+ * @param {mapboxgl.Map} map A [mapbox Map](https://docs.mapbox.com/mapbox-gl-js/api/map/).
108
+ * @param {string} beforeId Layer's id before which we want to add the new layer.
109
+ * @override
110
+ */
111
+ attachToMap(map: AnyMapboxMap, beforeId: string): void;
112
+ /**
113
+ * Remove listeners from the Mapbox Map.
114
+ */
115
+ detachFromMap(): void;
116
+ /**
117
+ * Start updating vehicles position.
118
+ *
119
+ * @listens {mapboxgl.map.event:zoomend} Listen to zoom end event.
120
+ * @listens {mapboxgl.map.event:mousemove} Listen to mousemove end.
121
+ * @override
122
+ */
123
+ start(): void;
124
+ /**
125
+ * Stop updating vehicles position, and unlisten events.
126
+ *
127
+ * @override
128
+ */
129
+ stop(): void;
130
+ onLoad(): void;
131
+ /**
132
+ * Function triggered when the user moves the cursor over the map.
133
+ * @override
134
+ */
135
+ onUserMoveCallback(evt: mapboxgl.MapLayerMouseEvent | maplibregl.MapMouseEvent): void;
136
+ /**
137
+ * Render the trajectories using current map's size, resolution and rotation.
138
+ * @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
139
+ * @overrides
140
+ */
141
+ renderTrajectories(noInterpolate?: boolean): void;
142
+ /**
143
+ * Return the delay in ms before the next rendering.
144
+ */
145
+ getRefreshTimeInMs(): number;
146
+ getFeatureInfoAtCoordinate(coordinate: Coordinate, options?: {}): Promise<LayerGetFeatureInfoResponse>;
147
+ onVisibilityChange(): void;
148
+ /**
149
+ * Remove the trajectory form the list if necessary.
150
+ *
151
+ * @private
152
+ */
153
+ purgeTrajectory(trajectory: RealtimeTrajectory, extent: [number, number, number, number], zoom: number): boolean;
154
+ /**
155
+ * Send the current bbox to the websocket
156
+ */
157
+ setBbox(extent?: [number, number, number, number], zoom?: number): void;
158
+ /**
159
+ * Callback on 'move' event.
160
+ *
161
+ * @private
162
+ */
163
+ onMove(): void;
164
+ renderTrajectoriesInternal(viewState: ViewState, noInterpolate?: boolean): boolean;
165
+ /**
166
+ * Send the new BBOX to the websocket.
167
+ *
168
+ * @private
169
+ * @override
170
+ */
171
+ onMoveEnd(): void;
172
+ /**
173
+ * Update the cursor style when hovering a vehicle.
174
+ *
175
+ * @private
176
+ * @override
177
+ */
178
+ onFeatureHover(features: Feature[], layer: RealtimeLayer, coordinate: Coordinate): void;
179
+ }
180
+ export default RealtimeLayer;
181
+ //# sourceMappingURL=RealtimeLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RealtimeLayer.d.ts","sourceRoot":"","sources":["../../../src/mapbox/layers/RealtimeLayer.ts"],"names":[],"mappings":";AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE7D;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAM,aAAc,SAAQ,kBAAY;gBAC1B,OAAO,KAAK;IAqBxB;;;;;;OAMG;IAEH,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM;IAuC/C;;OAEG;IACH,aAAa;IAkBb;;;;;;OAMG;IACH,KAAK;IAQL;;;;OAIG;IACH,IAAI;IASJ,MAAM;IASN;;;OAGG;IACH,kBAAkB,CAChB,GAAG,EAAE,QAAQ,CAAC,kBAAkB,GAAG,UAAU,CAAC,aAAa;IAQ7D;;;;OAIG;IAEH,kBAAkB,CAAC,aAAa,CAAC,EAAE,OAAe;IAuDlD;;OAEG;IACH,kBAAkB;IAIlB,0BAA0B,CACxB,UAAU,EAAE,UAAU,EACtB,OAAO,KAAK,GACX,OAAO,CAAC,2BAA2B,CAAC;IAQvC,kBAAkB;IAclB;;;;OAIG;IACH,eAAe,CACb,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxC,IAAI,EAAE,MAAM;IASd;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM;IAUhE;;;;OAIG;IACH,MAAM;IAIN,0BAA0B,CACxB,SAAS,EAAE,SAAS,EACpB,aAAa,GAAE,OAAe;IAahC;;;;;OAKG;IACH,SAAS;IAQT;;;;;OAKG;IACH,cAAc,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,UAAU;CAOzB;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,276 @@
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/RealtimeLayerMixin';
7
+ import Layer from './Layer';
8
+ import { getSourceCoordinates, getMercatorResolution } from '../utils';
9
+ /**
10
+ * Responsible for loading and display data from a Realtime service.
11
+ *
12
+ * @example
13
+ * import { RealtimeLayer } from 'mobility-toolbox-js/mapbox';
14
+ *
15
+ * const layer = new RealtimeLayer({
16
+ * url: [yourUrl],
17
+ * apiKey: [yourApiKey],
18
+ * });
19
+ *
20
+ *
21
+ * @see <a href="/api/class/src/api/RealtimeAPI%20js~RealtimeAPI%20html">RealtimeAPI</a>
22
+ *
23
+ * @extends {Layer}
24
+ * @implements {RealtimeLayerInterface}
25
+ */
26
+ // @ts-ignore
27
+ class RealtimeLayer extends mixin(Layer) {
28
+ constructor(options = {}) {
29
+ super(Object.assign({}, options));
30
+ /** @ignore */
31
+ this.onLoad = this.onLoad.bind(this);
32
+ /** @ignore */
33
+ this.onMove = this.onMove.bind(this);
34
+ /** @ignore */
35
+ this.onMoveEnd = this.onMoveEnd.bind(this);
36
+ /** @ignore */
37
+ this.onZoomEnd = this.onZoomEnd.bind(this);
38
+ /** @ignore */
39
+ this.onVisibilityChange = this.onVisibilityChange.bind(this);
40
+ }
41
+ /**
42
+ * Initialize the layer.
43
+ *
44
+ * @param {mapboxgl.Map} map A [mapbox Map](https://docs.mapbox.com/mapbox-gl-js/api/map/).
45
+ * @param {string} beforeId Layer's id before which we want to add the new layer.
46
+ * @override
47
+ */
48
+ // @ts-ignore
49
+ attachToMap(map, beforeId) {
50
+ if (!map) {
51
+ return;
52
+ }
53
+ super.attachToMap(map);
54
+ this.source = {
55
+ type: 'canvas',
56
+ canvas: this.canvas,
57
+ coordinates: getSourceCoordinates(map, this.pixelRatio),
58
+ // Set to true if the canvas source is animated. If the canvas is static, animate should be set to false to improve performance.
59
+ animate: true,
60
+ attribution: this.copyrights && this.copyrights.join(', '),
61
+ };
62
+ this.beforeId = beforeId;
63
+ this.layer = {
64
+ id: this.key,
65
+ type: 'raster',
66
+ source: this.key,
67
+ layout: {
68
+ visibility: this.visible ? 'visible' : 'none',
69
+ },
70
+ paint: {
71
+ 'raster-opacity': 1,
72
+ 'raster-fade-duration': 0,
73
+ 'raster-resampling': 'nearest', // important otherwise it looks blurry
74
+ },
75
+ };
76
+ if (map.isStyleLoaded()) {
77
+ this.onLoad();
78
+ }
79
+ this.map.on('load', this.onLoad);
80
+ this.listeners = [this.on('change:visible', this.onVisibilityChange)];
81
+ }
82
+ /**
83
+ * Remove listeners from the Mapbox Map.
84
+ */
85
+ detachFromMap() {
86
+ if (this.map) {
87
+ this.map.off('load', this.onLoad);
88
+ // @ts-ignore
89
+ this.listeners.forEach((listener) => {
90
+ unByKey(listener);
91
+ });
92
+ if (this.map.style && this.map.getLayer(this.key)) {
93
+ this.map.removeLayer(this.key);
94
+ }
95
+ if (this.map.style && this.map.getSource(this.key)) {
96
+ this.map.removeSource(this.key);
97
+ }
98
+ }
99
+ super.detachFromMap();
100
+ }
101
+ /**
102
+ * Start updating vehicles position.
103
+ *
104
+ * @listens {mapboxgl.map.event:zoomend} Listen to zoom end event.
105
+ * @listens {mapboxgl.map.event:mousemove} Listen to mousemove end.
106
+ * @override
107
+ */
108
+ start() {
109
+ super.start();
110
+ this.map.on('move', this.onMove);
111
+ this.map.on('moveend', this.onMoveEnd);
112
+ this.map.on('zoomend', this.onZoomEnd);
113
+ }
114
+ /**
115
+ * Stop updating vehicles position, and unlisten events.
116
+ *
117
+ * @override
118
+ */
119
+ stop() {
120
+ super.stop();
121
+ if (this.map) {
122
+ this.map.off('move', this.onMove);
123
+ this.map.off('moveend', this.onMoveEnd);
124
+ this.map.off('zoomend', this.onZoomEnd);
125
+ }
126
+ }
127
+ onLoad() {
128
+ if (!this.map.getSource(this.key)) {
129
+ this.map.addSource(this.key, this.source);
130
+ }
131
+ if (!this.map.getLayer(this.key)) {
132
+ this.map.addLayer(this.layer, this.beforeId);
133
+ }
134
+ }
135
+ /**
136
+ * Function triggered when the user moves the cursor over the map.
137
+ * @override
138
+ */
139
+ onUserMoveCallback(evt) {
140
+ super.onUserMoveCallback(Object.assign({ coordinate: fromLonLat(evt.lngLat.toArray()) }, evt));
141
+ }
142
+ /**
143
+ * Render the trajectories using current map's size, resolution and rotation.
144
+ * @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
145
+ * @overrides
146
+ */
147
+ // @ts-ignore
148
+ renderTrajectories(noInterpolate = false) {
149
+ if (!this.map) {
150
+ return;
151
+ }
152
+ if (!this.pixelRatio) {
153
+ this.pixelRatio = 1;
154
+ }
155
+ const { width, height } = this.map.getCanvas();
156
+ const center = this.map.getCenter();
157
+ // We use turf here to have good transform.
158
+ const leftBottom = this.map.unproject({
159
+ x: 0,
160
+ y: height / this.pixelRatio,
161
+ }); // southWest
162
+ const rightTop = this.map.unproject({
163
+ x: width / this.pixelRatio,
164
+ y: 0,
165
+ }); // north east
166
+ const coord0 = transformRotate(point([leftBottom.lng, leftBottom.lat]), -this.map.getBearing(), {
167
+ pivot: [center.lng, center.lat],
168
+ }).geometry.coordinates;
169
+ const coord1 = transformRotate(point([rightTop.lng, rightTop.lat]), -this.map.getBearing(), {
170
+ pivot: [center.lng, center.lat],
171
+ }).geometry.coordinates;
172
+ const bounds = [...fromLonLat(coord0), ...fromLonLat(coord1)];
173
+ const xResolution = getWidth(bounds) / (width / this.pixelRatio);
174
+ const yResolution = getHeight(bounds) / (height / this.pixelRatio);
175
+ const res = Math.max(xResolution, yResolution);
176
+ // Coordinate of trajectories are in mercator so we have to pass the proper resolution and center in mercator.
177
+ const viewState = {
178
+ size: [width / this.pixelRatio, height / this.pixelRatio],
179
+ center: fromLonLat([center.lng, center.lat]),
180
+ extent: bounds,
181
+ resolution: res,
182
+ zoom: this.getOlZoom(),
183
+ rotation: -(this.map.getBearing() * Math.PI) / 180,
184
+ pixelRatio: this.pixelRatio,
185
+ };
186
+ super.renderTrajectories(viewState, noInterpolate);
187
+ }
188
+ /**
189
+ * Return the delay in ms before the next rendering.
190
+ */
191
+ getRefreshTimeInMs() {
192
+ return super.getRefreshTimeInMs(this.map.getZoom());
193
+ }
194
+ getFeatureInfoAtCoordinate(coordinate, options = {}) {
195
+ const resolution = getMercatorResolution(this.map);
196
+ return super.getFeatureInfoAtCoordinate(coordinate, Object.assign({ resolution }, options));
197
+ }
198
+ onVisibilityChange() {
199
+ if (this.visible && !this.map.getLayer(this.key)) {
200
+ this.map.addLayer(this.layer, this.beforeId);
201
+ }
202
+ else if (this.map.getLayer(this.key)) {
203
+ this.map.removeLayer(this.key);
204
+ }
205
+ // We can't use setLayoutProperty it triggers an error probably a bug in mapbox
206
+ // this.map.setLayoutProperty(
207
+ // this.key,
208
+ // 'visibilty',
209
+ // this.visible ? 'visible' : 'none',
210
+ // );
211
+ }
212
+ /**
213
+ * Remove the trajectory form the list if necessary.
214
+ *
215
+ * @private
216
+ */
217
+ purgeTrajectory(trajectory, extent, zoom) {
218
+ return super.purgeTrajectory(trajectory, extent || this.getMercatorExtent(), zoom || Math.floor(this.getOlZoom()));
219
+ }
220
+ /**
221
+ * Send the current bbox to the websocket
222
+ */
223
+ setBbox(extent, zoom) {
224
+ let newExtent = extent;
225
+ let newZoom = zoom;
226
+ if (!newExtent && this.isUpdateBboxOnMoveEnd) {
227
+ newExtent = extent || this.getMercatorExtent();
228
+ newZoom = Math.floor(this.getOlZoom());
229
+ }
230
+ super.setBbox(newExtent, newZoom);
231
+ }
232
+ /**
233
+ * Callback on 'move' event.
234
+ *
235
+ * @private
236
+ */
237
+ onMove() {
238
+ this.renderTrajectories();
239
+ }
240
+ renderTrajectoriesInternal(viewState, noInterpolate = false) {
241
+ const render = super.renderTrajectoriesInternal(viewState, noInterpolate);
242
+ if (render && this.map.style) {
243
+ const extent = getSourceCoordinates(this.map, this.pixelRatio);
244
+ const source = this.map.getSource(this.key);
245
+ if (source) {
246
+ source.setCoordinates(extent);
247
+ }
248
+ }
249
+ return render;
250
+ }
251
+ /**
252
+ * Send the new BBOX to the websocket.
253
+ *
254
+ * @private
255
+ * @override
256
+ */
257
+ onMoveEnd() {
258
+ this.renderTrajectories();
259
+ if (this.visible && this.isUpdateBboxOnMoveEnd) {
260
+ this.setBbox();
261
+ }
262
+ }
263
+ /**
264
+ * Update the cursor style when hovering a vehicle.
265
+ *
266
+ * @private
267
+ * @override
268
+ */
269
+ onFeatureHover(features, layer, coordinate) {
270
+ super.onFeatureHover(features, layer, coordinate);
271
+ this.map.getCanvasContainer().style.cursor = features.length
272
+ ? 'pointer'
273
+ : 'auto';
274
+ }
275
+ }
276
+ export default RealtimeLayer;
@@ -0,0 +1,3 @@
1
+ export { default as Layer } from "./Layer";
2
+ export { default as RealtimeLayer } from "./RealtimeLayer";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mapbox/layers/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { default as Layer } from './Layer';
2
+ export { default as RealtimeLayer } from './RealtimeLayer';
@@ -0,0 +1,9 @@
1
+ import { AnyMapboxMap } from '../../types';
2
+ /**
3
+ * Get the current resolution of a Mapbox map.
4
+ * @param {mapboxgl.Map} map A map object.
5
+ * @private
6
+ */
7
+ declare const getMercatorResolution: (map: AnyMapboxMap) => number;
8
+ export default getMercatorResolution;
9
+ //# sourceMappingURL=getMercatorResolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMercatorResolution.d.ts","sourceRoot":"","sources":["../../../src/mapbox/utils/getMercatorResolution.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;GAIG;AACH,QAAA,MAAM,qBAAqB,QAAS,YAAY,WAS/C,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { getWidth, getHeight } from 'ol/extent';
2
+ import { fromLonLat } from 'ol/proj';
3
+ /**
4
+ * Get the current resolution of a Mapbox map.
5
+ * @param {mapboxgl.Map} map A map object.
6
+ * @private
7
+ */
8
+ const getMercatorResolution = (map) => {
9
+ const bounds = map.getBounds().toArray();
10
+ const a = fromLonLat(bounds[0]);
11
+ const b = fromLonLat(bounds[1]);
12
+ const extent = [...a, ...b];
13
+ const { width, height } = map.getCanvas();
14
+ const xResolution = getWidth(extent) / width;
15
+ const yResolution = getHeight(extent) / height;
16
+ return Math.max(xResolution, yResolution);
17
+ };
18
+ export default getMercatorResolution;
@@ -0,0 +1,9 @@
1
+ import { AnyMapboxMap } from '../../types';
2
+ /**
3
+ * Get the canvas source coordinates of the current map's extent.
4
+ * @param {mapboxgl.Map} map A map object.
5
+ * @private
6
+ */
7
+ export declare const getSourceCoordinates: (map: AnyMapboxMap, pixelRatio?: number) => number[][];
8
+ export default getSourceCoordinates;
9
+ //# sourceMappingURL=getSourceCoordinates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getSourceCoordinates.d.ts","sourceRoot":"","sources":["../../../src/mapbox/utils/getSourceCoordinates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAC1B,YAAY,eACL,MAAM,eAsBnB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Get the canvas source coordinates of the current map's extent.
3
+ * @param {mapboxgl.Map} map A map object.
4
+ * @private
5
+ */
6
+ export const getSourceCoordinates = (map, pixelRatio = 1) => {
7
+ // Requesting getBounds is not enough when we rotate the map, so we request manually each corner.
8
+ const { width, height } = map.getCanvas();
9
+ // @ts-ignore
10
+ const leftTop = map.unproject({ x: 0, y: 0 });
11
+ // @ts-ignore
12
+ const leftBottom = map.unproject({ x: 0, y: height / pixelRatio }); // southWest
13
+ // @ts-ignore
14
+ const rightBottom = map.unproject({
15
+ x: width / pixelRatio,
16
+ y: height / pixelRatio,
17
+ });
18
+ // @ts-ignore
19
+ const rightTop = map.unproject({ x: width / pixelRatio, y: 0 }); // north east
20
+ return [
21
+ [leftTop.lng, leftTop.lat],
22
+ [rightTop.lng, rightTop.lat],
23
+ [rightBottom.lng, rightBottom.lat],
24
+ [leftBottom.lng, leftBottom.lat],
25
+ ];
26
+ };
27
+ export default getSourceCoordinates;
@@ -0,0 +1,3 @@
1
+ export { default as getSourceCoordinates } from "./getSourceCoordinates";
2
+ export { default as getMercatorResolution } from "./getMercatorResolution";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mapbox/utils/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { default as getSourceCoordinates } from './getSourceCoordinates';
2
+ export { default as getMercatorResolution } from './getMercatorResolution';