@motis-project/motis-client 2.8.2 → 2.9.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.
@@ -123,6 +123,53 @@ type Duration = {
123
123
  * duration in seconds if a path was found, otherwise missing
124
124
  */
125
125
  duration?: number;
126
+ /**
127
+ * distance in meters if a path was found and distance computation was requested, otherwise missing
128
+ */
129
+ distance?: number;
130
+ };
131
+ /**
132
+ * Object containing a single element of a ParetoSet
133
+ */
134
+ type ParetoSetEntry = {
135
+ /**
136
+ * duration in seconds for the the best solution using `transfer` transfers
137
+ *
138
+ * Notice that the resolution is currently in minutes, because of implementation details
139
+ *
140
+ */
141
+ duration: number;
142
+ /**
143
+ * The minimal number of transfers required to arrive within `duration` seconds
144
+ *
145
+ * transfers=0: Direct transit connecion without any transfers
146
+ * transfers=1: Transit connection with 1 transfer
147
+ *
148
+ */
149
+ transfers: number;
150
+ };
151
+ /**
152
+ * Pareto set of optimal transit solutions
153
+ */
154
+ type ParetoSet = Array<ParetoSetEntry>;
155
+ /**
156
+ * Object containing the optimal street and transit durations for One-to-Many routing
157
+ */
158
+ type OneToManyIntermodalResponse = {
159
+ /**
160
+ * Fastest durations for street routing
161
+ * The order of the items corresponds to the order of the `many` locations
162
+ * If no street routed connection is found, the corresponding `Duration` will be empty
163
+ *
164
+ */
165
+ street_durations?: Array<Duration>;
166
+ /**
167
+ * Pareto optimal solutions
168
+ * The order of the items corresponds to the order of the `many` locations
169
+ * If no connection using transits is found, the corresponding `ParetoSet` will be empty
170
+ *
171
+ */
172
+ transit_durations?: Array<ParetoSet>;
126
173
  };
127
174
  /**
128
175
  * Administrative area
@@ -179,29 +226,29 @@ type LocationType = 'ADDRESS' | 'PLACE' | 'STOP';
179
226
  *
180
227
  * # Transit modes
181
228
  *
182
- * - `TRANSIT`: translates to `RAIL,TRAM,BUS,FERRY,AIRPLANE,COACH,CABLE_CAR,FUNICULAR,AREAL_LIFT,OTHER`
229
+ * - `TRANSIT`: translates to `TRAM,FERRY,AIRPLANE,BUS,COACH,RAIL,ODM,FUNICULAR,AERIAL_LIFT,OTHER`
183
230
  * - `TRAM`: trams
184
231
  * - `SUBWAY`: subway trains (Paris Metro, London Underground, but also NYC Subway, Hamburger Hochbahn, and other non-underground services)
185
232
  * - `FERRY`: ferries
186
233
  * - `AIRPLANE`: airline flights
187
234
  * - `BUS`: short distance buses (does not include `COACH`)
188
235
  * - `COACH`: long distance buses (does not include `BUS`)
189
- * - `RAIL`: translates to `HIGHSPEED_RAIL,LONG_DISTANCE,NIGHT_RAIL,REGIONAL_RAIL,REGIONAL_FAST_RAIL,SUBURBAN,SUBWAY`
190
- * - `SUBURBAN`: suburban trains (e.g. S-Bahn, RER, Elizabeth Line, ...)
236
+ * - `RAIL`: translates to `HIGHSPEED_RAIL,LONG_DISTANCE,NIGHT_RAIL,REGIONAL_RAIL,SUBURBAN,SUBWAY`
191
237
  * - `HIGHSPEED_RAIL`: long distance high speed trains (e.g. TGV)
192
238
  * - `LONG_DISTANCE`: long distance inter city trains
193
239
  * - `NIGHT_RAIL`: long distance night trains
194
- * - `REGIONAL_FAST_RAIL`: regional express routes that skip low traffic stops to be faster
240
+ * - `REGIONAL_FAST_RAIL`: deprecated, `REGIONAL_RAIL` will be used
195
241
  * - `REGIONAL_RAIL`: regional train
242
+ * - `SUBURBAN`: suburban trains (e.g. S-Bahn, RER, Elizabeth Line, ...)
243
+ * - `ODM`: demand responsive transport
196
244
  * - `FUNICULAR`: Funicular. Any rail system designed for steep inclines.
197
245
  * - `AERIAL_LIFT`: Aerial lift, suspended cable car (e.g., gondola lift, aerial tramway). Cable transport where cabins, cars, gondolas or open chairs are suspended by means of one or more cables.
198
- * - `ODM`: demand responsive transport
199
246
  * - `AREAL_LIFT`: deprecated
200
247
  * - `METRO`: deprecated
201
248
  * - `CABLE_CAR`: deprecated
202
249
  *
203
250
  */
