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

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 (283) hide show
  1. package/.babelrc +6 -0
  2. package/.esdoc.json +17 -0
  3. package/.eslintignore +1 -0
  4. package/.github/workflows/conventional-pr-title.yml +21 -0
  5. package/.github/workflows/cypress.yml +29 -0
  6. package/.github/workflows/nodejs.yml +28 -0
  7. package/.husky/commit-msg +4 -0
  8. package/.husky/post-checkout +4 -0
  9. package/.husky/post-merge +4 -0
  10. package/.husky/post-rebase +4 -0
  11. package/.husky/pre-commit +4 -0
  12. package/.neutrinorc.js +176 -0
  13. package/.nvmrc +1 -0
  14. package/CHANGELOG.md +10 -0
  15. package/LICENSE +21 -0
  16. package/Layer.js +2 -0
  17. package/Layer.js.map +7 -0
  18. package/README.md +4 -1
  19. package/__mocks__/mapbox-gl.js +81 -0
  20. package/__mocks__/maplibre-gl.js +81 -0
  21. package/commitlint.config.js +1 -0
  22. package/cypress/fixtures/example.json +5 -0
  23. package/cypress/integration/examples/api.spec.js +7 -0
  24. package/cypress/integration/examples/examples.spec.js +7 -0
  25. package/cypress/integration/examples/navigation.spec.js +29 -0
  26. package/cypress/plugins/index.js +21 -0
  27. package/cypress/support/commands.js +25 -0
  28. package/cypress/support/index.js +20 -0
  29. package/cypress.json +4 -0
  30. package/data/fetchRoute.json +292 -0
  31. package/data/fetchTrajectories.json +18 -0
  32. package/data/fetchTrajectoryById.json +3 -0
  33. package/data/fetchTrajectoryStations.json +18 -0
  34. package/data/stopsSearch.json +15 -0
  35. package/documentation.yml +4 -0
  36. package/esdoc/README.md +27 -0
  37. package/esdoc/plugins/MyPlugin.js +69 -0
  38. package/esdoc/plugins/dynamic-property-plugin/Plugin.js +50 -0
  39. package/esdoc/plugins/externals-plugin/Plugin.js +45 -0
  40. package/esdoc/plugins/externals-plugin/externals.js +96 -0
  41. package/global-setup.js +3 -0
  42. package/{ol/README.md → index.html} +0 -0
  43. package/indexweb.html +49 -0
  44. package/jest.config.js +5 -0
  45. package/package.json +29 -9
  46. package/pull_request_template.md +17 -0
  47. package/renovate.json +4 -0
  48. package/scripts/read-pkg-json.js +22 -0
  49. package/{api → src/api}/index.js +0 -0
  50. package/{api → src/api}/routing/RoutingAPI.js +0 -0
  51. package/{api → src/api}/routing/RoutingAPI.test.js +0 -0
  52. package/{api → src/api}/stops/StopsAPI.js +0 -0
  53. package/{api → src/api}/stops/StopsAPI.test.js +0 -0
  54. package/{api → src/api}/tralis/TralisAPI.js +0 -0
  55. package/{api → src/api}/tralis/TralisAPI.test.js +0 -0
  56. package/{api → src/api}/tralis/TralisAPIUtils.js +0 -0
  57. package/{api → src/api}/tralis/WebSocketConnector.js +0 -0
  58. package/{api → src/api}/tralis/WebSocketConnector.test.js +0 -0
  59. package/{api → src/api}/tralis/typedefs.js +0 -0
  60. package/src/assets/Lato-Black.ttf +0 -0
  61. package/src/assets/Lato-BlackItalic.ttf +0 -0
  62. package/src/assets/Lato-Bold.ttf +0 -0
  63. package/src/assets/Lato-BoldItalic.ttf +0 -0
  64. package/src/assets/Lato-Italic.ttf +0 -0
  65. package/src/assets/Lato-Light.ttf +0 -0
  66. package/src/assets/Lato-LightItalic.ttf +0 -0
  67. package/src/assets/Lato-Regular.ttf +0 -0
  68. package/src/assets/Lato-Thin.ttf +0 -0
  69. package/src/assets/Lato-ThinItalic.ttf +0 -0
  70. package/src/assets/OFL.txt +93 -0
  71. package/{common → src/common}/Tracker.js +0 -0
  72. package/{common → src/common}/api/api.js +0 -0
  73. package/{common → src/common}/api/api.test.js +0 -0
  74. package/{common → src/common}/controls/Control.js +0 -0
  75. package/{common → src/common}/controls/Control.test.js +0 -0
  76. package/{common → src/common}/layers/Layer.js +0 -0
  77. package/{common → src/common}/layers/Layer.test.js +0 -0
  78. package/{common → src/common}/mixins/CopyrightMixin.js +0 -0
  79. package/{common → src/common}/mixins/SearchMixin.js +0 -0
  80. package/{common → src/common}/mixins/TralisLayerMixin.js +0 -0
  81. package/{common → src/common}/styles/index.js +0 -0
  82. package/{common → src/common}/styles/trackerDefaultStyle.js +8 -8
  83. package/{common → src/common}/styles/trackerDelayStyle.js +0 -0
  84. package/{common → src/common}/styles/trackerSimpleStyle.js +0 -0
  85. package/{common → src/common}/trackerConfig.js +0 -0
  86. package/{common → src/common}/trackerConfig.test.js +0 -0
  87. package/{common → src/common}/typedefs.js +0 -0
  88. package/{common → src/common}/utils/createTrackerFilters.js +0 -0
  89. package/{common → src/common}/utils/createTrackerFilters.test.js +0 -0
  90. package/{common → src/common}/utils/getMapboxMapCopyrights.js +0 -0
  91. package/{common → src/common}/utils/getMapboxMapCopyrights.test.js +0 -0
  92. package/{common → src/common}/utils/getMapboxStyleUrl.js +0 -0
  93. package/{common → src/common}/utils/getVehiclePosition.js +0 -0
  94. package/{common → src/common}/utils/index.js +0 -0
  95. package/{common → src/common}/utils/removeDuplicate.js +0 -0
  96. package/{common → src/common}/utils/removeDuplicate.test.js +0 -0
  97. package/{common → src/common}/utils/sortByDelay.js +0 -0
  98. package/{common → src/common}/utils/timeUtils.js +0 -0
  99. package/{common → src/common}/utils/timeUtils.test.js +0 -0
  100. package/src/doc/App.js +116 -0
  101. package/src/doc/App.scss +51 -0
  102. package/src/doc/_redirects +2 -0
  103. package/src/doc/components/CodeSandboxButton.js +103 -0
  104. package/src/doc/components/Documentation.js +40 -0
  105. package/src/doc/components/Esdoc/Anchor.js +57 -0
  106. package/src/doc/components/Esdoc/ClassDoc.js +272 -0
  107. package/src/doc/components/Esdoc/DeprecatedHTML.js +16 -0
  108. package/src/doc/components/Esdoc/DetailDocs.js +281 -0
  109. package/src/doc/components/Esdoc/DetailHTML.js +33 -0
  110. package/src/doc/components/Esdoc/DirectSubclassHTML.js +30 -0
  111. package/src/doc/components/Esdoc/DocBuilderUtils.js +694 -0
  112. package/src/doc/components/Esdoc/DocLinkHTML.js +62 -0
  113. package/src/doc/components/Esdoc/DocsLinkHTML.js +38 -0
  114. package/src/doc/components/Esdoc/Esdoc.js +63 -0
  115. package/src/doc/components/Esdoc/EsdocContent.js +51 -0
  116. package/src/doc/components/Esdoc/EsdocNavigation.js +13 -0
  117. package/src/doc/components/Esdoc/EsdocSearch.js +81 -0
  118. package/src/doc/components/Esdoc/ExperimentalHTML.js +17 -0
  119. package/src/doc/components/Esdoc/ExtendsChainHTML.js +32 -0
  120. package/src/doc/components/Esdoc/FileDocLinkHTML.js +60 -0
  121. package/src/doc/components/Esdoc/IdentifiersDoc.js +113 -0
  122. package/src/doc/components/Esdoc/IndirectSubclassHTML.js +30 -0
  123. package/src/doc/components/Esdoc/InheritedSummaryDoc.js +70 -0
  124. package/src/doc/components/Esdoc/InheritedSummaryHTML.js +38 -0
  125. package/src/doc/components/Esdoc/MixinClassesHTML.js +29 -0
  126. package/src/doc/components/Esdoc/NavDoc.js +112 -0
  127. package/src/doc/components/Esdoc/OverrideMethod.js +44 -0
  128. package/src/doc/components/Esdoc/OverrideMethodDescription.js +35 -0
  129. package/src/doc/components/Esdoc/Properties.js +89 -0
  130. package/src/doc/components/Esdoc/README.md +45 -0
  131. package/src/doc/components/Esdoc/SignatureHTML.js +123 -0
  132. package/src/doc/components/Esdoc/SingleDoc.js +31 -0
  133. package/src/doc/components/Esdoc/SummaryDoc.js +160 -0
  134. package/src/doc/components/Esdoc/SummaryHTML.js +96 -0
  135. package/src/doc/components/Esdoc/TypeDocLinkHTML.js +249 -0
  136. package/src/doc/components/Esdoc/css/identifiers.css +38 -0
  137. package/src/doc/components/Esdoc/css/search.css +76 -0
  138. package/src/doc/components/Esdoc/css/style.css +603 -0
  139. package/src/doc/components/Esdoc/index.js +7 -0
  140. package/src/doc/components/Example.js +153 -0
  141. package/src/doc/components/Examples.js +183 -0
  142. package/src/doc/components/Home.js +106 -0
  143. package/src/doc/components/TrackerExample.js +38 -0
  144. package/src/doc/components/esm.min.js +2 -0
  145. package/src/doc/components/examples/assets/tralis-live-map/index.js +11 -0
  146. package/src/doc/components/examples/assets/tralis-live-map/s1kreis.svg +105 -0
  147. package/src/doc/components/examples/assets/tralis-live-map/s20kreis.svg +101 -0
  148. package/src/doc/components/examples/assets/tralis-live-map/s2kreis.svg +95 -0
  149. package/src/doc/components/examples/assets/tralis-live-map/s3kreis.svg +95 -0
  150. package/src/doc/components/examples/assets/tralis-live-map/s4kreis.svg +95 -0
  151. package/src/doc/components/examples/assets/tralis-live-map/s6kreis.svg +95 -0
  152. package/src/doc/components/examples/assets/tralis-live-map/s7kreis.svg +95 -0
  153. package/src/doc/components/examples/assets/tralis-live-map/s8kreis.svg +93 -0
  154. package/src/doc/components/examples/assets/tralis-live-map/unknown.svg +107 -0
  155. package/src/doc/components/examples/mb-copyright.html +26 -0
  156. package/src/doc/components/examples/mb-copyright.js +37 -0
  157. package/src/doc/components/examples/mb-tracker.html +1 -0
  158. package/src/doc/components/examples/mb-tracker.js +39 -0
  159. package/src/doc/components/examples/mb-tracker.md +1 -0
  160. package/src/doc/components/examples/mb-tralis.html +1 -0
  161. package/src/doc/components/examples/mb-tralis.js +34 -0
  162. package/src/doc/components/examples/ol-copyright.html +26 -0
  163. package/src/doc/components/examples/ol-copyright.js +43 -0
  164. package/src/doc/components/examples/ol-mapbox-layer.html +1 -0
  165. package/src/doc/components/examples/ol-mapbox-layer.js +28 -0
  166. package/src/doc/components/examples/ol-mapbox-layer.md +0 -0
  167. package/src/doc/components/examples/ol-mapbox-style-layer.html +12 -0
  168. package/src/doc/components/examples/ol-mapbox-style-layer.js +44 -0
  169. package/src/doc/components/examples/ol-query.html +32 -0
  170. package/src/doc/components/examples/ol-query.js +83 -0
  171. package/src/doc/components/examples/ol-routing.html +26 -0
  172. package/src/doc/components/examples/ol-routing.js +59 -0
  173. package/src/doc/components/examples/ol-routing.md +1 -0
  174. package/src/doc/components/examples/ol-stop-finder.html +15 -0
  175. package/src/doc/components/examples/ol-stop-finder.js +31 -0
  176. package/src/doc/components/examples/ol-stop-finder.md +1 -0
  177. package/src/doc/components/examples/ol-tracker.html +1 -0
  178. package/src/doc/components/examples/ol-tracker.js +44 -0
  179. package/src/doc/components/examples/ol-tracker.md +1 -0
  180. package/src/doc/components/examples/ol-tralis.html +5 -0
  181. package/src/doc/components/examples/ol-tralis.js +57 -0
  182. package/src/doc/components/examples/tralis-live-map.html +1 -0
  183. package/src/doc/components/examples/tralis-live-map.js +51 -0
  184. package/src/doc/components/examples/tralis-live-map.md +3 -0
  185. package/src/doc/examples/assets/tralis-live-map/index.js +11 -0
  186. package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +105 -0
  187. package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +101 -0
  188. package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +95 -0
  189. package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +95 -0
  190. package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +95 -0
  191. package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +95 -0
  192. package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +95 -0
  193. package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +93 -0
  194. package/src/doc/examples/assets/tralis-live-map/unknown.svg +107 -0
  195. package/src/doc/examples/mb-copyright.html +26 -0
  196. package/src/doc/examples/mb-copyright.js +37 -0
  197. package/src/doc/examples/mb-tracker.html +1 -0
  198. package/src/doc/examples/mb-tracker.js +39 -0
  199. package/src/doc/examples/mb-tracker.md +1 -0
  200. package/src/doc/examples/mb-tralis.html +1 -0
  201. package/src/doc/examples/mb-tralis.js +34 -0
  202. package/src/doc/examples/ol-copyright.html +26 -0
  203. package/src/doc/examples/ol-copyright.js +43 -0
  204. package/src/doc/examples/ol-mapbox-layer.html +1 -0
  205. package/src/doc/examples/ol-mapbox-layer.js +28 -0
  206. package/src/doc/examples/ol-mapbox-layer.md +0 -0
  207. package/src/doc/examples/ol-mapbox-style-layer.html +12 -0
  208. package/src/doc/examples/ol-mapbox-style-layer.js +44 -0
  209. package/src/doc/examples/ol-query.html +32 -0
  210. package/src/doc/examples/ol-query.js +83 -0
  211. package/src/doc/examples/ol-routing.html +26 -0
  212. package/src/doc/examples/ol-routing.js +59 -0
  213. package/src/doc/examples/ol-routing.md +1 -0
  214. package/src/doc/examples/ol-stop-finder.html +15 -0
  215. package/src/doc/examples/ol-stop-finder.js +31 -0
  216. package/src/doc/examples/ol-stop-finder.md +1 -0
  217. package/src/doc/examples/ol-tracker.html +1 -0
  218. package/src/doc/examples/ol-tracker.js +44 -0
  219. package/src/doc/examples/ol-tracker.md +1 -0
  220. package/src/doc/examples/ol-tralis.html +5 -0
  221. package/src/doc/examples/ol-tralis.js +57 -0
  222. package/src/doc/examples/tralis-live-map.html +1 -0
  223. package/src/doc/examples/tralis-live-map.js +51 -0
  224. package/src/doc/examples/tralis-live-map.md +3 -0
  225. package/src/doc/examples.js +107 -0
  226. package/src/doc/img/examples/live_tracker_mb.jpg +0 -0
  227. package/src/doc/img/examples/live_tracker_munich.jpg +0 -0
  228. package/src/doc/img/examples/live_tracker_ol.jpg +0 -0
  229. package/src/doc/img/examples/mapbox.jpg +0 -0
  230. package/src/doc/img/examples/mapbox_style.jpg +0 -0
  231. package/src/doc/img/examples/ol-copyright.png +0 -0
  232. package/src/doc/img/examples/query_objects.jpg +0 -0
  233. package/src/doc/img/examples/routing.jpg +0 -0
  234. package/src/doc/img/examples/simple_map.jpg +0 -0
  235. package/src/doc/img/examples/stops.jpg +0 -0
  236. package/src/doc/img/favico.ico +0 -0
  237. package/src/doc/index.js +21 -0
  238. package/src/iife.js +7 -0
  239. package/{module.js → src/index.js} +2 -0
  240. package/{mapbox → src/mapbox}/controls/CopyrightControl.js +0 -0
  241. package/{mapbox → src/mapbox}/index.js +0 -0
  242. package/{mapbox → src/mapbox}/layers/Layer.js +0 -0
  243. package/{mapbox → src/mapbox}/layers/Layer.test.js +0 -0
  244. package/{mapbox → src/mapbox}/layers/TralisLayer.js +0 -0
  245. package/{mapbox → src/mapbox}/layers/TralisLayer.test.js +0 -0
  246. package/{mapbox → src/mapbox}/utils.js +0 -0
  247. package/src/ol/README.md +0 -0
  248. package/{ol → src/ol}/controls/CopyrightControl.js +0 -0
  249. package/{ol → src/ol}/controls/CopyrightControl.test.js +0 -0
  250. package/{ol → src/ol}/controls/RoutingControl.js +0 -0
  251. package/{ol → src/ol}/controls/RoutingControl.test.js +0 -0
  252. package/{ol → src/ol}/controls/StopFinderControl.js +0 -0
  253. package/{ol → src/ol}/controls/StopFinderControl.test.js +0 -0
  254. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen10.json +0 -0
  255. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen100.json +0 -0
  256. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen30.json +0 -0
  257. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen5.json +0 -0
  258. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteOSM.json +0 -0
  259. package/{ol → src/ol}/controls/snapshots/RoutingControlStation1.json +0 -0
  260. package/{ol → src/ol}/controls/snapshots/RoutingControlStation2.json +0 -0
  261. package/{ol → src/ol}/index.js +0 -0
  262. package/{ol → src/ol}/layers/Layer.js +0 -0
  263. package/{ol → src/ol}/layers/Layer.test.js +0 -0
  264. package/{ol → src/ol}/layers/MapboxLayer.js +0 -0
  265. package/{ol → src/ol}/layers/MapboxLayer.test.js +0 -0
  266. package/{ol → src/ol}/layers/MapboxStyleLayer.js +0 -0
  267. package/{ol → src/ol}/layers/MapboxStyleLayer.test.js +0 -0
  268. package/{ol → src/ol}/layers/MaplibreLayer.js +0 -0
  269. package/{ol → src/ol}/layers/RoutingLayer.js +0 -0
  270. package/{ol → src/ol}/layers/RoutingLayer.test.js +0 -0
  271. package/{ol → src/ol}/layers/TralisLayer.js +0 -0
  272. package/{ol → src/ol}/layers/TralisLayer.test.js +0 -0
  273. package/{ol → src/ol}/layers/VectorLayer.js +0 -0
  274. package/{ol → src/ol}/layers/VectorLayer.test.js +0 -0
  275. package/{ol → src/ol}/layers/WMSLayer.js +0 -0
  276. package/{ol → src/ol}/layers/WMSLayer.test.js +0 -0
  277. package/{ol → src/ol}/styles/fullTrajectoryDelayStyle.js +0 -0
  278. package/{ol → src/ol}/styles/fullTrajectoryStyle.js +0 -0
  279. package/{ol → src/ol}/styles/index.js +0 -0
  280. package/src/setupTests.js +15 -0
  281. package/webpack.config.js +6 -0
  282. package/index.js +0 -2
  283. package/index.js.map +0 -1
