@wemap/routers 12.10.8-alpha.0 → 12.10.8-alpha.1

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.
Files changed (194) hide show
  1. package/dist/helpers/InstructionManager.d.ts +20 -0
  2. package/dist/helpers/InstructionManagerV1.d.ts +7 -0
  3. package/{index.ts → dist/index.d.ts} +1 -11
  4. package/dist/index.js +1 -5098
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/ItineraryInfoManager.d.ts +31 -0
  7. package/dist/src/ItineraryInfoManager.spec.d.ts +1 -0
  8. package/dist/src/RoutingError.d.ts +24 -0
  9. package/{src/StatusCode.ts → dist/src/StatusCode.d.ts} +2 -3
  10. package/dist/src/Utils.d.ts +6 -0
  11. package/dist/src/graph/Edge.d.ts +32 -0
  12. package/dist/src/graph/Edge.spec.d.ts +1 -0
  13. package/dist/src/graph/Graph.d.ts +40 -0
  14. package/dist/src/graph/Graph.spec.d.ts +1 -0
  15. package/dist/src/graph/GraphProjection.d.ts +11 -0
  16. package/dist/src/graph/GraphProjectionOptions.d.ts +7 -0
  17. package/dist/src/graph/GraphRoute.d.ts +19 -0
  18. package/dist/src/graph/GraphRoute.spec.d.ts +2 -0
  19. package/dist/src/graph/GraphRouter.d.ts +20 -0
  20. package/dist/src/graph/GraphRouter.spec.d.ts +1 -0
  21. package/dist/src/graph/GraphRouterEngine.d.ts +77 -0
  22. package/{src/graph/GraphRouterOptions.ts → dist/src/graph/GraphRouterOptions.d.ts} +5 -7
  23. package/dist/src/graph/GraphRouterOptionsBuilder.d.ts +20 -0
  24. package/dist/src/graph/NoRouteFoundError.d.ts +12 -0
  25. package/dist/src/graph/Vertex.d.ts +19 -0
  26. package/dist/src/graph/Vertex.spec.d.ts +1 -0
  27. package/dist/src/model/Itinerary.d.ts +81 -0
  28. package/dist/src/model/Itinerary.spec.d.ts +7 -0
  29. package/dist/src/model/Leg.d.ts +66 -0
  30. package/dist/src/model/Leg.spec.d.ts +6 -0
  31. package/dist/src/model/LevelChange.d.ts +7 -0
  32. package/dist/src/model/LevelChange.spec.d.ts +6 -0
  33. package/dist/src/model/RouterRequest.d.ts +40 -0
  34. package/dist/src/model/Step.d.ts +42 -0
  35. package/dist/src/model/Step.spec.d.ts +52 -0
  36. package/dist/src/model/StepExtra.d.ts +3 -0
  37. package/dist/src/model/StepsBuilder.d.ts +16 -0
  38. package/dist/src/model/TransitMode.d.ts +5 -0
  39. package/dist/src/model/TransitMode.spec.d.ts +1 -0
  40. package/{src/model/TravelMode.ts → dist/src/model/TravelMode.d.ts} +1 -2
  41. package/dist/src/model/generateSteps.d.ts +0 -0
  42. package/{src/remote/RemoteRouter.ts → dist/src/remote/RemoteRouter.d.ts} +2 -7
  43. package/dist/src/remote/RemoteRouterManager.d.ts +731 -0
  44. package/dist/src/remote/RemoteRouterManager.spec.d.ts +1 -0
  45. package/dist/src/remote/RemoteRouterUtils.d.ts +6 -0
  46. package/dist/src/remote/cityway/CitywayRemoteRouter.d.ts +109 -0
  47. package/dist/src/remote/cityway/CitywayRemoteRouter.spec.d.ts +1 -0
  48. package/dist/src/remote/deutsche-bahn/DeutscheBahnRemoteRouter.d.ts +31 -0
  49. package/dist/src/remote/deutsche-bahn/DeutscheBahnRemoteRouter.spec.d.ts +1 -0
  50. package/dist/src/remote/geovelo/GeoveloRemoteRouter.d.ts +106 -0
  51. package/dist/src/remote/geovelo/GeoveloRemoteRouter.spec.d.ts +1 -0
  52. package/dist/src/remote/idfm/IdfmRemoteRouter.d.ts +123 -0
  53. package/dist/src/remote/idfm/IdfmRemoteRouter.spec.d.ts +1 -0
  54. package/dist/src/remote/navitia/NavitiaRemoteRouter.d.ts +34 -0
  55. package/dist/src/remote/navitia/NavitiaRemoteRouter.spec.d.ts +1 -0
  56. package/dist/src/remote/navitia/types.d.ts +87 -0
  57. package/dist/src/remote/osrm/OsrmRemoteRouter.d.ts +70 -0
  58. package/dist/src/remote/osrm/OsrmRemoteRouter.spec.d.ts +1 -0
  59. package/dist/src/remote/otp/OtpRemoteRouter.d.ts +69 -0
  60. package/dist/src/remote/otp/OtpRemoteRouter.spec.d.ts +1 -0
  61. package/dist/src/remote/wemap-multi/WemapMultiRemoteRouter.d.ts +19 -0
  62. package/dist/src/remote/wemap-multi/WemapMultiRemoteRouter.spec.d.ts +1 -0
  63. package/dist/src/types.d.ts +31 -0
  64. package/dist/src/wemap-multi/CustomGraphMap.d.ts +56 -0
  65. package/dist/src/wemap-multi/CustomGraphMap.spec.d.ts +1 -0
  66. package/dist/src/wemap-multi/CustomGraphMapTester.d.ts +39 -0
  67. package/dist/src/wemap-multi/CustomGraphMapTester.spec.d.ts +1 -0
  68. package/dist/src/wemap-multi/WemapMultiRouter.d.ts +14 -0
  69. package/dist/src/wemap-multi/WemapMultiRouter.spec.d.ts +1 -0
  70. package/dist/src/wemap-osm/OsmGraphUtils.d.ts +11 -0
  71. package/dist/src/wemap-osm/OsmGraphUtils.spec.d.ts +1 -0
  72. package/dist/src/wemap-osm/OsmRouter.elevators.spec.d.ts +1 -0
  73. package/dist/src/wemap-osm/OsmRouter.spec.d.ts +1 -0
  74. package/dist/tests/CommonTest.d.ts +8 -0
  75. package/dist/vite.config.d.ts +19 -0
  76. package/package.json +10 -7
  77. package/assets/biocbon-bergere-rdc-network.osm +0 -163
  78. package/assets/bureaux-wemap-montpellier-network.osm +0 -174
  79. package/assets/components.osm +0 -146
  80. package/assets/elevator-models-4.osm +0 -89
  81. package/assets/elevator-models.osm +0 -354
  82. package/assets/exit-graph.osm +0 -25
  83. package/assets/gare-de-lest-network-pp-bounds.osm +0 -1613
  84. package/assets/gare-de-lyon-extract.osm +0 -174
  85. package/assets/geovelo-montpellier.json +0 -1144
  86. package/assets/horizontal-elevator.osm +0 -12
  87. package/assets/itinerary-deutsche-bahn-1.json +0 -368
  88. package/assets/itinerary-grenoble-otp-1.json +0 -1536
  89. package/assets/itinerary-grenoble-otp-2.json +0 -1092
  90. package/assets/itinerary-info-two-points-proj.osm +0 -39
  91. package/assets/itinerary-info-two-points.osm +0 -24
  92. package/assets/itinerary-lehavre-cityway-1.json +0 -6799
  93. package/assets/itinerary-lehavre-cityway-2.json +0 -2133
  94. package/assets/itinerary-lehavre-cityway-3.json +0 -12577
  95. package/assets/itinerary-lehavre-cityway-4.json +0 -1451
  96. package/assets/itinerary-lehavre-cityway-5.json +0 -5925
  97. package/assets/itinerary-lemans-navitia.json +0 -7768
  98. package/assets/itinerary-montpellier-osrm-3.json +0 -185
  99. package/assets/itinerary-montpellier-outdoor-without-steps.json +0 -110
  100. package/assets/itinerary-montpellier-outdoor.json +0 -513
  101. package/assets/itinerary-paris-idfm-2.json +0 -1838
  102. package/assets/itinerary-paris-idfm.json +0 -27727
  103. package/assets/itinerary-step-not-on-path-osrm.json +0 -457
  104. package/assets/itinerary-with-duplicate-nodes.json +0 -110
  105. package/assets/network-conveying-backward.osm +0 -74
  106. package/assets/network-elevator.osm +0 -48
  107. package/assets/network-escalators.osm +0 -50
  108. package/assets/network-simple.osm +0 -27
  109. package/assets/network-steps-same-level.osm +0 -283
  110. package/assets/network-with-modifiers.osm +0 -39
  111. package/assets/one-way.osm +0 -46
  112. package/assets/report-map-1.osm +0 -36
  113. package/assets/report-map-2.osm +0 -29
  114. package/assets/report-map-3.osm +0 -15
  115. package/assets/rr-wemap-multi-indoor-outdoor-indoor.json +0 -1352
  116. package/assets/rr-wemap-multi-indoor-outdoor.json +0 -145
  117. package/assets/rr-wemap-multi-multi-level.json +0 -262
  118. package/assets/rr-wemap-multi-outdoor-indoor.json +0 -145
  119. package/assets/rr-wemap-multi-outdoor-outdoor.json +0 -207
  120. package/assets/rr-wemap-multi-remote-indoor-indoor.json +0 -155
  121. package/assets/rr-wemap-multi-remote-indoor-outdoor-indoor.json +0 -668
  122. package/assets/rr-wemap-multi-remote-indoor-outdoor.json +0 -154
  123. package/assets/rr-wemap-multi-remote-outdoor-indoor.json +0 -179
  124. package/assets/rr-wemap-multi-remote-outdoor-outdoor.json +0 -109
  125. package/assets/stairs-and-exit.osm +0 -47
  126. package/helpers/InstructionManager.ts +0 -184
  127. package/helpers/InstructionManagerV1.ts +0 -95
  128. package/src/ItineraryInfoManager.spec.ts +0 -183
  129. package/src/ItineraryInfoManager.ts +0 -181
  130. package/src/RoutingError.ts +0 -60
  131. package/src/Utils.ts +0 -8
  132. package/src/graph/Edge.spec.ts +0 -32
  133. package/src/graph/Edge.ts +0 -64
  134. package/src/graph/Graph.spec.ts +0 -509
  135. package/src/graph/Graph.ts +0 -271
  136. package/src/graph/GraphProjection.ts +0 -15
  137. package/src/graph/GraphProjectionOptions.ts +0 -8
  138. package/src/graph/GraphRoute.spec.ts +0 -15
  139. package/src/graph/GraphRoute.ts +0 -43
  140. package/src/graph/GraphRouter.spec.ts +0 -317
  141. package/src/graph/GraphRouter.ts +0 -229
  142. package/src/graph/GraphRouterEngine.ts +0 -248
  143. package/src/graph/GraphRouterOptionsBuilder.ts +0 -98
  144. package/src/graph/NoRouteFoundError.ts +0 -39
  145. package/src/graph/Vertex.spec.ts +0 -42
  146. package/src/graph/Vertex.ts +0 -45
  147. package/src/model/Itinerary.spec.ts +0 -134
  148. package/src/model/Itinerary.ts +0 -370
  149. package/src/model/Leg.spec.ts +0 -107
  150. package/src/model/Leg.ts +0 -224
  151. package/src/model/LevelChange.spec.ts +0 -50
  152. package/src/model/LevelChange.ts +0 -14
  153. package/src/model/RouterRequest.ts +0 -33
  154. package/src/model/Step.spec.ts +0 -99
  155. package/src/model/Step.ts +0 -90
  156. package/src/model/StepExtra.ts +0 -1
  157. package/src/model/StepsBuilder.ts +0 -242
  158. package/src/model/TransitMode.spec.ts +0 -31
  159. package/src/model/TransitMode.ts +0 -28
  160. package/src/model/generateSteps.ts +0 -102
  161. package/src/remote/RemoteRouterManager.spec.ts +0 -178
  162. package/src/remote/RemoteRouterManager.ts +0 -72
  163. package/src/remote/RemoteRouterUtils.ts +0 -25
  164. package/src/remote/cityway/CitywayRemoteRouter.spec.ts +0 -122
  165. package/src/remote/cityway/CitywayRemoteRouter.ts +0 -435
  166. package/src/remote/deutsche-bahn/DeutscheBahnRemoteRouter.spec.ts +0 -52
  167. package/src/remote/deutsche-bahn/DeutscheBahnRemoteRouter.ts +0 -85
  168. package/src/remote/geovelo/GeoveloRemoteRouter.spec.ts +0 -54
  169. package/src/remote/geovelo/GeoveloRemoteRouter.ts +0 -293
  170. package/src/remote/idfm/IdfmRemoteRouter.spec.ts +0 -102
  171. package/src/remote/idfm/IdfmRemoteRouter.ts +0 -523
  172. package/src/remote/navitia/NavitiaRemoteRouter.spec.ts +0 -116
  173. package/src/remote/navitia/NavitiaRemoteRouter.ts +0 -445
  174. package/src/remote/navitia/types.ts +0 -73
  175. package/src/remote/osrm/OsrmRemoteRouter.spec.ts +0 -127
  176. package/src/remote/osrm/OsrmRemoteRouter.ts +0 -303
  177. package/src/remote/otp/OtpRemoteRouter.spec.ts +0 -103
  178. package/src/remote/otp/OtpRemoteRouter.ts +0 -223
  179. package/src/remote/wemap-multi/WemapMultiRemoteRouter.spec.ts +0 -103
  180. package/src/remote/wemap-multi/WemapMultiRemoteRouter.ts +0 -56
  181. package/src/types.ts +0 -32
  182. package/src/wemap-multi/CustomGraphMap.spec.ts +0 -40
  183. package/src/wemap-multi/CustomGraphMap.ts +0 -213
  184. package/src/wemap-multi/CustomGraphMapTester.spec.ts +0 -48
  185. package/src/wemap-multi/CustomGraphMapTester.ts +0 -90
  186. package/src/wemap-multi/WemapMultiRouter.spec.ts +0 -138
  187. package/src/wemap-multi/WemapMultiRouter.ts +0 -329
  188. package/src/wemap-osm/OsmGraphUtils.spec.ts +0 -165
  189. package/src/wemap-osm/OsmGraphUtils.ts +0 -173
  190. package/src/wemap-osm/OsmRouter.elevators.spec.ts +0 -106
  191. package/src/wemap-osm/OsmRouter.spec.ts +0 -292
  192. package/tests/CommonTest.ts +0 -78
  193. package/tsconfig.json +0 -3
  194. package/vite.config.ts +0 -4