204
- type Mode = 'WALK' | 'BIKE' | 'RENTAL' | 'CAR' | 'CAR_PARKING' | 'CAR_DROPOFF' | 'ODM' | 'RIDE_SHARING' | 'FLEX' | 'TRANSIT' | 'TRAM' | 'SUBWAY' | 'FERRY' | 'AIRPLANE' | 'SUBURBAN' | 'BUS' | 'COACH' | 'RAIL' | 'HIGHSPEED_RAIL' | 'LONG_DISTANCE' | 'NIGHT_RAIL' | 'REGIONAL_FAST_RAIL' | 'REGIONAL_RAIL' | 'CABLE_CAR' | 'FUNICULAR' | 'AERIAL_LIFT' | 'OTHER' | 'AREAL_LIFT' | 'METRO';
251
+ type Mode = 'WALK' | 'BIKE' | 'RENTAL' | 'CAR' | 'CAR_PARKING' | 'CAR_DROPOFF' | 'ODM' | 'RIDE_SHARING' | 'FLEX' | 'DEBUG_BUS_ROUTE' | 'DEBUG_RAILWAY_ROUTE' | 'DEBUG_FERRY_ROUTE' | 'TRANSIT' | 'TRAM' | 'SUBWAY' | 'FERRY' | 'AIRPLANE' | 'BUS' | 'COACH' | 'RAIL' | 'HIGHSPEED_RAIL' | 'LONG_DISTANCE' | 'NIGHT_RAIL' | 'REGIONAL_FAST_RAIL' | 'REGIONAL_RAIL' | 'SUBURBAN' | 'FUNICULAR' | 'AERIAL_LIFT' | 'OTHER' | 'AREAL_LIFT' | 'METRO' | 'CABLE_CAR';
205
252
  /**
206
253
  * GeoCoding match
207
254
  */