@@ -0,0 +1,43 @@
1
+ import { Map, View } from 'ol';
2
+ import { MaplibreLayer, CopyrightControl } from '../../ol';
3
+ import 'ol/ol.css';
4
+
5
+ export default () => {
6
+ // Define the map
7
+ const map = new Map({
8
+ target: 'map',
9
+ view: new View({
10
+ center: [0, 0],
11
+ zoom: 1,
12
+ }),
13
+ controls: [],
14
+ });
15
+
16
+ // Define a custom rendering for the copyright
17
+ const control = new CopyrightControl({
18
+ target: document.getElementById('copyright'),
19
+ element: document.createElement('div'),
20
+ render() {
21
+ this.element.innerHTML = this.active
22
+ ? this.getCopyrights().join(' | ')
23
+ : '';
24
+ },
25
+ });
26
+
27
+ // Attach to the map
28
+ control.map = map;
29
+
30
+ // Define the Mapbox style to display
31
+ const mapboxLayer = new MaplibreLayer({
32
+ url: 'https://maps.geops.io/styles/travic_v2/style.json',
33
+ apiKey: window.apiKey,
34
+ });
35
+
36
+ // Display the Mapbox style on the map
37
+ mapboxLayer.init(map);
38
+
39
+ // Toggle the copyright control.
40
+ document.getElementById('button').addEventListener('click', () => {
41
+ control.map = control.map ? null : map;
42
+ });
43
+ };
@@ -0,0 +1 @@
1
+ <div id="map" style="width: 100%; height: 100%"></div>
@@ -0,0 +1,28 @@
1
+ import { Map, View } from 'ol';
2
+ import { MaplibreLayer, CopyrightControl } from '../../ol';
3
+ import 'ol/ol.css';
4
+
5
+ export default () => {
6
+ // Define the map
7
+ const map = new Map({
8
+ target: 'map',
9
+ view: new View({
10
+ center: [0, 0],
11
+ zoom: 1,
12
+ }),
13
+ controls: [],
14
+ });
15
+
16
+ // Add copyright control
17
+ const control = new CopyrightControl();
18
+ control.map = map;
19
+
20
+ // Define the Mapbox style to display
21
+ const layer = new MaplibreLayer({
22
+ url: 'https://maps.geops.io/styles/travic_v2/style.json',
23
+ apiKey: window.apiKey,
24
+ });
25
+
26
+ // Display the Mapbox style on the map
27
+ layer.init(map);
28
+ };
File without changes
@@ -0,0 +1,12 @@
1
+ <style>
2
+ #button {
3
+ position: absolute;
4
+ margin: 10px 10px;
5
+ bottom: 0;
6
+ left: 0;
7
+ }
8
+ </style>
9
+ <div style="width: 100%; height: 100%; position: relative">
10
+ <div id="map" style="width: 100%; height: 100%"></div>
11
+ <button id="button" type="button" class="geops-ui">Hide the POIs</button>
12
+ </div>
@@ -0,0 +1,44 @@
1
+ import { Map, View } from 'ol';
2
+ import { MaplibreLayer, MapboxStyleLayer, CopyrightControl } from '../../ol';
3
+ import 'ol/ol.css';
4
+
5
+ export default () => {
6
+ // Define the map
7
+ const map = new Map({
8
+ target: 'map',
9
+ view: new View({
10
+ center: [950690.34, 6003962.67],
11
+ zoom: 20,
12
+ }),
13
+ controls: [],
14
+ });
15
+
16
+ // Add copyright control
17
+ const control = new CopyrightControl();
18
+ control.map = map;
19
+
20
+ // Define the Mapbox style to display
21
+ const mapboxLayer = new MaplibreLayer({
22
+ url: 'https://maps.geops.io/styles/travic_v2/style.json',
23
+ apiKey: window.apiKey,
24
+ });
25
+
26
+ // Display the style on the map
27
+ mapboxLayer.init(map);
28
+
29
+ // Define the list of Mapbox style layers representing the pois.
30
+ const poiLayer = new MapboxStyleLayer({
31
+ mapboxLayer,
32
+ styleLayersFilter: ({ id }) => /^poi_/.test(id),
33
+ });
34
+
35
+ // Display the pois on the map
36
+ poiLayer.init(map);
37
+
38
+ // Toggle pois visibility
39
+ document.getElementById('button').addEventListener('click', (evt) => {
40
+ poiLayer.setVisible(!poiLayer.visible);
41
+ const { target } = evt;
42
+ target.innerHTML = `${poiLayer.visible ? 'Hide' : 'Show'} the POIs`;
43
+ });
44
+ };
@@ -0,0 +1,32 @@
1
+ <style>
2
+ div#box {
3
+ position: absolute;
4
+ z-index: 1;
5
+ top: 100px;
6
+ left: 10px;
7
+ width: 200px;
8
+ padding: 10px;
9
+ background-color: #FFFFFF;
10
+ border-radius: 5px;
11
+ font-family: Lato, Arial, sans-serif;
12
+ color: #353535;
13
+ }
14
+
15
+ div#box .heading {
16
+ font-weight: bold;
17
+ font-size: 22px;
18
+ line-height: 27px;
19
+ }
20
+
21
+ div#box #content {
22
+ font-size: 18px;
23
+ line-height: 22px;
24
+ }
25
+ </style>
26
+ <div style="width: 100%; height: 100%; position: relative;">
27
+ <div id="box">
28
+ <div class="heading">Query result</div>
29
+ <div id="content">Click on a feature.</div>
30
+ </div>
31
+ <div id="map" style="width: 100%; height: 100%;"></div>
32
+ </div>
@@ -0,0 +1,83 @@
1
+ import OLVectorLayer from 'ol/layer/Vector';
2
+ import VectorSource from 'ol/source/Vector';
3
+ import Feature from 'ol/Feature';
4
+ import { Polygon } from 'ol/geom';
5
+ import View from 'ol/View';
6
+ import Map from 'ol/Map';
7
+ import {
8
+ MaplibreLayer,
9
+ MapboxStyleLayer,
10
+ VectorLayer,
11
+ CopyrightControl,
12
+ } from '../../ol';
13
+ import 'ol/ol.css';
14
+
15
+ export default () => {
16
+ const map = new Map({
17
+ target: 'map',
18
+ view: new View({
19
+ center: [950690.34, 6003962.67],
20
+ zoom: 20,
21
+ }),
22
+ controls: [],
23
+ });
24
+
25
+ // Add copyright control
26
+ const control = new CopyrightControl();
27
+ control.map = map;
28
+
29
+ map.on('pointermove', () => {
30
+ map.getTargetElement().style.cursor = '';
31
+ });
32
+
33
+ const onHover = ([feature]) => {
34
+ if (feature) {
35
+ map.getTargetElement().style.cursor = 'pointer';
36
+ }
37
+ };
38
+
39
+ const onClick = ([feature]) => {
40
+ if (feature) {
41
+ document.getElementById('content').innerHTML = feature.get('name');
42
+ }
43
+ };
44
+
45
+ const mapboxLayer = new MaplibreLayer({
46
+ url: 'https://maps.geops.io/styles/travic_v2/style.json',
47
+ apiKey: window.apiKey,
48
+ });
49
+ mapboxLayer.init(map);
50
+
51
+ const poiLayer = new MapboxStyleLayer({
52
+ visible: true,
53
+ mapboxLayer,
54
+ styleLayersFilter: ({ id }) => /^poi_named/.test(id),
55
+ onHover,
56
+ onClick,
57
+ });
58
+ poiLayer.init(map);
59
+
60
+ const vectorLayer = new VectorLayer({
61
+ olLayer: new OLVectorLayer({
62
+ source: new VectorSource({
63
+ features: [
64
+ new Feature({
65
+ name: 'Rectangle',
66
+ geometry: new Polygon([
67
+ [
68
+ [950693, 6003968],
69
+ [950693, 6003936],
70
+ [950760, 6003936],
71
+ [950760, 6003968],
72
+ [950693, 6003968],
73
+ ],
74
+ ]),
75
+ }),
76
+ ],
77
+ }),
78
+ }),
79
+ onHover,
80
+ onClick,
81
+ });
82
+ vectorLayer.init(map);
83
+ };
@@ -0,0 +1,26 @@
1
+ <style>
2
+ #control-button,
3
+ #mot-button,
4
+ #reset-button {
5
+ margin: 10px 10px;
6
+ }
7
+
8
+ .buttons {
9
+ display: flex;
10
+ }
11
+ </style>
12
+ <div style="width: 100%; height: 100%; position: relative;">
13
+ <div id="map" style="width: 100%; height: 100%;"></div>
14
+ <div class="buttons">
15
+ <button id="control-button" type="button" class="geops-ui">
16
+ Deactivate RoutingControl
17
+ </button>
18
+ <button id="mot-button" type="button" class="geops-ui">
19
+ Switch to foot routing
20
+ </button>
21
+ <button id="reset-button" type="button" class="geops-ui">
22
+ Clear route
23
+ </button>
24
+ </div>
25
+ <div id="copyright"></div>
26
+ </div>
@@ -0,0 +1,59 @@
1
+ import View from 'ol/View';
2
+ import Map from 'ol/Map';
3
+ import { MaplibreLayer, CopyrightControl, RoutingControl } from '../../ol';
4
+ import 'ol/ol.css';
5
+
6
+ export default () => {
7
+ const map = new Map({
8
+ target: 'map',
9
+ view: new View({
10
+ center: [950690.34, 6003962.67],
11
+ zoom: 15,
12
+ }),
13
+ controls: [],
14
+ });
15
+
16
+ const mapboxLayer = new MaplibreLayer({
17
+ url: `https://maps.geops.io/styles/travic_v2/style.json?key=${window.apiKey}`,
18
+ });
19
+ mapboxLayer.init(map);
20
+
21
+ const copyright = new CopyrightControl();
22
+ copyright.map = map;
23
+
24
+ const control = new RoutingControl({
25
+ element: document.createElement('div'),
26
+ apiKey: `${window.apiKey}`,
27
+ });
28
+ control.map = map;
29
+
30
+ control.addViaPoint([950476.4055933182, 6003322.253698345]);
31
+ control.addViaPoint([950389.0813034325, 6003656.659274571]);
32
+ control.addViaPoint('29563461696e881d');
33
+
34
+ // Add example button to toggle the RoutingControl.
35
+ document.getElementById('control-button').addEventListener('click', (e) => {
36
+ e.target.innerHTML = control.active
37
+ ? 'Activate RoutingControl'
38
+ : 'Deactivate RoutingControl';
39
+ if (control.active) {
40
+ control.active = false;
41
+ } else {
42
+ control.active = true;
43
+ }
44
+ });
45
+
46
+ // Add example button to toggle the RoutingControl mot.
47
+ document.getElementById('mot-button').addEventListener('click', (e) => {
48
+ e.target.innerHTML =
49
+ control.mot === 'bus'
50
+ ? 'Switch to bus routing'
51
+ : 'Switch to foot routing';
52
+ control.mot = control.mot === 'bus' ? 'foot' : 'bus';
53
+ });
54
+
55
+ // Add example button to toggle the RoutingControl mot.
56
+ document.getElementById('reset-button').addEventListener('click', () => {
57
+ control.reset();
58
+ });
59
+ };
@@ -0,0 +1 @@
1
+ Follow [this link](https://developer.geops.io/) to get information about the API and how to get an API key.
@@ -0,0 +1,15 @@
1
+ <style>
2
+
3
+ #mbt-search > div > div:hover {
4
+ background-color: lightgray;
5
+ }
6
+
7
+ #mbt-search {
8
+ max-height: 90%;
9
+ }
10
+
11
+ </style>
12
+
13
+ <div style="width: 100%; height: 100%; position: relative;">
14
+ <div id="map" style="width: 100%; height: 100%;"></div>
15
+ </div>
@@ -0,0 +1,31 @@
1
+ import View from 'ol/View';
2
+ import Map from 'ol/Map';
3
+ import { MapboxLayer, CopyrightControl, StopFinderControl } from '../../ol';
4
+ import 'ol/ol.css';
5
+
6
+ export default () => {
7
+ const map = new Map({
8
+ target: 'map',
9
+ view: new View({
10
+ center: [950690.34, 6003962.67],
11
+ zoom: 15,
12
+ }),
13
+ controls: [],
14
+ });
15
+
16
+ const copyright = new CopyrightControl();
17
+ copyright.map = map;
18
+
19
+ const stopFinder = new StopFinderControl({
20
+ apiKey: window.apiKey,
21
+ });
22
+ stopFinder.map = map;
23
+
24
+ const mapboxLayer = new MapboxLayer({
25
+ url: 'https://maps.geops.io/styles/travic_v2/style.json',
26
+ apiKey: window.apiKey,
27
+ });
28
+ mapboxLayer.init(map);
29
+
30
+ map.on('singleclick', () => stopFinder.clear());
31
+ };
@@ -0,0 +1 @@
1
+ Follow [this link](https://developer.geops.io/) to get information about the API and how to get an API key.
@@ -0,0 +1 @@
1
+ <div id="map" style="width: 100%; height: 100%;"></div>
@@ -0,0 +1,44 @@
1
+ import { Map, View } from 'ol';
2
+ import {
3
+ TralisLayer,
4
+ MaplibreLayer,
5
+ CopyrightControl,
6
+ trackerDelayStyle,
7
+ } from '../../ol';
8
+ import { sortByDelay } from '../../common/utils';
9
+ import 'ol/ol.css';
10
+
11
+ export default () => {
12
+ const map = new Map({
13
+ target: 'map',
14
+ view: new View({
15
+ center: [831634, 5933959],
16
+ zoom: 13,
17
+ }),
18
+ controls: [],
19
+ });
20
+
21
+ const control = new CopyrightControl();
22
+ control.map = map;
23
+
24
+ const layer = new MaplibreLayer({
25
+ url: 'https://maps.geops.io/styles/travic_v2/style.json',
26
+ apiKey: window.apiKey,
27
+ });
28
+ layer.init(map);
29
+
30
+ const tracker = new TralisLayer({
31
+ url: 'wss://api.geops.io/tracker-ws/v1/',
32
+ apiKey: window.apiKey,
33
+ style: trackerDelayStyle,
34
+ sort: sortByDelay,
35
+ });
36
+ tracker.init(map);
37
+
38
+ tracker.onClick(([feature]) => {
39
+ if (feature) {
40
+ // eslint-disable-next-line no-console
41
+ console.log(feature.getProperties());
42
+ }
43
+ });
44
+ };
@@ -0,0 +1 @@
1
+ Follow [this link](https://developer.geops.io/) to get information about the API and how to get an API key.
@@ -0,0 +1,5 @@
1
+ <div id="map" style="width: 100%; height: 100%;"></div>
2
+ <button id="button">Show/hide</button>
3
+ <button id="close">Kill</button>
4
+ <button id="bbox">Send same bbox</button>
5
+ <button id="terminate">terminate</button>
@@ -0,0 +1,57 @@
1
+ import View from 'ol/View';
2
+ import Map from 'ol/Map';
3
+ import { TralisLayer, MapboxLayer, CopyrightControl } from '../../ol';
4
+
5
+ export default () => {
6
+ const map = new Map({
7
+ target: 'map',
8
+ view: new View({
9
+ // center: max,
10
+ center: [831634, 5933959],
11
+ zoom: 13,
12
+ // center: fromLonLat([7.841148, 47.996542]), // freiburg
13
+ // center: fromLonLat([11.55, 48.14]), // munich
14
+ }),
15
+ controls: [],
16
+ });
17
+
18
+ const control = new CopyrightControl();
19
+ control.map = map;
20
+
21
+ const layer = new MapboxLayer({
22
+ url: 'https://maps.geops.io/styles/travic_v2/style.json',
23
+ apiKey: window.apiKey,
24
+ });
25
+ layer.init(map);
26
+
27
+ const tracker = new TralisLayer({
28
+ url: 'wss://api.geops.io/tracker-ws/v1/',
29
+ apiKey: window.apiKey,
30
+ // bbox: [1152072, 6048052, 1433666, 6205578],
31
+ isUpdateBboxOnMoveEnd: true,
32
+ visible: true,
33
+ tenant: 'sbb',
34
+ // projection: 'EPSG:3857',
35
+ // regexPublishedLineName: '^(S|R$|RE|PE|D|IRE|RB|TER)',
36
+ });
37
+ tracker.init(map);
38
+ tracker.onClick(([feature]) => {
39
+ if (feature) {
40
+ // eslint-disable-next-line no-console
41
+ console.log(feature.getProperties());
42
+ }
43
+ });
44
+ document.getElementById('button').onclick = () => {
45
+ tracker.setVisible(!tracker.visible);
46
+ };
47
+ document.getElementById('close').onclick = () => {
48
+ tracker.api.conn.websocket.close();
49
+ window.lastWs = tracker.api.conn.websocket;
50
+ };
51
+ document.getElementById('bbox').onclick = () => {
52
+ tracker.api.conn.websocket.send(`BBOX ${tracker.api.bbox.join(' ')}`);
53
+ };
54
+ document.getElementById('terminate').onclick = () => {
55
+ tracker.api.conn.websocket.terminate();
56
+ };
57
+ };
@@ -0,0 +1 @@
1
+ <div id="map" style="width: 100%; height: 100%;"></div>
@@ -0,0 +1,51 @@
1
+ import { Map } from 'mapbox-gl';
2
+ import { TralisLayer, CopyrightControl } from '../../mapbox';
3
+ import 'maplibre-gl/dist/maplibre-gl.css';
4
+ import LINE_IMAGES from './assets/tralis-live-map';
5
+
6
+ export default () => {
7
+ const map = new Map({
8
+ container: 'map',
9
+ style: 'https://maps.geops.io/styles/travic_v2/style.json',
10
+ apiKey: window.apiKey,
11
+ center: [11.55, 48.14],
12
+ zoom: 10,
13
+ touchPitch: false,
14
+ pitchWithRotate: false,
15
+ attributionControl: false,
16
+ });
17
+
18
+ const control = new CopyrightControl();
19
+ control.map = map;
20
+
21
+ const cache = {};
22
+ const tracker = new TralisLayer({
23
+ url: 'wss://api.geops.io/realtime-ws/v1/',
24
+ isUpdateBboxOnMoveEnd: false,
25
+ apiKey: window.apiKey,
26
+ bbox: [1152072, 6048052, 1433666, 6205578],
27
+ style: (props) => {
28
+ let { name } = props.line || {};
29
+ if (!name || !LINE_IMAGES[name]) {
30
+ name = 'unknown';
31
+ }
32
+ if (!cache[name]) {
33
+ const img = new Image();
34
+ img.src = LINE_IMAGES[name];
35
+ img.width = 25 * window.devicePixelRatio;
36
+ img.height = 25 * window.devicePixelRatio;
37
+ cache[name] = img;
38
+ }
39
+ return cache[name];
40
+ },
41
+ });
42
+
43
+ tracker.onClick(([feature]) => {
44
+ if (feature) {
45
+ // eslint-disable-next-line no-console
46
+ console.log(feature.getProperties());
47
+ }
48
+ });
49
+
50
+ tracker.init(map);
51
+ };
@@ -0,0 +1,3 @@
1
+ This example uses the [geOps Realtime API](https://developer.geops.io/).
2
+
3
+ Follow [this link](https://developer.geops.io/) to get information about the API and how to get an API key.
@@ -0,0 +1,11 @@
1
+ import S1 from './s1kreis.svg';
2
+ import S20 from './s20kreis.svg';
3
+ import S2 from './s2kreis.svg';
4
+ import S3 from './s3kreis.svg';
5
+ import S4 from './s4kreis.svg';
6
+ import S6 from './s6kreis.svg';
7
+ import S7 from './s7kreis.svg';
8
+ import S8 from './s8kreis.svg';
9
+ import unknown from './unknown.svg';
10
+
11
+ export default { S1, S20, S2, S3, S4, S6, S7, S8, unknown };