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.
- package/.babelrc +6 -0
- package/.esdoc.json +17 -0
- package/.eslintignore +1 -0
- package/.github/workflows/conventional-pr-title.yml +21 -0
- package/.github/workflows/cypress.yml +29 -0
- package/.github/workflows/nodejs.yml +28 -0
- package/.husky/commit-msg +4 -0
- package/.husky/post-checkout +4 -0
- package/.husky/post-merge +4 -0
- package/.husky/post-rebase +4 -0
- package/.husky/pre-commit +4 -0
- package/.neutrinorc.js +176 -0
- package/.nvmrc +1 -0
- package/CHANGELOG.md +10 -0
- package/LICENSE +21 -0
- package/Layer.js +2 -0
- package/Layer.js.map +7 -0
- package/README.md +4 -1
- package/__mocks__/mapbox-gl.js +81 -0
- package/__mocks__/maplibre-gl.js +81 -0
- package/commitlint.config.js +1 -0
- package/cypress/fixtures/example.json +5 -0
- package/cypress/integration/examples/api.spec.js +7 -0
- package/cypress/integration/examples/examples.spec.js +7 -0
- package/cypress/integration/examples/navigation.spec.js +29 -0
- package/cypress/plugins/index.js +21 -0
- package/cypress/support/commands.js +25 -0
- package/cypress/support/index.js +20 -0
- package/cypress.json +4 -0
- package/data/fetchRoute.json +292 -0
- package/data/fetchTrajectories.json +18 -0
- package/data/fetchTrajectoryById.json +3 -0
- package/data/fetchTrajectoryStations.json +18 -0
- package/data/stopsSearch.json +15 -0
- package/documentation.yml +4 -0
- package/esdoc/README.md +27 -0
- package/esdoc/plugins/MyPlugin.js +69 -0
- package/esdoc/plugins/dynamic-property-plugin/Plugin.js +50 -0
- package/esdoc/plugins/externals-plugin/Plugin.js +45 -0
- package/esdoc/plugins/externals-plugin/externals.js +96 -0
- package/global-setup.js +3 -0
- package/{ol/README.md → index.html} +0 -0
- package/indexweb.html +49 -0
- package/jest.config.js +5 -0
- package/package.json +29 -9
- package/pull_request_template.md +17 -0
- package/renovate.json +4 -0
- package/scripts/read-pkg-json.js +22 -0
- package/{api → src/api}/index.js +0 -0
- package/{api → src/api}/routing/RoutingAPI.js +0 -0
- package/{api → src/api}/routing/RoutingAPI.test.js +0 -0
- package/{api → src/api}/stops/StopsAPI.js +0 -0
- package/{api → src/api}/stops/StopsAPI.test.js +0 -0
- package/{api → src/api}/tralis/TralisAPI.js +0 -0
- package/{api → src/api}/tralis/TralisAPI.test.js +0 -0
- package/{api → src/api}/tralis/TralisAPIUtils.js +0 -0
- package/{api → src/api}/tralis/WebSocketConnector.js +0 -0
- package/{api → src/api}/tralis/WebSocketConnector.test.js +0 -0
- package/{api → src/api}/tralis/typedefs.js +0 -0
- package/src/assets/Lato-Black.ttf +0 -0
- package/src/assets/Lato-BlackItalic.ttf +0 -0
- package/src/assets/Lato-Bold.ttf +0 -0
- package/src/assets/Lato-BoldItalic.ttf +0 -0
- package/src/assets/Lato-Italic.ttf +0 -0
- package/src/assets/Lato-Light.ttf +0 -0
- package/src/assets/Lato-LightItalic.ttf +0 -0
- package/src/assets/Lato-Regular.ttf +0 -0
- package/src/assets/Lato-Thin.ttf +0 -0
- package/src/assets/Lato-ThinItalic.ttf +0 -0
- package/src/assets/OFL.txt +93 -0
- package/{common → src/common}/Tracker.js +0 -0
- package/{common → src/common}/api/api.js +0 -0
- package/{common → src/common}/api/api.test.js +0 -0
- package/{common → src/common}/controls/Control.js +0 -0
- package/{common → src/common}/controls/Control.test.js +0 -0
- package/{common → src/common}/layers/Layer.js +0 -0
- package/{common → src/common}/layers/Layer.test.js +0 -0
- package/{common → src/common}/mixins/CopyrightMixin.js +0 -0
- package/{common → src/common}/mixins/SearchMixin.js +0 -0
- package/{common → src/common}/mixins/TralisLayerMixin.js +0 -0
- package/{common → src/common}/styles/index.js +0 -0
- package/{common → src/common}/styles/trackerDefaultStyle.js +8 -8
- package/{common → src/common}/styles/trackerDelayStyle.js +0 -0
- package/{common → src/common}/styles/trackerSimpleStyle.js +0 -0
- package/{common → src/common}/trackerConfig.js +0 -0
- package/{common → src/common}/trackerConfig.test.js +0 -0
- package/{common → src/common}/typedefs.js +0 -0
- package/{common → src/common}/utils/createTrackerFilters.js +0 -0
- package/{common → src/common}/utils/createTrackerFilters.test.js +0 -0
- package/{common → src/common}/utils/getMapboxMapCopyrights.js +0 -0
- package/{common → src/common}/utils/getMapboxMapCopyrights.test.js +0 -0
- package/{common → src/common}/utils/getMapboxStyleUrl.js +0 -0
- package/{common → src/common}/utils/getVehiclePosition.js +0 -0
- package/{common → src/common}/utils/index.js +0 -0
- package/{common → src/common}/utils/removeDuplicate.js +0 -0
- package/{common → src/common}/utils/removeDuplicate.test.js +0 -0
- package/{common → src/common}/utils/sortByDelay.js +0 -0
- package/{common → src/common}/utils/timeUtils.js +0 -0
- package/{common → src/common}/utils/timeUtils.test.js +0 -0
- package/src/doc/App.js +116 -0
- package/src/doc/App.scss +51 -0
- package/src/doc/_redirects +2 -0
- package/src/doc/components/CodeSandboxButton.js +103 -0
- package/src/doc/components/Documentation.js +40 -0
- package/src/doc/components/Esdoc/Anchor.js +57 -0
- package/src/doc/components/Esdoc/ClassDoc.js +272 -0
- package/src/doc/components/Esdoc/DeprecatedHTML.js +16 -0
- package/src/doc/components/Esdoc/DetailDocs.js +281 -0
- package/src/doc/components/Esdoc/DetailHTML.js +33 -0
- package/src/doc/components/Esdoc/DirectSubclassHTML.js +30 -0
- package/src/doc/components/Esdoc/DocBuilderUtils.js +694 -0
- package/src/doc/components/Esdoc/DocLinkHTML.js +62 -0
- package/src/doc/components/Esdoc/DocsLinkHTML.js +38 -0
- package/src/doc/components/Esdoc/Esdoc.js +63 -0
- package/src/doc/components/Esdoc/EsdocContent.js +51 -0
- package/src/doc/components/Esdoc/EsdocNavigation.js +13 -0
- package/src/doc/components/Esdoc/EsdocSearch.js +81 -0
- package/src/doc/components/Esdoc/ExperimentalHTML.js +17 -0
- package/src/doc/components/Esdoc/ExtendsChainHTML.js +32 -0
- package/src/doc/components/Esdoc/FileDocLinkHTML.js +60 -0
- package/src/doc/components/Esdoc/IdentifiersDoc.js +113 -0
- package/src/doc/components/Esdoc/IndirectSubclassHTML.js +30 -0
- package/src/doc/components/Esdoc/InheritedSummaryDoc.js +70 -0
- package/src/doc/components/Esdoc/InheritedSummaryHTML.js +38 -0
- package/src/doc/components/Esdoc/MixinClassesHTML.js +29 -0
- package/src/doc/components/Esdoc/NavDoc.js +112 -0
- package/src/doc/components/Esdoc/OverrideMethod.js +44 -0
- package/src/doc/components/Esdoc/OverrideMethodDescription.js +35 -0
- package/src/doc/components/Esdoc/Properties.js +89 -0
- package/src/doc/components/Esdoc/README.md +45 -0
- package/src/doc/components/Esdoc/SignatureHTML.js +123 -0
- package/src/doc/components/Esdoc/SingleDoc.js +31 -0
- package/src/doc/components/Esdoc/SummaryDoc.js +160 -0
- package/src/doc/components/Esdoc/SummaryHTML.js +96 -0
- package/src/doc/components/Esdoc/TypeDocLinkHTML.js +249 -0
- package/src/doc/components/Esdoc/css/identifiers.css +38 -0
- package/src/doc/components/Esdoc/css/search.css +76 -0
- package/src/doc/components/Esdoc/css/style.css +603 -0
- package/src/doc/components/Esdoc/index.js +7 -0
- package/src/doc/components/Example.js +153 -0
- package/src/doc/components/Examples.js +183 -0
- package/src/doc/components/Home.js +106 -0
- package/src/doc/components/TrackerExample.js +38 -0
- package/src/doc/components/esm.min.js +2 -0
- package/src/doc/components/examples/assets/tralis-live-map/index.js +11 -0
- package/src/doc/components/examples/assets/tralis-live-map/s1kreis.svg +105 -0
- package/src/doc/components/examples/assets/tralis-live-map/s20kreis.svg +101 -0
- package/src/doc/components/examples/assets/tralis-live-map/s2kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s3kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s4kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s6kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s7kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s8kreis.svg +93 -0
- package/src/doc/components/examples/assets/tralis-live-map/unknown.svg +107 -0
- package/src/doc/components/examples/mb-copyright.html +26 -0
- package/src/doc/components/examples/mb-copyright.js +37 -0
- package/src/doc/components/examples/mb-tracker.html +1 -0
- package/src/doc/components/examples/mb-tracker.js +39 -0
- package/src/doc/components/examples/mb-tracker.md +1 -0
- package/src/doc/components/examples/mb-tralis.html +1 -0
- package/src/doc/components/examples/mb-tralis.js +34 -0
- package/src/doc/components/examples/ol-copyright.html +26 -0
- package/src/doc/components/examples/ol-copyright.js +43 -0
- package/src/doc/components/examples/ol-mapbox-layer.html +1 -0
- package/src/doc/components/examples/ol-mapbox-layer.js +28 -0
- package/src/doc/components/examples/ol-mapbox-layer.md +0 -0
- package/src/doc/components/examples/ol-mapbox-style-layer.html +12 -0
- package/src/doc/components/examples/ol-mapbox-style-layer.js +44 -0
- package/src/doc/components/examples/ol-query.html +32 -0
- package/src/doc/components/examples/ol-query.js +83 -0
- package/src/doc/components/examples/ol-routing.html +26 -0
- package/src/doc/components/examples/ol-routing.js +59 -0
- package/src/doc/components/examples/ol-routing.md +1 -0
- package/src/doc/components/examples/ol-stop-finder.html +15 -0
- package/src/doc/components/examples/ol-stop-finder.js +31 -0
- package/src/doc/components/examples/ol-stop-finder.md +1 -0
- package/src/doc/components/examples/ol-tracker.html +1 -0
- package/src/doc/components/examples/ol-tracker.js +44 -0
- package/src/doc/components/examples/ol-tracker.md +1 -0
- package/src/doc/components/examples/ol-tralis.html +5 -0
- package/src/doc/components/examples/ol-tralis.js +57 -0
- package/src/doc/components/examples/tralis-live-map.html +1 -0
- package/src/doc/components/examples/tralis-live-map.js +51 -0
- package/src/doc/components/examples/tralis-live-map.md +3 -0
- package/src/doc/examples/assets/tralis-live-map/index.js +11 -0
- package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +105 -0
- package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +101 -0
- package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +93 -0
- package/src/doc/examples/assets/tralis-live-map/unknown.svg +107 -0
- package/src/doc/examples/mb-copyright.html +26 -0
- package/src/doc/examples/mb-copyright.js +37 -0
- package/src/doc/examples/mb-tracker.html +1 -0
- package/src/doc/examples/mb-tracker.js +39 -0
- package/src/doc/examples/mb-tracker.md +1 -0
- package/src/doc/examples/mb-tralis.html +1 -0
- package/src/doc/examples/mb-tralis.js +34 -0
- package/src/doc/examples/ol-copyright.html +26 -0
- package/src/doc/examples/ol-copyright.js +43 -0
- package/src/doc/examples/ol-mapbox-layer.html +1 -0
- package/src/doc/examples/ol-mapbox-layer.js +28 -0
- package/src/doc/examples/ol-mapbox-layer.md +0 -0
- package/src/doc/examples/ol-mapbox-style-layer.html +12 -0
- package/src/doc/examples/ol-mapbox-style-layer.js +44 -0
- package/src/doc/examples/ol-query.html +32 -0
- package/src/doc/examples/ol-query.js +83 -0
- package/src/doc/examples/ol-routing.html +26 -0
- package/src/doc/examples/ol-routing.js +59 -0
- package/src/doc/examples/ol-routing.md +1 -0
- package/src/doc/examples/ol-stop-finder.html +15 -0
- package/src/doc/examples/ol-stop-finder.js +31 -0
- package/src/doc/examples/ol-stop-finder.md +1 -0
- package/src/doc/examples/ol-tracker.html +1 -0
- package/src/doc/examples/ol-tracker.js +44 -0
- package/src/doc/examples/ol-tracker.md +1 -0
- package/src/doc/examples/ol-tralis.html +5 -0
- package/src/doc/examples/ol-tralis.js +57 -0
- package/src/doc/examples/tralis-live-map.html +1 -0
- package/src/doc/examples/tralis-live-map.js +51 -0
- package/src/doc/examples/tralis-live-map.md +3 -0
- package/src/doc/examples.js +107 -0
- package/src/doc/img/examples/live_tracker_mb.jpg +0 -0
- package/src/doc/img/examples/live_tracker_munich.jpg +0 -0
- package/src/doc/img/examples/live_tracker_ol.jpg +0 -0
- package/src/doc/img/examples/mapbox.jpg +0 -0
- package/src/doc/img/examples/mapbox_style.jpg +0 -0
- package/src/doc/img/examples/ol-copyright.png +0 -0
- package/src/doc/img/examples/query_objects.jpg +0 -0
- package/src/doc/img/examples/routing.jpg +0 -0
- package/src/doc/img/examples/simple_map.jpg +0 -0
- package/src/doc/img/examples/stops.jpg +0 -0
- package/src/doc/img/favico.ico +0 -0
- package/src/doc/index.js +21 -0
- package/src/iife.js +7 -0
- package/{module.js → src/index.js} +2 -0
- package/{mapbox → src/mapbox}/controls/CopyrightControl.js +0 -0
- package/{mapbox → src/mapbox}/index.js +0 -0
- package/{mapbox → src/mapbox}/layers/Layer.js +0 -0
- package/{mapbox → src/mapbox}/layers/Layer.test.js +0 -0
- package/{mapbox → src/mapbox}/layers/TralisLayer.js +0 -0
- package/{mapbox → src/mapbox}/layers/TralisLayer.test.js +0 -0
- package/{mapbox → src/mapbox}/utils.js +0 -0
- package/src/ol/README.md +0 -0
- package/{ol → src/ol}/controls/CopyrightControl.js +0 -0
- package/{ol → src/ol}/controls/CopyrightControl.test.js +0 -0
- package/{ol → src/ol}/controls/RoutingControl.js +0 -0
- package/{ol → src/ol}/controls/RoutingControl.test.js +0 -0
- package/{ol → src/ol}/controls/StopFinderControl.js +0 -0
- package/{ol → src/ol}/controls/StopFinderControl.test.js +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen10.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen100.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen30.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen5.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteOSM.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlStation1.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlStation2.json +0 -0
- package/{ol → src/ol}/index.js +0 -0
- package/{ol → src/ol}/layers/Layer.js +0 -0
- package/{ol → src/ol}/layers/Layer.test.js +0 -0
- package/{ol → src/ol}/layers/MapboxLayer.js +0 -0
- package/{ol → src/ol}/layers/MapboxLayer.test.js +0 -0
- package/{ol → src/ol}/layers/MapboxStyleLayer.js +0 -0
- package/{ol → src/ol}/layers/MapboxStyleLayer.test.js +0 -0
- package/{ol → src/ol}/layers/MaplibreLayer.js +0 -0
- package/{ol → src/ol}/layers/RoutingLayer.js +0 -0
- package/{ol → src/ol}/layers/RoutingLayer.test.js +0 -0
- package/{ol → src/ol}/layers/TralisLayer.js +0 -0
- package/{ol → src/ol}/layers/TralisLayer.test.js +0 -0
- package/{ol → src/ol}/layers/VectorLayer.js +0 -0
- package/{ol → src/ol}/layers/VectorLayer.test.js +0 -0
- package/{ol → src/ol}/layers/WMSLayer.js +0 -0
- package/{ol → src/ol}/layers/WMSLayer.test.js +0 -0
- package/{ol → src/ol}/styles/fullTrajectoryDelayStyle.js +0 -0
- package/{ol → src/ol}/styles/fullTrajectoryStyle.js +0 -0
- package/{ol → src/ol}/styles/index.js +0 -0
- package/src/setupTests.js +15 -0
- package/webpack.config.js +6 -0
- package/index.js +0 -2
- package/index.js.map +0 -1
|
@@ -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,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,107 @@
|
|
|
1
|
+
import liveTrackerOLImg from './img/examples/live_tracker_ol.jpg';
|
|
2
|
+
import liveTrackerMBImg from './img/examples/live_tracker_mb.jpg';
|
|
3
|
+
// import liveTrackerMunichImg from './img/examples/live_tracker_munich.jpg';
|
|
4
|
+
import mapboxImg from './img/examples/mapbox.jpg';
|
|
5
|
+
import mapboxStyleImg from './img/examples/mapbox_style.jpg';
|
|
6
|
+
import queryObjectsImg from './img/examples/query_objects.jpg';
|
|
7
|
+
import olCopyrightImg from './img/examples/ol-copyright.png';
|
|
8
|
+
import stopsImg from './img/examples/stops.jpg';
|
|
9
|
+
import routingImg from './img/examples/routing.jpg';
|
|
10
|
+
|
|
11
|
+
// const munichAssets = require('./examples/assets/tralis-live-map').default;
|
|
12
|
+
|
|
13
|
+
// To make redirect works properly on netlify it's important that the key
|
|
14
|
+
// are differents from the name of js and html files.
|
|
15
|
+
export default [
|
|
16
|
+
{
|
|
17
|
+
name: 'Live tracker with OpenLayers',
|
|
18
|
+
key: 'ol-tracker',
|
|
19
|
+
description:
|
|
20
|
+
'Use the [geOps Realtime API](https://developer.geops.io/apis/realtime/) to show moving trains in a Mapbox map.',
|
|
21
|
+
img: liveTrackerOLImg,
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'Live tracker with Mapbox',
|
|
25
|
+
key: 'mb-tracker',
|
|
26
|
+
description:
|
|
27
|
+
'Use the [geOps Realtime API](https://developer.geops.io/apis/realtime/) to show moving trains in a Mapbox map.',
|
|
28
|
+
img: liveTrackerMBImg,
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'Stop finder',
|
|
32
|
+
key: 'ol-stop-finder',
|
|
33
|
+
description:
|
|
34
|
+
'Use the [geOps Stops API](https://developer.geops.io/apis/stops/) for finding public transport stops.',
|
|
35
|
+
img: stopsImg,
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Routing',
|
|
39
|
+
key: 'routing-control',
|
|
40
|
+
description:
|
|
41
|
+
'Use the [geOps Routing API](https://developer.geops.io/apis/routing/) to find the shortest route between 2 points.',
|
|
42
|
+
img: routingImg,
|
|
43
|
+
files: {
|
|
44
|
+
html: 'ol-routing.html',
|
|
45
|
+
js: 'ol-routing.js',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
// {
|
|
49
|
+
// name: 'Live train positions for Munich',
|
|
50
|
+
// key: 'tralis-live-map',
|
|
51
|
+
// description:
|
|
52
|
+
// 'Realtime vehicle positions and prognosis data based on scheduled times, realtime updates and GPS locations.',
|
|
53
|
+
// img: liveTrackerMunichImg,
|
|
54
|
+
// extraFiles: {
|
|
55
|
+
// 'assets/tralis-live-map/index.js': {
|
|
56
|
+
// content: `export default ${JSON.stringify(munichAssets)};`,
|
|
57
|
+
// },
|
|
58
|
+
// },
|
|
59
|
+
// },
|
|
60
|
+
// These examples are used for the dbug of TralisLayer don't remove them pls.
|
|
61
|
+
// {
|
|
62
|
+
// name: 'Tralis tracker with OpenLayers',
|
|
63
|
+
// key: 'ol-tralis',
|
|
64
|
+
// description: 'Show moving tramway in an OpenLayers map.',
|
|
65
|
+
// img: liveTrackerOLImg,
|
|
66
|
+
// },
|
|
67
|
+
// {
|
|
68
|
+
// name: 'Tralis tracker with Mapbox',
|
|
69
|
+
// key: 'mapbox-tralis',
|
|
70
|
+
// description: 'Show moving tramway in an Mapbox map.',
|
|
71
|
+
// img: liveTrackerOLImg,
|
|
72
|
+
// },
|
|
73
|
+
{
|
|
74
|
+
name: 'Mapbox layer',
|
|
75
|
+
key: 'ol-mapbox-layer',
|
|
76
|
+
description: 'Display a Mapbox style on an OpenLayers map.',
|
|
77
|
+
img: mapboxImg,
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'Mapbox Style layer',
|
|
81
|
+
key: 'ol-mapbox-style-layer',
|
|
82
|
+
description:
|
|
83
|
+
'Display/hide a set of layers of a Mapbox style on an OpenLayers map.',
|
|
84
|
+
img: mapboxStyleImg,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
name: 'Querying objects',
|
|
88
|
+
key: 'ol-query',
|
|
89
|
+
description:
|
|
90
|
+
'This example shows how to query objects in different kinds of layers.',
|
|
91
|
+
img: queryObjectsImg,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: 'Copyrights with OpenLayers',
|
|
95
|
+
key: 'ol-copyright',
|
|
96
|
+
description:
|
|
97
|
+
'This example shows how to use the CopyrightControl component.',
|
|
98
|
+
img: olCopyrightImg,
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
name: 'Copyrights with Mapbox',
|
|
102
|
+
key: 'mb-copyright',
|
|
103
|
+
description:
|
|
104
|
+
'This example shows how to use the CopyrightControl component.',
|
|
105
|
+
img: olCopyrightImg,
|
|
106
|
+
},
|
|
107
|
+
];
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/doc/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import 'react-app-polyfill/stable';
|
|
2
|
+
// import { createRoot } from 'react-dom/client';
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { BrowserRouter } from 'react-router-dom';
|
|
5
|
+
import { createRoot } from 'react-dom/client';
|
|
6
|
+
import App from './App';
|
|
7
|
+
|
|
8
|
+
// render(
|
|
9
|
+
// <BrowserRouter>
|
|
10
|
+
// <App />
|
|
11
|
+
// </BrowserRouter>,
|
|
12
|
+
// document.getElementById('root'),
|
|
13
|
+
// );
|
|
14
|
+
|
|
15
|
+
const container = document.getElementById('root');
|
|
16
|
+
const root = createRoot(container); // createRoot(container!) if you use TypeScript
|
|
17
|
+
root.render(
|
|
18
|
+
<BrowserRouter>
|
|
19
|
+
<App />
|
|
20
|
+
</BrowserRouter>,
|
|
21
|
+
);
|
package/src/iife.js
ADDED
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
Layer as olLayer,
|
|
3
3
|
WMSLayer as olWMSLayer,
|
|
4
4
|
MapboxLayer as olMapboxLayer,
|
|
5
|
+
MaplibreLayer as olMaplibreLayer,
|
|
5
6
|
TralisLayer as olTralisLayer,
|
|
6
7
|
VectorLayer as olVectorLayer,
|
|
7
8
|
} from './ol';
|
|
@@ -14,6 +15,7 @@ const exports = {
|
|
|
14
15
|
ol: {
|
|
15
16
|
Layer: olLayer,
|
|
16
17
|
WMSLayer: olWMSLayer,
|
|
18
|
+
MaplibreLayer: olMaplibreLayer,
|
|
17
19
|
MapboxLayer: olMapboxLayer,
|
|
18
20
|
TralisLayer: olTralisLayer,
|
|
19
21
|
VectorLayer: olVectorLayer,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/ol/README.md
ADDED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/{ol → src/ol}/index.js
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|