@@ -0,0 +1,31 @@
1
+ import { Coordinates } from '@wemap/geo';
2
+ import { default as Itinerary } from './model/Itinerary.js';
3
+ import { default as Leg } from './model/Leg.js';
4
+ import { Step } from './model/Step.js';
5
+ import { default as Graph } from './graph/Graph.js';
6
+ import { default as GraphProjection } from './graph/GraphProjection.js';
7
+ export type ItineraryInfo<U extends Coordinates = Coordinates> = {
8
+ nextStep: Step | null;
9
+ previousStep: Step | null;
10
+ projection: GraphProjection<U>;
11
+ leg: Leg;
12
+ traveledDistance: number;
13
+ remainingDistance: number;
14
+ traveledPercentage: number;
15
+ remainingPercentage: number;
16
+ };
17
+ declare class ItineraryInfoManager {
18
+ _itinerary: Itinerary | null;
19
+ _graph: Graph | null;
20
+ _steps: Step[];
21
+ _coordsNextStep: (Step | null)[];
22
+ _coordsPreviousStep: (Step | null)[];
23
+ _coordsDistanceTraveled: number[];
24
+ _coordsLeg: Leg[];
25
+ _itineraryDistanceWithoutProjections: number;
26
+ constructor(itinerary?: Itinerary | null);
27
+ get itinerary(): Itinerary | null;
28
+ set itinerary(itinerary: Itinerary | null);
29
+ getInfo<U extends Coordinates = Coordinates>(position: U): ItineraryInfo<U> | null;
30
+ }
31
+ export default ItineraryInfoManager;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import { StatusCode } from './StatusCode';
2
+ import { TravelMode } from './model/TravelMode';
3
+ export declare class RoutingError extends Error {
4
+ code: StatusCode;
5
+ customMapName?: string | null;
6
+ constructor(code?: StatusCode, message?: string);
7
+ static notFound(details?: string): RoutingError;
8
+ }
9
+ export declare class WemapMultiRoutingError extends RoutingError {
10
+ code: StatusCode;
11
+ mapName: string | null;
12
+ constructor(code: StatusCode, mapName: string | null, message?: string);
13
+ static notFound(mapName: string, details?: string): WemapMultiRoutingError;
14
+ }
15
+ export declare class RemoteRoutingError extends RoutingError {
16
+ code: StatusCode;
17
+ routerName: string;
18
+ constructor(code: StatusCode, routerName: string, message?: string);
19
+ static notFound(routerName: string, details?: string): RemoteRoutingError;
20
+ static missingApiKey(routerName: string, details?: string): RemoteRoutingError;
21
+ static unreachableServer(routerName: string, url: string): RemoteRoutingError;
22
+ static responseNotParsing(routerName: string, url: string): RemoteRoutingError;
23
+ static travelModeUnimplemented(routerName: string, travelMode: TravelMode): RemoteRoutingError;
24
+ }
@@ -1,5 +1,4 @@
1
- // https://developers.google.com/actions-center/reference/grpc-api/status_codes
2
- export enum StatusCode {
1
+ export declare enum StatusCode {
3
2
  OK = 0,
4
3
  CANCELLED = 1,
5
4
  UNKNOWN = 2,
@@ -9,4 +8,4 @@ export enum StatusCode {
9
8
  INTERNAL = 13,
10
9
  UNAVAILABLE = 14,
11
10
  UNAUTHENTICATED = 16
12
- }
11
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Get route duration
3
+ * @param {Number} speed in km/h
4
+ * @returns {Number} duration in seconds
5
+ */
6
+ export declare function getDurationFromLength(length: number, speed?: number): number;
@@ -0,0 +1,32 @@
1
+ import { Level_t } from '@wemap/geo';
2
+ import { default as Vertex } from './Vertex.js';
3
+ export type EdgeProperties = {
4
+ name?: string;
5
+ externalId?: string | number;
6
+ isOneway?: boolean;
7
+ areStairs?: boolean;
8
+ isElevator?: boolean;
9
+ areEscalators?: boolean;
10
+ isMovingWalkway?: boolean;
11
+ needTicket?: boolean;
12
+ incline?: 'up' | 'down';
13
+ };
14
+ /**
15
+ * An Edge is a segment composed of two Vertex
16
+ * An edge is mostly issued from an OsmWay, but this is not always the case.
17
+ * For example, edges created by mapmatching.
18
+ */
19
+ export default class Edge {
20
+ vertex1: Vertex;
21
+ vertex2: Vertex;
22
+ properties: EdgeProperties;
23
+ static currentUniqueId: number;
24
+ readonly id: number;
25
+ readonly level: Level_t;
26
+ /** Edge bearing from vertex1 to vertex2 */
27
+ readonly bearing: number;
28
+ readonly length: number;
29
+ constructor(vertex1: Vertex, vertex2: Vertex, properties?: EdgeProperties);
30
+ static getEdgeByVertices(edges: Edge[], vertex1: Vertex, vertex2: Vertex): Edge | undefined;
31
+ reverseProperties(): void;
32
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
1
+ import { BoundingBox, Coordinates, UserPosition, Level_t } from '@wemap/geo';
2
+ import { default as Edge } from './Edge.js';
3
+ import { default as GraphProjection } from './GraphProjection.js';
4
+ import { default as Vertex } from './Vertex.js';
5
+ import { CompressedGeoGraphJson, GeoGraphJson } from '../types.js';
6
+ import { GraphProjectionOptions } from './GraphProjectionOptions.js';
7
+ declare class Graph {
8
+ readonly vertices: Vertex[];
9
+ readonly edges: Edge[];
10
+ /**
11
+ * exitVertices are vertices that have at least one indoor edge and one outdoor edge
12
+ * They are stored because the Level model cannot handle an indoor and outdoor state like [null, 1] or [null, [1,2]]
13
+ * This vertices are used to cover the projection case:
14
+ * - if projection origin is null, an exit vertex can be used
15
+ * - if projection origin is not null, the intersection level with an exit vertex can be used
16
+ */
17
+ readonly exitVertices: Set<Vertex>;
18
+ constructor(vertices: Vertex[], edges: Edge[]);
19
+ getEdgeByVertices(vertex1: Vertex, vertex2: Vertex): Edge | undefined;
20
+ getVertexByCoords(coords: Coordinates): Vertex | undefined;
21
+ static getVertexByCoords(vertices: Vertex[], coords: Coordinates): Vertex | undefined;
22
+ getVertexByName(name: string): Vertex | undefined;
23
+ getEdgeByName(name: string): Edge | undefined;
24
+ getBoundingBox(extendedMeasure?: number): BoundingBox | null;
25
+ getProjection<U extends (Coordinates | UserPosition)>(origin: U, options?: GraphProjectionOptions): GraphProjection<U> | null;
26
+ toJson(): GeoGraphJson;
27
+ static fromJson(json: GeoGraphJson): Graph;
28
+ /** @deprecated */
29
+ toCompressedJson(): CompressedGeoGraphJson;
30
+ /** @deprecated */
31
+ static fromCompressedJson(json: CompressedGeoGraphJson): Graph;
32
+ static fromCoordinatesSegments(segments: Coordinates[][]): Graph;
33
+ /**
34
+ * Create edges From MultiLevel Itinerary for a given level
35
+ * @param useMultiLevelEdges use segments which intersect both levels (stairs, elevators...)
36
+ */
37
+ getEdgesAtLevel(targetLevel: Level_t, useMultiLevelEdges?: boolean): Edge[];
38
+ toDetailedString(): string;
39
+ }
40
+ export default Graph;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import { Coordinates, UserPosition } from '@wemap/geo';
2
+ import { default as Edge } from './Edge.js';
3
+ import { default as Vertex } from './Vertex.js';
4
+ declare class GraphProjection<U extends Coordinates | UserPosition = Coordinates> {
5
+ readonly origin: U;
6
+ readonly distanceFromNearestElement: number;
7
+ readonly coords: U;
8
+ readonly nearestElement: Vertex | Edge;
9
+ constructor(origin: U, distanceFromNearestElement: number, coords: U, nearestElement: Vertex | Edge);
10
+ }
11
+ export default GraphProjection;
@@ -0,0 +1,7 @@
1
+ import { default as Edge } from './Edge.js';
2
+ export type GraphProjectionOptions = {
3
+ maxDistance?: number;
4
+ maxBearingAngle?: number;
5
+ useMultiLevelSegments?: boolean;
6
+ acceptEdgeFn?: (edge: Edge) => boolean;
7
+ };
@@ -0,0 +1,19 @@
1
+ import { Coordinates } from '@wemap/geo';
2
+ import { default as Graph } from './Graph.js';
3
+ import { default as Edge } from './Edge.js';
4
+ import { default as Vertex } from './Vertex.js';
5
+ /**
6
+ * GraphRoute is an oriented graph
7
+ */
8
+ declare class GraphRoute extends Graph {
9
+ start: Coordinates;
10
+ end: Coordinates;
11
+ vertices: Vertex[];
12
+ edges: Edge[];
13
+ edgesWeights: number[];
14
+ constructor(start: Coordinates, end: Coordinates, vertices: Vertex[], edges: Edge[], edgesWeights: number[]);
15
+ reverse(): GraphRoute;
16
+ static fromCoordinates(start: Coordinates, end: Coordinates, coordinates: Coordinates[]): GraphRoute;
17
+ get hasRoute(): boolean;
18
+ }
19
+ export default GraphRoute;
@@ -0,0 +1,2 @@
1
+ import { default as GraphRoute } from './GraphRoute.js';
2
+ export declare function isReadable(itinerary: GraphRoute): void;
@@ -0,0 +1,20 @@
1
+ import { Coordinates } from '@wemap/geo';
2
+ import { default as Vertex } from './Vertex.js';
3
+ import { default as GraphRoute } from './GraphRoute.js';
4
+ import { default as GraphRouterEngine, GraphRouterEngineResults } from './GraphRouterEngine.js';
5
+ import { GraphRouterOptions } from './GraphRouterOptions.js';
6
+ export declare class GraphRouterResults extends GraphRouterEngineResults {
7
+ sourceProjection: [Coordinates, Vertex | null];
8
+ targetsProjections: [Coordinates, Vertex | null][];
9
+ constructor(engineResults: GraphRouterEngineResults, sourceProjection: [Coordinates, Vertex | null], targetsProjections: [Coordinates, Vertex | null][]);
10
+ static createEmpty(source: Coordinates, targets: Coordinates[]): GraphRouterResults;
11
+ routeVertices(to?: Coordinates | Vertex): Vertex[];
12
+ weightedDistance(to?: Coordinates | Vertex): number | null;
13
+ route(to?: Coordinates | Vertex): GraphRoute;
14
+ }
15
+ declare class GraphRouter extends GraphRouterEngine {
16
+ calculateShortestPathToMultipleDestinations(source: Coordinates, targets: Coordinates[], options?: GraphRouterOptions): GraphRouterResults;
17
+ calculateShortestPath(source: Coordinates, target: Coordinates, options?: GraphRouterOptions): GraphRouterResults;
18
+ getShortestTrip(waypoints: Coordinates[], options?: GraphRouterOptions, tspTempCoeff?: number): GraphRoute[];
19
+ }
20
+ export default GraphRouter;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,77 @@
1
+ import { default as Edge } from './Edge.js';
2
+ import { default as Graph } from './Graph.js';
3
+ import { default as GraphRoute } from './GraphRoute.js';
4
+ import { GraphRouterOptions } from './GraphRouterOptions.js';
5
+ import { default as Vertex } from './Vertex.js';
6
+ export declare class GraphRouterEngineResults {
7
+ prev: Array<Vertex | null>;
8
+ dist: number[];
9
+ source: Vertex;
10
+ targets: Vertex[];
11
+ edges: Edge[];
12
+ constructor(prev: Array<Vertex | null>, dist: number[], source: Vertex, targets: Vertex[], edges: Edge[]);
13
+ routeVertices(to?: Vertex, list?: Vertex[]): Vertex[];
14
+ weightedDistance(to?: Vertex): number | null;
15
+ route(to?: Vertex): GraphRoute;
16
+ toGeoJson(graph: Graph): {
17
+ type: string;
18
+ features: ({
19
+ type: string;
20
+ properties: {
21
+ name?: string | undefined;
22
+ externalId?: string | number | undefined;
23
+ isGate?: boolean | undefined;
24
+ isSubwayEntrance?: boolean | undefined;
25
+ subwayEntranceRef?: string | undefined;
26
+ level?: number | [number, number] | undefined;
27
+ dist: string | number;
28
+ prev?: number | undefined;
29
+ id: number;
30
+ };
31
+ geometry: {
32
+ type: string;
33
+ coordinates: number[];
34
+ };
35
+ } | {
36
+ type: string;
37
+ properties: {
38
+ name?: string | undefined;
39
+ externalId?: string | number | undefined;
40
+ isOneway?: boolean | undefined;
41
+ areStairs?: boolean | undefined;
42
+ isElevator?: boolean | undefined;
43
+ areEscalators?: boolean | undefined;
44
+ isMovingWalkway?: boolean | undefined;
45
+ needTicket?: boolean | undefined;
46
+ incline?: "up" | "down" | undefined;
47
+ level?: number | [number, number] | undefined;
48
+ id: number;
49
+ };
50
+ geometry: {
51
+ type: string;
52
+ coordinates: number[][];
53
+ };
54
+ })[];
55
+ };
56
+ }
57
+ export default class GraphRouterEngine {
58
+ readonly graph: Graph;
59
+ disabledEdges: Set<Edge>;
60
+ constructor(graph: Graph);
61
+ calculateShortestPathToMultipleDestinationsByVertex(source: Vertex, targets: Vertex[], options?: GraphRouterOptions, inputVertices?: Vertex[], inputEdges?: Edge[]): GraphRouterEngineResults;
62
+ calculateShortestPathByVertex(source: Vertex, target: Vertex, options?: GraphRouterOptions, inputVertices?: Vertex[], inputEdges?: Edge[]): GraphRouterEngineResults;
63
+ calculateComponents(): Vertex[][];
64
+ toGeoJson(): {
65
+ type: string;
66
+ features: {
67
+ type: string;
68
+ geometry: {
69
+ type: string;
70
+ coordinates: number[][][];
71
+ };
72
+ properties: {
73
+ stroke: string;
74
+ };
75
+ }[];
76
+ };
77
+ }
@@ -1,18 +1,16 @@
1
- import Edge from './Edge.js'
2
-
1
+ import { default as Edge } from './Edge.js';
3
2
  export type GraphRouterOptions = {
4
3
  input: GraphRouterOptionsJson;
5
- projectionMaxDistance?: number; // in meters
4
+ projectionMaxDistance?: number;
6
5
  weightEdgeFn?: (edge: Edge) => number;
7
6
  acceptEdgeFn?: (edge: Edge) => boolean;
8
7
  useMultiLevelSegments?: boolean;
9
- }
10
-
8
+ };
11
9
  export type GraphRouterOptionsJson = {
12
10
  avoidStairs?: boolean;
13
11
  avoidEscalators?: boolean;
14
12
  avoidElevators?: boolean;
15
13
  avoidMovingWalkways?: boolean;
16
14
  avoidTicketRestrictedAreas?: boolean;
17
- projectionMaxDistance?: number; // in meters
18
- }
15
+ projectionMaxDistance?: number;
16
+ };
@@ -0,0 +1,20 @@
1
+ import { GraphRouterOptionsJson, GraphRouterOptions } from './GraphRouterOptions.js';
2
+ export default class GraphRouterOptionsBuilder {
3
+ avoidStairs: boolean;
4
+ avoidEscalators: boolean;
5
+ avoidElevators: boolean;
6
+ avoidMovingWalkways: boolean;
7
+ avoidTicketRestrictedAreas: boolean;
8
+ useMultiLevelSegments: boolean;
9
+ projectionMaxDistance?: number;
10
+ static DEFAULT: GraphRouterOptions;
11
+ static WITHOUT_STAIRS: GraphRouterOptions;
12
+ setAvoidStairs(avoidStairs: boolean): this;
13
+ setAvoidEscalators(avoidEscalators: boolean): this;
14
+ setAvoidElevators(avoidElevators: boolean): this;
15
+ setAvoidMovingWalkways(avoidMovingWalkways: boolean): this;
16
+ setAvoidTicketRestrictedAreas(avoidTicketRestrictedAreas: boolean): this;
17
+ setUseMultiLevelSegments(useMultiLevelSegments: boolean): this;
18
+ static fromJson(options: GraphRouterOptionsJson): GraphRouterOptions;
19
+ build(): GraphRouterOptions;
20
+ }
@@ -0,0 +1,12 @@
1
+ import { Coordinates } from '@wemap/geo';
2
+ import { default as Vertex } from './Vertex.js';
3
+ declare class NoRouteFoundError extends Error {
4
+ start: Vertex | Coordinates;
5
+ end: Vertex | Coordinates | (Coordinates | Vertex)[];
6
+ details: string | null;
7
+ constructor(start: Vertex | Coordinates, end: Vertex | Coordinates | (Coordinates | Vertex)[], details?: string | null);
8
+ get startStr(): string;
9
+ get endStr(): string;
10
+ get message(): string;
11
+ }
12
+ export default NoRouteFoundError;
@@ -0,0 +1,19 @@
1
+ import { Coordinates } from '@wemap/geo';
2
+ import { GraphVertexJson } from '../types.js';
3
+ export type VertexProperties = {
4
+ name?: string;
5
+ externalId?: string | number;
6
+ isGate?: boolean;
7
+ isSubwayEntrance?: boolean;
8
+ subwayEntranceRef?: string;
9
+ };
10
+ export default class Vertex {
11
+ coords: Coordinates;
12
+ properties: VertexProperties;
13
+ id: number;
14
+ constructor(coords: Coordinates, properties?: VertexProperties);
15
+ distanceTo(other: Vertex): number;
16
+ bearingTo(other: Vertex): number;
17
+ toJson(): GraphVertexJson;
18
+ static fromJson(json: GraphVertexJson): Vertex;
19
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,81 @@
1
+ import { FeatureCollection } from 'geojson';
2
+ import { Coordinates, CoordinatesJson } from '@wemap/geo';
3
+ import { Point2_t, Vector3_t } from '@wemap/maths';
4
+ import { default as Graph } from '../graph/Graph.js';
5
+ import { default as Leg, LegJson } from './Leg.js';
6
+ import { TransitMode } from './TransitMode.js';
7
+ import { Step } from './Step.js';
8
+ import { default as GraphRoute } from '../graph/GraphRoute.js';
9
+ export type ItineraryCommon = {
10
+ startTime?: number;
11
+ endTime?: number;
12
+ };
13
+ export type ItineraryJson = {
14
+ transitMode: TransitMode;
15
+ origin: CoordinatesJson;
16
+ destination: CoordinatesJson;
17
+ distance: number;
18
+ duration: number;
19
+ legs: LegJson[];
20
+ } & ItineraryCommon;
21
+ export type ItineraryConstructor = {
22
+ origin: Coordinates;
23
+ destination: Coordinates;
24
+ duration?: number;
25
+ legs: Leg[];
26
+ } & ItineraryCommon;
27
+ /**
28
+ * Main attributes are:
29
+ * nodes: the ordered list of Node
30
+ * edges: the ordered list of Edge
31
+ * start: the start point (Coordinates)
32
+ * end: the end point (Coordinates)
33
+ * length: the route length
34
+ */
35
+ export default class Itinerary {
36
+ origin: Coordinates;
37
+ destination: Coordinates;
38
+ duration: number;
39
+ readonly legs: Leg[];
40
+ private _transitMode;
41
+ startTime: number | null;
42
+ endTime: number | null;
43
+ private _coords;
44
+ private _distance;
45
+ constructor({ origin, destination, duration, legs, startTime, endTime }: ItineraryConstructor);
46
+ set coords(_: Coordinates[]);
47
+ get coords(): Coordinates[];
48
+ set steps(_: Step[]);
49
+ get steps(): Step[];
50
+ set transitMode(_: TransitMode);
51
+ get transitMode(): TransitMode;
52
+ set distance(_: number);
53
+ get distance(): number;
54
+ toGraph(): Graph;
55
+ static fromItineraries(...itineraries: Itinerary[]): Itinerary;
56
+ /**
57
+ * Convert lat/lng/level? points to Itinerary
58
+ */
59
+ static fromOrderedPointsArray(points: (Point2_t | Vector3_t)[], start: (Point2_t | Vector3_t), end: (Point2_t | Vector3_t)): Itinerary;
60
+ /**
61
+ * Convert ordered Coordinates to Itinerary
62
+ */
63
+ static fromOrderedCoordinates(coords: Coordinates[], origin: Coordinates, destination: Coordinates, transitMode?: TransitMode): Itinerary;
64
+ static equals(obj1: Itinerary, obj2: Itinerary): boolean;
65
+ equals(obj: Itinerary): boolean;
66
+ toJson(): ItineraryJson;
67
+ static fromJson(json: ItineraryJson): Itinerary;
68
+ static fromGraphRoute(graphRoute: GraphRoute, transitMode?: TransitMode): Itinerary;
69
+ multiplyLevel(levelFactor: number): void;
70
+ forceUnknownLevelTo0(): void;
71
+ toGeoJson(): FeatureCollection;
72
+ /**
73
+ * TODO: Remove it in router v3
74
+ * Update steps info thanks to the coordinates of the whole itinerary.
75
+ * This method will update:
76
+ * - all steps number
77
+ * - first/last steps
78
+ * - previousBearing/nextBearing/angle of first and last step of each leg
79
+ */
80
+ updateStepsFromLegs(): void;
81
+ }
@@ -0,0 +1,7 @@
1
+ import { default as Itinerary } from './Itinerary.js';
2
+ declare const itinerary1: Itinerary;
3
+ declare const itinerary2: Itinerary;
4
+ declare const itinerary3: Itinerary;
5
+ declare const itinerary4: Itinerary;
6
+ export declare const verifyStepsCoherence: (itinerary: Itinerary) => void;
7
+ export { itinerary1, itinerary2, itinerary3, itinerary4 };
@@ -0,0 +1,66 @@
1
+ import { Coordinates, CoordinatesCompressedJson } from '@wemap/geo';
2
+ import { default as Graph } from '../graph/Graph.js';
3
+ import { default as GraphRoute } from '../graph/GraphRoute.js';
4
+ import { TransitMode } from './TransitMode.js';
5
+ import { Step, StepJson } from './Step.js';
6
+ export type Destination = {
7
+ name: string | null;
8
+ coords: Coordinates;
9
+ };
10
+ export type DestinationConstructor = {
11
+ name?: string;
12
+ coords: Coordinates;
13
+ };
14
+ export type DestinationJson = {
15
+ name?: string;
16
+ coords: CoordinatesCompressedJson;
17
+ };
18
+ export type TransportInfo = {
19
+ name: string;
20
+ routeColor?: string;
21
+ routeTextColor?: string;
22
+ directionName?: string;
23
+ };
24
+ type LegCommon = {
25
+ transitMode: TransitMode;
26
+ startTime?: number;
27
+ endTime?: number;
28
+ transportInfo?: TransportInfo;
29
+ };
30
+ type LegConstructor = {
31
+ start: DestinationConstructor;
32
+ end: DestinationConstructor;
33
+ coords: Coordinates[];
34
+ steps?: Step[];
35
+ duration?: number;
36
+ } & LegCommon;
37
+ export type LegJson = {
38
+ start: DestinationJson;
39
+ end: DestinationJson;
40
+ coords: CoordinatesCompressedJson[];
41
+ steps: StepJson[];
42
+ distance: number;
43
+ duration: number;
44
+ } & LegCommon;
45
+ export default class Leg {
46
+ start: Destination;
47
+ end: Destination;
48
+ coords: Coordinates[];
49
+ distance: number;
50
+ transitMode: TransitMode;
51
+ duration: number;
52
+ startTime: number | null;
53
+ endTime: number | null;
54
+ steps: Step[];
55
+ transportInfo: TransportInfo | null;
56
+ constructor({ start, end, coords, transitMode, duration, startTime, endTime, transportInfo, steps }: LegConstructor);
57
+ isPublicTransport(): boolean;
58
+ toGraph(): Graph;
59
+ static equals(obj1: Leg, obj2: Leg): boolean;
60
+ equals(obj: Leg): boolean;
61
+ toJson(): LegJson;
62
+ static fromJson(json: LegJson): Leg;
63
+ static fromGraphRoute(graphRoute: GraphRoute, transitMode?: TransitMode): Leg;
64
+ multiplyLevel(levelFactor: number): void;
65
+ }
66
+ export {};
@@ -0,0 +1,6 @@
1
+ import { default as Leg } from './Leg.js';
2
+ declare const leg1: Leg;
3
+ declare const leg2: Leg;
4
+ declare const leg3: Leg;
5
+ declare const leg4: Leg;
6
+ export { leg1, leg2, leg3, leg4 };
@@ -0,0 +1,7 @@
1
+ export type LevelChangeType = 'elevator' | 'escalator' | 'stairs' | 'moving walkway' | 'incline plane';
2
+ export type LevelChange = {
3
+ direction: 'up' | 'down';
4
+ difference: number;
5
+ type?: LevelChangeType;
6
+ };
7
+ export declare function areLevelChangeEquals(l1: LevelChange, l2: LevelChange): boolean;
@@ -0,0 +1,6 @@
1
+ import { LevelChange } from './LevelChange.js';
2
+ declare const levelChange1: LevelChange;
3
+ declare const levelChange2: LevelChange;
4
+ declare const levelChange3: LevelChange;
5
+ declare const levelChange4: LevelChange;
6
+ export { levelChange1, levelChange2, levelChange3, levelChange4 };
@@ -0,0 +1,40 @@
1
+ import { Coordinates } from '@wemap/geo';
2
+ import { TravelMode, TravelModePreference } from './TravelMode';
3
+ export type RouterRequest = {
4
+ origin: Coordinates;
5
+ destination: Coordinates;
6
+ travelMode: TravelMode;
7
+ travelModePreference?: TravelModePreference;
8
+ provideItineraryAlternatives?: boolean;
9
+ waypoints?: Coordinates[];
10
+ optimizeWaypoints?: boolean;
11
+ itineraryModifiers?: {
12
+ avoidStairs?: boolean;
13
+ avoidEscalators?: boolean;
14
+ avoidElevators?: boolean;
15
+ avoidMovingWalkways?: boolean;
16
+ avoidTicketRestrictedAreas?: boolean;
17
+ };
18
+ output?: {
19
+ distanceAndDurationOnly?: boolean;
20
+ };
21
+ };
22
+ export declare function routerRequestToJson(routerRequest: RouterRequest): {
23
+ travelMode: TravelMode;
24
+ travelModePreference?: TravelModePreference | undefined;
25
+ provideItineraryAlternatives?: boolean | undefined;
26
+ optimizeWaypoints?: boolean | undefined;
27
+ itineraryModifiers?: {
28
+ avoidStairs?: boolean | undefined;
29
+ avoidEscalators?: boolean | undefined;
30
+ avoidElevators?: boolean | undefined;
31
+ avoidMovingWalkways?: boolean | undefined;
32
+ avoidTicketRestrictedAreas?: boolean | undefined;
33
+ } | undefined;
34
+ output?: {
35
+ distanceAndDurationOnly?: boolean | undefined;
36
+ } | undefined;
37
+ waypoints?: import('@wemap/geo').CoordinatesJson[] | undefined;
38
+ origin: import('@wemap/geo').CoordinatesJson;
39
+ destination: import('@wemap/geo').CoordinatesJson;
40
+ };
@@ -0,0 +1,42 @@
1
+ import { Coordinates, CoordinatesCompressedJson } from '@wemap/geo';
2
+ import { LevelChange } from './LevelChange.js';
3
+ import { StepExtra } from './StepExtra.js';
4
+ export type Step = {
5
+ firstStep: boolean;
6
+ lastStep: boolean;
7
+ number: number;
8
+ angle: number;
9
+ previousBearing: number;
10
+ nextBearing: number;
11
+ distance: number;
12
+ duration: number;
13
+ readonly coords: Coordinates;
14
+ readonly name: string | null;
15
+ readonly levelChange: LevelChange | null;
16
+ readonly extras: StepExtra | null;
17
+ };
18
+ export type StepJson = {
19
+ firstStep?: boolean;
20
+ lastStep?: boolean;
21
+ number: number;
22
+ coords: CoordinatesCompressedJson;
23
+ name?: string;
24
+ angle: number;
25
+ previousBearing: number;
26
+ nextBearing: number;
27
+ distance: number;
28
+ duration: number;
29
+ levelChange?: LevelChange;
30
+ extras?: StepExtra;
31
+ };
32
+ export type MinStepInfo = {
33
+ coords: Coordinates;
34
+ name?: string;
35
+ levelChange?: LevelChange;
36
+ extras?: StepExtra;
37
+ distance?: number;
38
+ duration?: number;
39
+ };
40
+ export declare function stepToJson(step: Step): StepJson;
41
+ export declare function jsonToStep(json: StepJson): Step;
42
+ export declare function stepEquals(step1: Step, step2: Step): boolean;