@wemap/routers 11.3.2 → 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 +30 -22
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +30 -22
- package/dist/index.mjs.map +1 -1
- package/helpers/InstructionManager.ts +18 -6
- package/helpers/InstructionManagerV1.ts +2 -2
- package/package.json +4 -4
- package/src/model/LevelChange.spec.ts +1 -2
- package/src/model/LevelChange.ts +1 -2
- package/src/remote/osrm/OsrmRemoteRouter.ts +12 -5
- package/src/wemap-multi/WemapMultiRouter.ts +5 -5
- package/src/wemap-osm/OsmRouter.ts +22 -16
package/dist/index.js
CHANGED
|
@@ -718,7 +718,7 @@ const buildStepsRules = (graphItinerary) => (currentCoords, nextCoords, previous
|
|
|
718
718
|
if (edge.data.isElevator) {
|
|
719
719
|
levelChangeType = "elevator";
|
|
720
720
|
} else if (edge.data instanceof osm.OsmWay && edge.data.isConveying && edge.data.areStairs) {
|
|
721
|
-
levelChangeType = "
|
|
721
|
+
levelChangeType = "escalator";
|
|
722
722
|
} else if (edge.data instanceof osm.OsmWay && edge.data.areStairs) {
|
|
723
723
|
levelChangeType = "stairs";
|
|
724
724
|
} else if (edge.data instanceof osm.OsmWay && edge.data.isConveying) {
|
|
@@ -726,20 +726,22 @@ const buildStepsRules = (graphItinerary) => (currentCoords, nextCoords, previous
|
|
|
726
726
|
}
|
|
727
727
|
let forceLevelChange;
|
|
728
728
|
const edgeTags = edge.data.tags || {};
|
|
729
|
-
if (edge.data instanceof osm.OsmWay && edge.data.areStairs && ["up", "down"].includes(edgeTags.incline) && !(previousStep == null ? void 0 : previousStep.levelChange)) {
|
|
729
|
+
if ((edge.data instanceof osm.OsmWay && edge.data.areStairs || edge.data.isElevator) && ["up", "down"].includes(edgeTags.incline) && !(previousStep == null ? void 0 : previousStep.levelChange)) {
|
|
730
730
|
forceLevelChange = edgeTags.incline;
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
731
|
+
if (edge.data instanceof osm.OsmWay) {
|
|
732
|
+
for (const n of edge.data.nodes) {
|
|
733
|
+
if (n !== vertex.data)
|
|
734
|
+
continue;
|
|
735
|
+
}
|
|
736
|
+
const isReversed = edge.data.nodes.reduce((acc, n, idx, arr) => {
|
|
737
|
+
if (n !== vertex.data)
|
|
738
|
+
return acc;
|
|
739
|
+
acc = !(idx + 1 < arr.length && arr[idx + 1] === nextVertex.data);
|
|
737
740
|
return acc;
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
forceLevelChange = forceLevelChange === "up" ? "down" : "up";
|
|
741
|
+
}, null);
|
|
742
|
+
if (isReversed) {
|
|
743
|
+
forceLevelChange = forceLevelChange === "up" ? "down" : "up";
|
|
744
|
+
}
|
|
743
745
|
}
|
|
744
746
|
}
|
|
745
747
|
const previousEdge = edgeId > 0 && edges.length ? edges[edgeId - 1] : null;
|
|
@@ -1473,8 +1475,8 @@ class OsrmRemoteRouter extends RemoteRouter {
|
|
|
1473
1475
|
get rname() {
|
|
1474
1476
|
return "osrm";
|
|
1475
1477
|
}
|
|
1476
|
-
async getItineraries(endpointUrl, mode, waypoints) {
|
|
1477
|
-
const url = this.getURL(endpointUrl, mode, waypoints);
|
|
1478
|
+
async getItineraries(endpointUrl, mode, waypoints, options = {}) {
|
|
1479
|
+
const url = this.getURL(endpointUrl, mode, waypoints, options);
|
|
1478
1480
|
const res = await fetch(url).catch(() => {
|
|
1479
1481
|
throw new RemoteRouterServerUnreachable(this.rname, url);
|
|
1480
1482
|
});
|
|
@@ -1486,11 +1488,14 @@ class OsrmRemoteRouter extends RemoteRouter {
|
|
|
1486
1488
|
const osrmMode = inputModeCorrespondance$1.get(mode);
|
|
1487
1489
|
return this.createRouterResponseFromJson(jsonResponse, from, to, osrmMode);
|
|
1488
1490
|
}
|
|
1489
|
-
getURL(endpointUrl, mode, waypoints) {
|
|
1490
|
-
|
|
1491
|
+
getURL(endpointUrl, mode, waypoints, options = {}) {
|
|
1492
|
+
let osrmMode = inputModeCorrespondance$1.get(mode);
|
|
1491
1493
|
if (!osrmMode) {
|
|
1492
1494
|
throw new RoutingModeCorrespondanceNotFound(this.rname, mode);
|
|
1493
1495
|
}
|
|
1496
|
+
if ("useStairs" in options && !options.useStairs) {
|
|
1497
|
+
osrmMode = "pmr";
|
|
1498
|
+
}
|
|
1494
1499
|
let url = endpointUrl + "/route/v1/" + osrmMode + "/";
|
|
1495
1500
|
url += waypoints.map((waypoint) => [waypoint.longitude + "," + waypoint.latitude]).join(";");
|
|
1496
1501
|
url += "?geometries=geojson&overview=full&steps=true";
|
|
@@ -1928,7 +1933,7 @@ class WemapMultiRouter {
|
|
|
1928
1933
|
const ioMapsToTest = this.getIoMapsFromOptions(options);
|
|
1929
1934
|
if (!ioMapsToTest.length) {
|
|
1930
1935
|
try {
|
|
1931
|
-
return await RemoteRouterManager$1.getItinerariesWithFallback(remoteRouters2, mode, waypoints);
|
|
1936
|
+
return await RemoteRouterManager$1.getItinerariesWithFallback(remoteRouters2, mode, waypoints, options || void 0);
|
|
1932
1937
|
} catch (e) {
|
|
1933
1938
|
if (!isRoutingError(e)) {
|
|
1934
1939
|
throw e;
|
|
@@ -1958,7 +1963,7 @@ class WemapMultiRouter {
|
|
|
1958
1963
|
let remoteRouterResponse;
|
|
1959
1964
|
if (!mapWithStart && !mapWithEnd) {
|
|
1960
1965
|
try {
|
|
1961
|
-
return await RemoteRouterManager$1.getItinerariesWithFallback(remoteRouters2, mode, waypoints);
|
|
1966
|
+
return await RemoteRouterManager$1.getItinerariesWithFallback(remoteRouters2, mode, waypoints, options || void 0);
|
|
1962
1967
|
} catch (e) {
|
|
1963
1968
|
if (!isRoutingError(e)) {
|
|
1964
1969
|
throw e;
|
|
@@ -1978,7 +1983,8 @@ class WemapMultiRouter {
|
|
|
1978
1983
|
remoteRouterResponse = await RemoteRouterManager$1.getItinerariesWithFallback(
|
|
1979
1984
|
remoteRouters2,
|
|
1980
1985
|
mode,
|
|
1981
|
-
[ioMapItinerary.to, end]
|
|
1986
|
+
[ioMapItinerary.to, end],
|
|
1987
|
+
options || void 0
|
|
1982
1988
|
);
|
|
1983
1989
|
if (!remoteRouterResponse.itineraries.length) {
|
|
1984
1990
|
throw new geo.NoRouteFoundError(ioMapItinerary.to, end, remoteRouterResponse.error);
|
|
@@ -2007,7 +2013,8 @@ class WemapMultiRouter {
|
|
|
2007
2013
|
remoteRouterResponse = await RemoteRouterManager$1.getItinerariesWithFallback(
|
|
2008
2014
|
remoteRouters2,
|
|
2009
2015
|
mode,
|
|
2010
|
-
[start, ioMapItinerary.from]
|
|
2016
|
+
[start, ioMapItinerary.from],
|
|
2017
|
+
options || void 0
|
|
2011
2018
|
);
|
|
2012
2019
|
if (!remoteRouterResponse.itineraries.length) {
|
|
2013
2020
|
throw new geo.NoRouteFoundError(start, ioMapItinerary.from, remoteRouterResponse.error);
|
|
@@ -2045,7 +2052,8 @@ class WemapMultiRouter {
|
|
|
2045
2052
|
remoteRouterResponse = await RemoteRouterManager$1.getItinerariesWithFallback(
|
|
2046
2053
|
remoteRouters2,
|
|
2047
2054
|
mode,
|
|
2048
|
-
[ioMapItinerary1.to, ioMapItinerary2.from]
|
|
2055
|
+
[ioMapItinerary1.to, ioMapItinerary2.from],
|
|
2056
|
+
options || void 0
|
|
2049
2057
|
);
|
|
2050
2058
|
if (!remoteRouterResponse.itineraries.length) {
|
|
2051
2059
|
throw new geo.NoRouteFoundError(ioMapItinerary1.to, ioMapItinerary2.from, remoteRouterResponse.error);
|