@wemap/routers 11.3.3 → 11.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "directory": "packages/routers"
13
13
  },
14
14
  "name": "@wemap/routers",
15
- "version": "11.3.3",
15
+ "version": "11.4.0",
16
16
  "bugs": {
17
17
  "url": "https://github.com/wemap/wemap-modules-js/issues"
18
18
  },
@@ -52,5 +52,5 @@
52
52
  },
53
53
  "./helpers/*": "./helpers/*"
54
54
  },
55
- "gitHead": "e53e577cf8a7f4e9bd1e1be6639d2ebc68319bcc"
55
+ "gitHead": "c55a6535964fc5298b4855d1e058ab86c367fd6a"
56
56
  }
@@ -11,6 +11,7 @@ import RemoteRouter from '../RemoteRouter.js';
11
11
  import RoutingModeCorrespondanceNotFound from '../RoutingModeCorrespondanceNotFound.js';
12
12
  import RemoteRouterServerUnreachable from '../RemoteRouterServerUnreachable.js';
13
13
  import { RoutingMode } from '../../model/RoutingMode.js';
14
+ import { RemoteRouterOptions } from '../RemoteRouterOptions.js';
14
15
 
15
16
  type OsrmCoordinates = Position;
16
17
  type OsrmModifier = 'sharp right' | 'sharp left' | 'slight right'
@@ -46,7 +47,7 @@ type OsrmJson = {
46
47
  waypoints?: []
47
48
  };
48
49
 
49
- type OsrmMode = 'driving' | 'walking' | 'bike' | 'bus' | 'walking';
50
+ type OsrmMode = 'driving' | 'walking' | 'bike' | 'bus' | 'walking' | 'pmr';
50
51
 
51
52
  /**
52
53
  * Input mode correspondance
@@ -75,9 +76,10 @@ class OsrmRemoteRouter extends RemoteRouter {
75
76
  async getItineraries(
76
77
  endpointUrl: string,
77
78
  mode: RoutingMode,
78
- waypoints: Coordinates[]
79
+ waypoints: Coordinates[],
80
+ options: RemoteRouterOptions = {}
79
81
  ) {
80
- const url = this.getURL(endpointUrl, mode, waypoints);
82
+ const url = this.getURL(endpointUrl, mode, waypoints, options);
81
83
 
82
84
  const res = await (fetch(url).catch(() => {
83
85
  throw new RemoteRouterServerUnreachable(this.rname, url);
@@ -101,14 +103,19 @@ class OsrmRemoteRouter extends RemoteRouter {
101
103
  getURL(
102
104
  endpointUrl: string,
103
105
  mode: RoutingMode,
104
- waypoints: Coordinates[]
106
+ waypoints: Coordinates[],
107
+ options: RemoteRouterOptions = {}
105
108
  ) {
106
109
 
107
- const osrmMode = inputModeCorrespondance.get(mode);
110
+ let osrmMode = inputModeCorrespondance.get(mode);
108
111
  if (!osrmMode) {
109
112
  throw new RoutingModeCorrespondanceNotFound(this.rname, mode);
110
113
  }
111
114
 
115
+ if ('useStairs' in options && !options.useStairs) {
116
+ osrmMode = 'pmr';
117
+ }
118
+
112
119
  let url = endpointUrl + '/route/v1/' + osrmMode + '/';
113
120
  url += waypoints.map(waypoint => [waypoint.longitude + ',' + waypoint.latitude]).join(';');
114
121
  url += '?geometries=geojson&overview=full&steps=true';
@@ -150,7 +150,7 @@ class WemapMultiRouter {
150
150
  */
151
151
  if (!ioMapsToTest.length) {
152
152
  try {
153
- return await RemoteRouterManager.getItinerariesWithFallback(remoteRouters, mode, waypoints);
153
+ return await RemoteRouterManager.getItinerariesWithFallback(remoteRouters, mode, waypoints, options || undefined);
154
154
  } catch (e) {
155
155
  if (!isRoutingError(e)) {
156
156
  throw e;
@@ -215,7 +215,7 @@ class WemapMultiRouter {
215
215
  */
216
216
  if (!mapWithStart && !mapWithEnd) {
217
217
  try {
218
- return await RemoteRouterManager.getItinerariesWithFallback(remoteRouters, mode, waypoints);
218
+ return await RemoteRouterManager.getItinerariesWithFallback(remoteRouters, mode, waypoints, options || undefined);
219
219
  } catch (e) {
220
220
  if (!isRoutingError(e)) {
221
221
  throw e;
@@ -249,7 +249,7 @@ class WemapMultiRouter {
249
249
  try {
250
250
  ioMapItinerary = mapWithStart.getBestItineraryFromStartToEntryPoints(start, end, wemapOsmRouterOptions);
251
251
  remoteRouterResponse = await RemoteRouterManager.getItinerariesWithFallback(
252
- remoteRouters, mode, [ioMapItinerary.to, end]
252
+ remoteRouters, mode, [ioMapItinerary.to, end], options || undefined
253
253
  );
254
254
  if (!remoteRouterResponse.itineraries.length) {
255
255
  throw new NoRouteFoundError(ioMapItinerary.to, end, remoteRouterResponse.error);
@@ -303,7 +303,7 @@ class WemapMultiRouter {
303
303
  try {
304
304
  ioMapItinerary = mapWithEnd.getBestItineraryFromEntryPointsToEnd(start, end, wemapOsmRouterOptions);
305
305
  remoteRouterResponse = await RemoteRouterManager.getItinerariesWithFallback(
306
- remoteRouters, mode, [start, ioMapItinerary.from]
306
+ remoteRouters, mode, [start, ioMapItinerary.from], options || undefined
307
307
  );
308
308
  if (!remoteRouterResponse.itineraries.length) {
309
309
  throw new NoRouteFoundError(start, ioMapItinerary.from, remoteRouterResponse.error);
@@ -361,7 +361,7 @@ class WemapMultiRouter {
361
361
  ioMapItinerary1 = mapWithStart.getBestItineraryFromStartToEntryPoints(start, end, wemapOsmRouterOptions);
362
362
  ioMapItinerary2 = mapWithEnd.getBestItineraryFromEntryPointsToEnd(start, end, wemapOsmRouterOptions);
363
363
  remoteRouterResponse = await RemoteRouterManager.getItinerariesWithFallback(
364
- remoteRouters, mode, [ioMapItinerary1.to, ioMapItinerary2.from]
364
+ remoteRouters, mode, [ioMapItinerary1.to, ioMapItinerary2.from], options || undefined
365
365
  );
366
366
  if (!remoteRouterResponse.itineraries.length) {
367
367
  throw new NoRouteFoundError(ioMapItinerary1.to, ioMapItinerary2.from, remoteRouterResponse.error);