@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 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 = "conveyor";
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
- for (const n of edge.data.nodes) {
732
- if (n !== vertex.data)
733
- continue;
734
- }
735
- const isReversed = edge.data.nodes.reduce((acc, n, idx, arr) => {
736
- if (n !== vertex.data)
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
- acc = !(idx + 1 < arr.length && arr[idx + 1] === nextVertex.data);
739
- return acc;
740
- }, null);
741
- if (isReversed) {
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
- const osrmMode = inputModeCorrespondance$1.get(mode);
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);