@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/dist/index.js +15 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +15 -9
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
- package/src/remote/osrm/OsrmRemoteRouter.ts +12 -5
- package/src/wemap-multi/WemapMultiRouter.ts +5 -5
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"directory": "packages/routers"
|
|
13
13
|
},
|
|
14
14
|
"name": "@wemap/routers",
|
|
15
|
-
"version": "11.
|
|
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": "
|
|
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
|
-
|
|
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);
|