@@ -486,6 +533,7 @@ type StopTime = {
486
533
  agencyName: string;
487
534
  agencyUrl: string;
488
535
  routeId: string;
536
+ routeUrl?: string;
489
537
  directionId: string;
490
538
  routeColor?: string;
491
539
  routeTextColor?: string;
@@ -1022,6 +1070,16 @@ type RentalZone = {
1022
1070
  area: MultiPolygon;
1023
1071
  rules: Array<RentalZoneRestrictions>;
1024
1072
  };
1073
+ /**
1074
+ * not available for GTFS datasets by default
1075
+ * For NeTEx it contains information about the vehicle category, e.g. IC/InterCity
1076
+ *
1077
+ */
1078
+ type Category = {
1079
+ id: string;
1080
+ name: string;
1081
+ shortName: string;
1082
+ };
1025
1083
  type Leg = {
1026
1084
  /**
1027
1085
  * Transport mode for this leg
@@ -1093,7 +1151,9 @@ type Leg = {
1093
1151
  * final stop of this trip (can differ from headsign)
1094
1152
  */
1095
1153
  tripTo?: Place;
1154
+ category?: Category;
1096
1155
  routeId?: string;
1156
+ routeUrl?: string;
1097
1157
  directionId?: string;
1098
1158
  routeColor?: string;
1099
1159
  routeTextColor?: string;
@@ -1120,10 +1180,17 @@ type Leg = {
1120
1180
  *
1121
1181
  */
1122
1182
  intermediateStops?: Array<Place>;
1183
+ /**
1184
+ * Encoded geometry of the leg.
1185
+ * If detailed leg output is disabled, this is returned as an empty
1186
+ * polyline.
1187
+ *
1188
+ */
1123
1189
  legGeometry: EncodedPolyline;
1124
1190
  /**
1125
1191
  * A series of turn by turn instructions
1126
1192
  * used for walking, biking and driving.
1193
+ * This field is omitted if the request disables detailed leg output.
1127
1194
  *
1128
1195
  */
1129
1196
  steps?: Array<StepInstruction>;
@@ -1321,6 +1388,9 @@ type OneToManyParams = {
1321
1388
  one: string;
1322
1389
  /**
1323
1390
  * geo locations as latitude;longitude,latitude;longitude,...
1391
+ *
1392
+ * The number of accepted locations is limited by server config variable `onetomany_max_many`.
1393
+ *
1324
1394
  */
1325
1395
  many: Array<(string)>;
1326
1396
  /**
@@ -1329,7 +1399,7 @@ type OneToManyParams = {
1329
1399
  */
1330
1400
  mode: Mode;
1331
1401
  /**
1332
- * maximum travel time in seconds
1402
+ * maximum travel time in seconds. Is limited by server config variable `street_routing_max_direct_seconds`.
1333
1403
  */
1334
1404
  max: number;
1335
1405
  /**
@@ -1353,13 +1423,244 @@ type OneToManyParams = {
1353
1423
  * - `BIKE`
1354
1424
  *
1355
1425
  */
1356
- elevationCosts: ElevationCosts;
1426
+ elevationCosts?: ElevationCosts;
1357
1427
  /**
1358
1428
  * true = many to one
1359
1429
  * false = one to many
1360
1430
  *
1361
1431
  */
1362
1432
  arriveBy: boolean;
1433
+ /**
1434
+ * If true, the response includes the distance in meters
1435
+ * for each path. This requires path reconstruction and
1436
+ * may be slower than duration-only queries.
1437
+ *
1438
+ */
1439
+ withDistance?: boolean;
1440
+ };
1441
+ type OneToManyIntermodalParams = {
1442
+ /**
1443
+ * \`latitude,longitude[,level]\` tuple with
1444
+ * - latitude and longitude in degrees
1445
+ * - (optional) level: the OSM level (default: 0)
1446
+ *
1447
+ * OR
1448
+ *
1449
+ * stop id
1450
+ *
1451
+ */
1452
+ one: string;
1453
+ /**
1454
+ * array of:
1455
+ *
1456
+ * \`latitude,longitude[,level]\` tuple with
1457
+ * - latitude and longitude in degrees
1458
+ * - (optional) level: the OSM level (default: 0)
1459
+ *
1460
+ * OR
1461
+ *
1462
+ * stop id
1463
+ *
1464
+ * The number of accepted locations is limited by server config variable `onetomany_max_many`.
1465
+ *
1466
+ */
1467
+ many: Array<(string)>;
1468
+ /**
1469
+ * Optional. Defaults to the current time.
1470
+ *
1471
+ * Departure time ($arriveBy=false) / arrival date ($arriveBy=true),
1472
+ *
1473
+ */
1474
+ time?: string;
1475
+ /**
1476
+ * The maximum travel time in minutes.
1477
+ * If not provided, the routing uses the value
1478
+ * hardcoded in the server which is usually quite high.
1479
+ *
1480
+ * *Warning*: Use with care. Setting this too low can lead to
1481
+ * optimal (e.g. the least transfers) journeys not being found.
1482
+ * If this value is too low to reach the destination at all,
1483
+ * it can lead to slow routing performance.
1484
+ *
1485
+ */
1486
+ maxTravelTime?: number;
1487
+ /**
1488
+ * maximum matching distance in meters to match geo coordinates to the street network
1489
+ */
1490
+ maxMatchingDistance?: number;
1491
+ /**
1492
+ * Optional. Defaults to false, i.e. one to many search
1493
+ *
1494
+ * true = many to one
1495
+ * false = one to many
1496
+ *
1497
+ */
1498
+ arriveBy?: boolean;
1499
+ /**
1500
+ * The maximum number of allowed transfers (i.e. interchanges between transit legs,
1501
+ * pre- and postTransit do not count as transfers).
1502
+ * `maxTransfers=0` searches for direct transit connections without any transfers.
1503
+ * If you want to search only for non-transit connections (`FOOT`, `CAR`, etc.),
1504
+ * send an empty `transitModes` parameter instead.
1505
+ *
1506
+ * If not provided, the routing uses the server-side default value
1507
+ * which is hardcoded and very high to cover all use cases.
1508
+ *
1509
+ * *Warning*: Use with care. Setting this too low can lead to
1510
+ * optimal (e.g. the fastest) journeys not being found.
1511
+ * If this value is too low to reach the destination at all,
1512
+ * it can lead to slow routing performance.
1513
+ *
1514
+ */
1515
+ maxTransfers?: number;
1516
+ /**
1517
+ * Optional. Default is 0 minutes.
1518
+ *
1519
+ * Minimum transfer time for each transfer in minutes.
1520
+ *
1521
+ */
1522
+ minTransferTime?: number;
1523
+ /**
1524
+ * Optional. Default is 0 minutes.
1525
+ *
1526
+ * Additional transfer time reserved for each transfer in minutes.
1527
+ *
1528
+ */
1529
+ additionalTransferTime?: number;
1530
+ /**
1531
+ * Optional. Default is 1.0
1532
+ *
1533
+ * Factor to multiply minimum required transfer times with.
1534
+ * Values smaller than 1.0 are not supported.
1535
+ *
1536
+ */
1537
+ transferTimeFactor?: number;
1538
+ /**
1539
+ * Optional. Default is `false`.
1540
+ *
1541
+ * Whether to use transfers routed on OpenStreetMap data.
1542
+ *
1543
+ */
1544
+ useRoutedTransfers?: boolean;
1545
+ /**
1546
+ * Optional. Default is `FOOT`.
1547
+ *
1548
+ * Accessibility profile to use for pedestrian routing in transfers
1549
+ * between transit connections and the first and last mile respectively.
1550
+ *
1551
+ */
1552
+ pedestrianProfile?: PedestrianProfile;
1553
+ /**
1554
+ * Optional
1555
+ *
1556
+ * Average speed for pedestrian routing.
1557
+ *
1558
+ */
1559
+ pedestrianSpeed?: PedestrianSpeed;
1560
+ /**
1561
+ * Optional
1562
+ *
1563
+ * Average speed for bike routing.
1564
+ *
1565
+ */
1566
+ cyclingSpeed?: CyclingSpeed;
1567
+ /**
1568
+ * Optional. Default is `NONE`.
1569
+ *
1570
+ * Set an elevation cost profile, to penalize routes with incline.
1571
+ * - `NONE`: No additional costs for elevations. This is the default behavior
1572
+ * - `LOW`: Add a low cost for increase in elevation and incline along the way. This will prefer routes with less ascent, if small detours are required.
1573
+ * - `HIGH`: Add a high cost for increase in elevation and incline along the way. This will prefer routes with less ascent, if larger detours are required.
1574
+ *
1575
+ * As using an elevation costs profile will increase the travel duration,
1576
+ * routing through steep terrain may exceed the maximal allowed duration,
1577
+ * causing a location to appear unreachable.
1578
+ * Increasing the maximum travel time for these segments may resolve this issue.
1579
+ *
1580
+ * The profile is used for routing on both the first and last mile.
1581
+ *
1582
+ * Elevation cost profiles are currently used by following street modes:
1583
+ * - `BIKE`
1584
+ *
1585
+ */
1586
+ elevationCosts?: ElevationCosts;
1587
+ /**
1588
+ * Optional. Default is `TRANSIT` which allows all transit modes (no restriction).
1589
+ * Allowed modes for the transit part. If empty, no transit connections will be computed.
1590
+ * For example, this can be used to allow only `SUBURBAN,SUBWAY,TRAM`.
1591
+ *
1592
+ */
1593
+ transitModes?: Array<Mode>;
1594
+ /**
1595
+ * Optional. Default is `WALK`. Does not apply to direct connections (see `directMode`).
1596
+ *
1597
+ * A list of modes that are allowed to be used for the first mile, i.e. from the coordinates to the first transit stop. Example: `WALK,BIKE_SHARING`.
1598
+ *
1599
+ */
1600
+ preTransitModes?: Array<Mode>;
1601
+ /**
1602
+ * Optional. Default is `WALK`. Does not apply to direct connections (see `directMode`).
1603
+ *
1604
+ * A list of modes that are allowed to be used for the last mile, i.e. from the last transit stop to the target coordinates. Example: `WALK,BIKE_SHARING`.
1605
+ *
1606
+ */
1607
+ postTransitModes?: Array<Mode>;
1608
+ /**
1609
+ * Default is `WALK` which will compute walking routes as direct connections.
1610
+ *
1611
+ * Mode used for direction connections from start to destination without using transit.
1612
+ *
1613
+ * Currently supported non-transit modes: \`WALK\`, \`BIKE\`, \`CAR\`
1614
+ *
1615
+ */
1616
+ directMode?: Mode;
1617
+ /**
1618
+ * Optional. Default is 15min which is `900`.
1619
+ * Maximum time in seconds for the first street leg.
1620
+ * Is limited by server config variable `street_routing_max_prepost_transit_seconds`.
1621
+ *
1622
+ */
1623
+ maxPreTransitTime?: number;
1624
+ /**
1625
+ * Optional. Default is 15min which is `900`.
1626
+ * Maximum time in seconds for the last street leg.
1627
+ * Is limited by server config variable `street_routing_max_prepost_transit_seconds`.
1628
+ *
1629
+ */
1630
+ maxPostTransitTime?: number;
1631
+ /**
1632
+ * Optional. Default is 30min which is `1800`.
1633
+ * Maximum time in seconds for direct connections.
1634
+ *
1635
+ * If a value smaller than either `maxPreTransitTime` or
1636
+ * `maxPostTransitTime` is used, their maximum is set instead.
1637
+ * Is limited by server config variable `street_routing_max_direct_seconds`.
1638
+ *
1639
+ */
1640
+ maxDirectTime?: number;
1641
+ /**
1642
+ * If true, the response includes the distance in meters
1643
+ * for each path. This requires path reconstruction and
1644
+ * may be slower than duration-only queries.
1645
+ *
1646
+ * `withDistance` is currently limited to street routing.
1647
+ *
1648
+ */
1649
+ withDistance?: boolean;
1650
+ /**
1651
+ * Optional. Default is `false`.
1652
+ *
1653
+ * If set to `true`, all used transit trips are required to allow bike carriage.
1654
+ *
1655
+ */
1656
+ requireBikeTransport?: boolean;
1657
+ /**
1658
+ * Optional. Default is `false`.
1659
+ *
1660
+ * If set to `true`, all used transit trips are required to allow car carriage.
1661
+ *
1662
+ */
1663
+ requireCarTransport?: boolean;
1363
1664
  };
1364
1665
  type ServerConfig = {
1365
1666
  /**
@@ -1374,10 +1675,15 @@ type ServerConfig = {
1374
1675
  * true if street routing is available
1375
1676
  */
1376
1677
  hasStreetRouting: boolean;
1678
+ /**
1679
+ * limit for the number of `many` locations for one-to-many requests
1680
+ *
1681
+ */
1682
+ maxOneToManySize: number;
1377
1683
  /**
1378
1684
  * limit for maxTravelTime API param in minutes
1379
1685
  */
1380
- maxOneToAllTravelTimeLimit?: number;
1686
+ maxOneToAllTravelTimeLimit: number;
1381
1687
  /**
1382
1688
  * limit for maxPrePostTransitTime API param in seconds
1383
1689
  */
@@ -1386,6 +1692,10 @@ type ServerConfig = {
1386
1692
  * limit for maxDirectTime API param in seconds
1387
1693
  */
1388
1694
  maxDirectTimeLimit: number;
1695
+ /**
1696
+ * true if experimental route shapes debug download API is enabled
1697
+ */
1698
+ shapesDebugEnabled: boolean;
1389
1699
  };
1390
1700
  type Error = {
1391
1701
  /**
@@ -1393,6 +1703,66 @@ type Error = {
1393
1703
  */
1394
1704
  error: string;
1395
1705
  };
1706
+ /**
1707
+ * Route segment between two stops to show a route on a map
1708
+ */
1709
+ type RouteSegment = {
1710
+ /**
1711
+ * Index into the top-level route stops array
1712
+ */
1713
+ from: number;
1714
+ /**
1715
+ * Index into the top-level route stops array
1716
+ */
1717
+ to: number;
1718
+ /**
1719
+ * Index into the top-level route polylines array
1720
+ */
1721
+ polyline: number;
1722
+ };
1723
+ /**
1724
+ * Shared polyline used by one or more route segments
1725
+ */
1726
+ type RoutePolyline = {
1727
+ polyline: EncodedPolyline;
1728
+ /**
1729
+ * Unique route colors of routes containing this segment
1730
+ */
1731
+ colors: Array<(string)>;
1732
+ /**
1733
+ * Indexes into the top-level routes array for routes containing this segment
1734
+ */
1735
+ routeIndexes: Array<(number)>;
1736
+ };
1737
+ type RouteColor = {
1738
+ color: string;
1739
+ textColor: string;
1740
+ };
1741
+ type RoutePathSource = 'NONE' | 'TIMETABLE' | 'ROUTED';
1742
+ type TransitRouteInfo = {
1743
+ id: string;
1744
+ shortName: string;
1745
+ longName: string;
1746
+ color?: string;
1747
+ textColor?: string;
1748
+ };
1749
+ type RouteInfo = {
1750
+ /**
1751
+ * Transport mode for this route
1752
+ */
1753
+ mode: Mode;
1754
+ transitRoutes: Array<TransitRouteInfo>;
1755
+ /**
1756
+ * Number of stops along this route
1757
+ */
1758
+ numStops: number;
1759
+ /**
1760
+ * Internal route index for debugging purposes
1761
+ */
1762
+ routeIdx: number;
1763
+ pathSource: RoutePathSource;
1764
+ segments: Array<RouteSegment>;
1765
+ };
1396
1766
  type PlanData = {
1397
1767
  query: {
1398
1768
  /**
@@ -1422,8 +1792,18 @@ type PlanData = {
1422
1792
  */
1423
1793
  cyclingSpeed?: CyclingSpeed;
1424
1794
  /**
1795
+ * Controls if `legGeometry` and `steps` are returned for direct legs,
1796
+ * pre-/post-transit legs and transit legs.
1797
+ *
1798
+ */
1799
+ detailedLegs?: boolean;
1800
+ /**
1801
+ * Controls if transfer polylines and step instructions are returned.
1802
+ *
1803
+ * If not set, this parameter inherits the value of `detailedLegs`.
1804
+ *
1425
1805
  * - true: Compute transfer polylines and step instructions.
1426
- * - false: Only return basic information (start time, end time, duration) for transfers.
1806
+ * - false: Return empty `legGeometry` and omit `steps` for transfers.
1427
1807
  *
1428
1808
  */
1429
1809
  detailedTransfers?: boolean;
@@ -1988,10 +2368,13 @@ type OneToManyData = {
1988
2368
  elevationCosts?: ElevationCosts;
1989
2369
  /**
1990
2370
  * geo locations as latitude;longitude,latitude;longitude,...
2371
+ *
2372
+ * The number of accepted locations is limited by server config variable `onetomany_max_many`.
2373
+ *
1991
2374
  */
1992
2375
  many: Array<(string)>;
1993
2376
  /**
1994
- * maximum travel time in seconds
2377
+ * maximum travel time in seconds. Is limited by server config variable `street_routing_max_direct_seconds`.
1995
2378
  */
1996
2379
  max: number;
1997
2380
  /**
@@ -2007,10 +2390,242 @@ type OneToManyData = {
2007
2390
  * geo location as latitude;longitude
2008
2391
  */
2009
2392
  one: string;
2393
+ /**
2394
+ * Optional. Default is `false`.
2395
+ * If true, the response includes the distance in meters
2396
+ * for each path. This requires path reconstruction and
2397
+ * is slower than duration-only queries.
2398
+ *
2399
+ */
2400
+ withDistance?: boolean;
2010
2401
  };
2011
2402
  };
2012
2403
  type OneToManyResponse = (Array<Duration>);
2013
- type OneToManyError = unknown;
2404
+ type OneToManyError = (Error);
2405
+ type OneToManyPostData = {
2406
+ body: OneToManyParams;
2407
+ };
2408
+ type OneToManyPostResponse = (Array<Duration>);
2409
+ type OneToManyPostError = (Error);
2410
+ type OneToManyIntermodalData = {
2411
+ query: {
2412
+ /**
2413
+ * Optional. Default is 0 minutes.
2414
+ *
2415
+ * Additional transfer time reserved for each transfer in minutes.
2416
+ *
2417
+ */
2418
+ additionalTransferTime?: number;
2419
+ /**
2420
+ * Optional. Defaults to false, i.e. one to many search
2421
+ *
2422
+ * true = many to one
2423
+ * false = one to many
2424
+ *
2425
+ */
2426
+ arriveBy?: boolean;
2427
+ /**
2428
+ * Optional
2429
+ *
2430
+ * Average speed for bike routing.
2431
+ *
2432
+ */
2433
+ cyclingSpeed?: CyclingSpeed;
2434
+ /**
2435
+ * Default is `WALK` which will compute walking routes as direct connections.
2436
+ *
2437
+ * Mode used for direction connections from start to destination without using transit.
2438
+ *
2439
+ * Currently supported non-transit modes: \`WALK\`, \`BIKE\`, \`CAR\`
2440
+ *
2441
+ */
2442
+ directMode?: Mode;
2443
+ /**
2444
+ * Optional. Default is `NONE`.
2445
+ *
2446
+ * Set an elevation cost profile, to penalize routes with incline.
2447
+ * - `NONE`: No additional costs for elevations. This is the default behavior
2448
+ * - `LOW`: Add a low cost for increase in elevation and incline along the way. This will prefer routes with less ascent, if small detours are required.
2449
+ * - `HIGH`: Add a high cost for increase in elevation and incline along the way. This will prefer routes with less ascent, if larger detours are required.
2450
+ *
2451
+ * As using an elevation costs profile will increase the travel duration,
2452
+ * routing through steep terrain may exceed the maximal allowed duration,
2453
+ * causing a location to appear unreachable.
2454
+ * Increasing the maximum travel time for these segments may resolve this issue.
2455
+ *
2456
+ * The profile is used for routing on both the first and last mile.
2457
+ *
2458
+ * Elevation cost profiles are currently used by following street modes:
2459
+ * - `BIKE`
2460
+ *
2461
+ */
2462
+ elevationCosts?: ElevationCosts;
2463
+ /**
2464
+ * geo locations as latitude;longitude,latitude;longitude,...
2465
+ *
2466
+ * The number of accepted locations is limited by server config variable `onetomany_max_many`.
2467
+ *
2468
+ */
2469
+ many: Array<(string)>;
2470
+ /**
2471
+ * Optional. Default is 30min which is `1800`.
2472
+ * Maximum time in seconds for direct connections.
2473
+ *
2474
+ * If a value smaller than either `maxPreTransitTime` or
2475
+ * `maxPostTransitTime` is used, their maximum is set instead.
2476
+ * Is limited by server config variable `street_routing_max_direct_seconds`.
2477
+ *
2478
+ */
2479
+ maxDirectTime?: number;
2480
+ /**
2481
+ * maximum matching distance in meters to match geo coordinates to the street network
2482
+ */
2483
+ maxMatchingDistance?: number;
2484
+ /**
2485
+ * Optional. Default is 15min which is `900`.
2486
+ * Maximum time in seconds for the last street leg.
2487
+ * Is limited by server config variable `street_routing_max_prepost_transit_seconds`.
2488
+ *
2489
+ */
2490
+ maxPostTransitTime?: number;
2491
+ /**
2492
+ * Optional. Default is 15min which is `900`.
2493
+ * Maximum time in seconds for the first street leg.
2494
+ * Is limited by server config variable `street_routing_max_prepost_transit_seconds`.
2495
+ *
2496
+ */
2497
+ maxPreTransitTime?: number;
2498
+ /**
2499
+ * The maximum number of allowed transfers (i.e. interchanges between transit legs,
2500
+ * pre- and postTransit do not count as transfers).
2501
+ * `maxTransfers=0` searches for direct transit connections without any transfers.
2502
+ * If you want to search only for non-transit connections (`FOOT`, `CAR`, etc.),
2503
+ * send an empty `transitModes` parameter instead.
2504
+ *
2505
+ * If not provided, the routing uses the server-side default value
2506
+ * which is hardcoded and very high to cover all use cases.
2507
+ *
2508
+ * *Warning*: Use with care. Setting this too low can lead to
2509
+ * optimal (e.g. the fastest) journeys not being found.
2510
+ * If this value is too low to reach the destination at all,
2511
+ * it can lead to slow routing performance.
2512
+ *
2513
+ */
2514
+ maxTransfers?: number;
2515
+ /**
2516
+ * The maximum travel time in minutes.
2517
+ * If not provided, the routing uses the value
2518
+ * hardcoded in the server which is usually quite high.
2519
+ *
2520
+ * *Warning*: Use with care. Setting this too low can lead to
2521
+ * optimal (e.g. the least transfers) journeys not being found.
2522
+ * If this value is too low to reach the destination at all,
2523
+ * it can lead to slow routing performance.
2524
+ *
2525
+ */
2526
+ maxTravelTime?: number;
2527
+ /**
2528
+ * Optional. Default is 0 minutes.
2529
+ *
2530
+ * Minimum transfer time for each transfer in minutes.
2531
+ *
2532
+ */
2533
+ minTransferTime?: number;
2534
+ /**
2535
+ * geo location as latitude;longitude
2536
+ */
2537
+ one: string;
2538
+ /**
2539
+ * Optional. Default is `FOOT`.
2540
+ *
2541
+ * Accessibility profile to use for pedestrian routing in transfers
2542
+ * between transit connections and the first and last mile respectively.
2543
+ *
2544
+ */
2545
+ pedestrianProfile?: PedestrianProfile;
2546
+ /**
2547
+ * Optional
2548
+ *
2549
+ * Average speed for pedestrian routing.
2550
+ *
2551
+ */
2552
+ pedestrianSpeed?: PedestrianSpeed;
2553
+ /**
2554
+ * Optional. Default is `WALK`. Does not apply to direct connections (see `directMode`).
2555
+ *
2556
+ * A list of modes that are allowed to be used for the last mile, i.e. from the last transit stop to the target coordinates. Example: `WALK,BIKE_SHARING`.
2557
+ *
2558
+ */
2559
+ postTransitModes?: Array<Mode>;
2560
+ /**
2561
+ * Optional. Default is `WALK`. Does not apply to direct connections (see `directMode`).
2562
+ *
2563
+ * A list of modes that are allowed to be used for the first mile, i.e. from the coordinates to the first transit stop. Example: `WALK,BIKE_SHARING`.
2564
+ *
2565
+ */
2566
+ preTransitModes?: Array<Mode>;
2567
+ /**
2568
+ * Optional. Default is `false`.
2569
+ *
2570
+ * If set to `true`, all used transit trips are required to allow bike carriage.
2571
+ *
2572
+ */
2573
+ requireBikeTransport?: boolean;
2574
+ /**
2575
+ * Optional. Default is `false`.
2576
+ *
2577
+ * If set to `true`, all used transit trips are required to allow car carriage.
2578
+ *
2579
+ */
2580
+ requireCarTransport?: boolean;
2581
+ /**
2582
+ * Optional. Defaults to the current time.
2583
+ *
2584
+ * Departure time ($arriveBy=false) / arrival date ($arriveBy=true),
2585
+ *
2586
+ */
2587
+ time?: string;
2588
+ /**
2589
+ * Optional. Default is 1.0
2590
+ *
2591
+ * Factor to multiply minimum required transfer times with.
2592
+ * Values smaller than 1.0 are not supported.
2593
+ *
2594
+ */
2595
+ transferTimeFactor?: number;
2596
+ /**
2597
+ * Optional. Default is `TRANSIT` which allows all transit modes (no restriction).
2598
+ * Allowed modes for the transit part. If empty, no transit connections will be computed.
2599
+ * For example, this can be used to allow only `SUBURBAN,SUBWAY,TRAM`.
2600
+ *
2601
+ */
2602
+ transitModes?: Array<Mode>;
2603
+ /**
2604
+ * Optional. Default is `false`.
2605
+ *
2606
+ * Whether to use transfers routed on OpenStreetMap data.
2607
+ *
2608
+ */
2609
+ useRoutedTransfers?: boolean;
2610
+ /**
2611
+ * Optional. Default is `false`.
2612
+ * If true, the response includes the distance in meters
2613
+ * for each path. This requires path reconstruction and
2614
+ * is slower than duration-only queries.
2615
+ *
2616
+ * `withDistance` is currently limited to street routing.
2617
+ *
2618
+ */
2619
+ withDistance?: boolean;
2620
+ };
2621
+ };
2622
+ type OneToManyIntermodalResponse2 = (OneToManyIntermodalResponse);
2623
+ type OneToManyIntermodalError = (Error);
2624
+ type OneToManyIntermodalPostData = {
2625
+ body: OneToManyIntermodalParams;
2626
+ };
2627
+ type OneToManyIntermodalPostResponse = (OneToManyIntermodalResponse);
2628
+ type OneToManyIntermodalPostError = (Error);
2014
2629
  type OneToAllData = {
2015
2630
  query: {
2016
2631
  /**
@@ -2260,6 +2875,13 @@ type GeocodeResponse = (Array<Match>);
2260
2875
  type GeocodeError = (Error);
2261
2876
  type TripData = {
2262
2877
  query: {
2878
+ /**
2879
+ * Controls if `legGeometry` is returned for transit legs.
2880
+ *
2881
+ * The default value is `true`.
2882
+ *
2883
+ */
2884
+ detailedLegs?: boolean;
2263
2885
  /**
2264
2886
  * Optional. Default is `true`.
2265
2887
  *
@@ -2289,7 +2911,7 @@ type TripData = {
2289
2911
  type TripResponse = (Itinerary);
2290
2912
  type TripError = (Error);
2291
2913
  type StoptimesData = {
2292
- query: {
2914
+ query?: {
2293
2915
  /**
2294
2916
  * Optional. Default is `false`.
2295
2917
  *
@@ -2298,6 +2920,15 @@ type StoptimesData = {
2298
2920
  *
2299
2921
  */
2300
2922
  arriveBy?: boolean;
2923
+ /**
2924
+ * Anchor coordinate. Format: latitude,longitude pair.
2925
+ * Used as fallback when "stopId" is missing or can't be found.
2926
+ * If both are provided and "stopId" resolves, "stopId" is used.
2927
+ * If "stopId" does not resolve, "center" is used instead. "radius" is
2928
+ * required when querying by "center" (i.e. without a valid "stopId").
2929
+ *
2930
+ */
2931
+ center?: string;
2301
2932
  /**
2302
2933
  * This parameter will be ignored in case `pageCursor` is set.
2303
2934
  *
@@ -2341,9 +2972,11 @@ type StoptimesData = {
2341
2972
  */
2342
2973
  mode?: Array<Mode>;
2343
2974
  /**
2344
- * the number of events
2975
+ * Minimum number of events to return. If both `n` and `window`
2976
+ * are provided, the API uses whichever returns more events.
2977
+ *
2345
2978
  */
2346
- n: number;
2979
+ n?: number;
2347
2980
  /**
2348
2981
  * Use the cursor to go to the next "page" of stop times.
2349
2982
  * Copy the cursor from the last response and keep the original request as is.
@@ -2365,12 +2998,19 @@ type StoptimesData = {
2365
2998
  /**
2366
2999
  * stop id of the stop to retrieve departures/arrivals for
2367
3000
  */
2368
- stopId: string;
3001
+ stopId?: string;
2369
3002
  /**
2370
3003
  * Optional. Defaults to the current time.
2371
3004
  *
2372
3005
  */
2373
3006
  time?: string;
3007
+ /**
3008
+ * Optional. Window in seconds around `time`.
3009
+ * Limiting the response to those that are at most `window` seconds aways in time.
3010
+ * If both `n` and `window` are set, it uses whichever returns more.
3011
+ *
3012
+ */
3013
+ window?: number;
2374
3014
  /**
2375
3015
  * Optional. Default is `true`. If set to `false`, alerts are omitted in the metadata of place for all stopTimes.
2376
3016
  */
@@ -2424,6 +3064,10 @@ type TripsData = {
2424
3064
  * latitude,longitude pair of the lower right coordinate
2425
3065
  */
2426
3066
  min: string;
3067
+ /**
3068
+ * precision of returned polylines. Recommended to set based on zoom: `zoom >= 12 ? 5 : zoom >= 9 ? 4 : 3`
3069
+ */
3070
+ precision?: number;
2427
3071
  /**
2428
3072
  * start of the time window
2429
3073
  */
@@ -2449,7 +3093,7 @@ type InitialResponse = ({
2449
3093
  * zoom level
2450
3094
  */
2451
3095
  zoom: number;
2452
- serverConfig?: ServerConfig;
3096
+ serverConfig: ServerConfig;
2453
3097
  });
2454
3098
  type InitialError = (Error);
2455
3099
  type StopsData = {
@@ -2486,6 +3130,40 @@ type LevelsData = {
2486
3130
  };
2487
3131
  type LevelsResponse = (Array<(number)>);
2488
3132
  type LevelsError = (Error);
3133
+ type RoutesData = {
3134
+ query: {
3135
+ /**
3136
+ * language tags as used in OpenStreetMap / GTFS
3137
+ * (usually BCP-47 / ISO 639-1, or ISO 639-2 if there's no ISO 639-1)
3138
+ *
3139
+ */
3140
+ language?: Array<(string)>;
3141
+ /**
3142
+ * latitude,longitude pair of the upper left coordinate
3143
+ */
3144
+ max: string;
3145
+ /**
3146
+ * latitude,longitude pair of the lower right coordinate
3147
+ */
3148
+ min: string;
3149
+ /**
3150
+ * current zoom level
3151
+ */
3152
+ zoom: number;
3153
+ };
3154
+ };
3155
+ type RoutesResponse = ({
3156
+ routes: Array<RouteInfo>;
3157
+ polylines: Array<RoutePolyline>;
3158
+ stops: Array<Place>;
3159
+ /**
3160
+ * Indicates whether some routes were filtered out due to
3161
+ * the zoom level.
3162
+ *
3163
+ */
3164
+ zoomFiltered: boolean;
3165
+ });
3166
+ type RoutesError = (Error);
2489
3167
  type RentalsData = {
2490
3168
  query?: {
2491
3169
  /**
@@ -2587,4 +3265,4 @@ type TransfersResponse = ({
2587
3265
  });
2588
3266
  type TransfersError = unknown;
2589
3267
 
2590
- export type { Alert, AlertCause, AlertEffect, AlertSeverityLevel, Area, CyclingSpeed, Direction, Duration, ElevationCosts, EncodedPolyline, Error, FareMedia, FareMediaType, FareProduct, FareTransfer, FareTransferRule, GeocodeData, GeocodeError, GeocodeResponse, InitialError, InitialResponse, Itinerary, Leg, LevelsData, LevelsError, LevelsResponse, LocationType, Match, Mode, MultiPolygon, OneToAllData, OneToAllError, OneToAllResponse, OneToManyData, OneToManyError, OneToManyParams, OneToManyResponse, PedestrianProfile, PedestrianSpeed, PickupDropoffType, Place, PlanData, PlanError, PlanResponse, Reachable, ReachablePlace, Rental, RentalFormFactor, RentalPropulsionType, RentalProvider, RentalProviderGroup, RentalReturnConstraint, RentalStation, RentalVehicle, RentalVehicleType, RentalZone, RentalZoneRestrictions, RentalsData, RentalsError, RentalsResponse, ReverseGeocodeData, ReverseGeocodeError, ReverseGeocodeResponse, RiderCategory, ServerConfig, StepInstruction, StopTime, StopsData, StopsError, StopsResponse, StoptimesData, StoptimesError, StoptimesResponse, TimeRange, Token, Transfer, TransfersData, TransfersError, TransfersResponse, TripData, TripError, TripInfo, TripResponse, TripSegment, TripsData, TripsError, TripsResponse, VertexType };
3268
+ export type { Alert, AlertCause, AlertEffect, AlertSeverityLevel, Area, Category, CyclingSpeed, Direction, Duration, ElevationCosts, EncodedPolyline, Error, FareMedia, FareMediaType, FareProduct, FareTransfer, FareTransferRule, GeocodeData, GeocodeError, GeocodeResponse, InitialError, InitialResponse, Itinerary, Leg, LevelsData, LevelsError, LevelsResponse, LocationType, Match, Mode, MultiPolygon, OneToAllData, OneToAllError, OneToAllResponse, OneToManyData, OneToManyError, OneToManyIntermodalData, OneToManyIntermodalError, OneToManyIntermodalParams, OneToManyIntermodalPostData, OneToManyIntermodalPostError, OneToManyIntermodalPostResponse, OneToManyIntermodalResponse, OneToManyIntermodalResponse2, OneToManyParams, OneToManyPostData, OneToManyPostError, OneToManyPostResponse, OneToManyResponse, ParetoSet, ParetoSetEntry, PedestrianProfile, PedestrianSpeed, PickupDropoffType, Place, PlanData, PlanError, PlanResponse, Reachable, ReachablePlace, Rental, RentalFormFactor, RentalPropulsionType, RentalProvider, RentalProviderGroup, RentalReturnConstraint, RentalStation, RentalVehicle, RentalVehicleType, RentalZone, RentalZoneRestrictions, RentalsData, RentalsError, RentalsResponse, ReverseGeocodeData, ReverseGeocodeError, ReverseGeocodeResponse, RiderCategory, RouteColor, RouteInfo, RoutePathSource, RoutePolyline, RouteSegment, RoutesData, RoutesError, RoutesResponse, ServerConfig, StepInstruction, StopTime, StopsData, StopsError, StopsResponse, StoptimesData, StoptimesError, StoptimesResponse, TimeRange, Token, Transfer, TransfersData, TransfersError, TransfersResponse, TransitRouteInfo, TripData, TripError, TripInfo, TripResponse, TripSegment, TripsData, TripsError, TripsResponse, VertexType };