@motis-project/motis-client 2.0.92 → 2.1.2
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/chunk-7PIP6KRC.js +1161 -0
- package/dist/chunk-IHFNO6R3.js +62 -62
- package/dist/chunk-RM52T2X5.js +917 -1056
- package/dist/index.d.ts +3 -128
- package/dist/index.js +103 -103
- package/dist/schemas.gen.d.ts +880 -1051
- package/dist/schemas.gen.js +75 -75
- package/dist/services.gen.d.ts +17 -85
- package/dist/services.gen.js +27 -27
- package/dist/types.gen.d.ts +1693 -1790
- package/dist/types.gen.js +1 -1
- package/package.json +1 -1
package/dist/chunk-RM52T2X5.js
CHANGED
|
@@ -1,297 +1,270 @@
|
|
|
1
1
|
// openapi/schemas.gen.ts
|
|
2
2
|
var AlertCauseSchema = {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
'UNKNOWN_CAUSE',
|
|
7
|
-
'OTHER_CAUSE',
|
|
8
|
-
'TECHNICAL_PROBLEM',
|
|
9
|
-
'STRIKE',
|
|
10
|
-
'DEMONSTRATION',
|
|
11
|
-
'ACCIDENT',
|
|
12
|
-
'HOLIDAY',
|
|
13
|
-
'WEATHER',
|
|
14
|
-
'MAINTENANCE',
|
|
15
|
-
'CONSTRUCTION',
|
|
16
|
-
'POLICE_ACTIVITY',
|
|
17
|
-
'MEDICAL_EMERGENCY'
|
|
18
|
-
]
|
|
3
|
+
description: "Cause of this alert.",
|
|
4
|
+
type: "string",
|
|
5
|
+
enum: ["UNKNOWN_CAUSE", "OTHER_CAUSE", "TECHNICAL_PROBLEM", "STRIKE", "DEMONSTRATION", "ACCIDENT", "HOLIDAY", "WEATHER", "MAINTENANCE", "CONSTRUCTION", "POLICE_ACTIVITY", "MEDICAL_EMERGENCY"]
|
|
19
6
|
};
|
|
20
7
|
var AlertEffectSchema = {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'NO_SERVICE',
|
|
25
|
-
'REDUCED_SERVICE',
|
|
26
|
-
'SIGNIFICANT_DELAYS',
|
|
27
|
-
'DETOUR',
|
|
28
|
-
'ADDITIONAL_SERVICE',
|
|
29
|
-
'MODIFIED_SERVICE',
|
|
30
|
-
'OTHER_EFFECT',
|
|
31
|
-
'UNKNOWN_EFFECT',
|
|
32
|
-
'STOP_MOVED',
|
|
33
|
-
'NO_EFFECT',
|
|
34
|
-
'ACCESSIBILITY_ISSUE'
|
|
35
|
-
]
|
|
8
|
+
description: "The effect of this problem on the affected entity.",
|
|
9
|
+
type: "string",
|
|
10
|
+
enum: ["NO_SERVICE", "REDUCED_SERVICE", "SIGNIFICANT_DELAYS", "DETOUR", "ADDITIONAL_SERVICE", "MODIFIED_SERVICE", "OTHER_EFFECT", "UNKNOWN_EFFECT", "STOP_MOVED", "NO_EFFECT", "ACCESSIBILITY_ISSUE"]
|
|
36
11
|
};
|
|
37
12
|
var AlertSeverityLevelSchema = {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
13
|
+
description: "The severity of the alert.",
|
|
14
|
+
type: "string",
|
|
15
|
+
enum: ["UNKNOWN_SEVERITY", "INFO", "WARNING", "SEVERE"]
|
|
41
16
|
};
|
|
42
17
|
var TimeRangeSchema = {
|
|
43
|
-
|
|
18
|
+
description: `A time interval.
|
|
44
19
|
The interval is considered active at time t if t is greater than or equal to the start time and less than the end time.
|
|
45
20
|
`,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
21
|
+
type: "object",
|
|
22
|
+
properties: {
|
|
23
|
+
start: {
|
|
24
|
+
description: `If missing, the interval starts at minus infinity.
|
|
50
25
|
If a TimeRange is provided, either start or end must be provided - both fields cannot be empty.
|
|
51
26
|
`,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
27
|
+
type: "string",
|
|
28
|
+
format: "date-time"
|
|
29
|
+
},
|
|
30
|
+
end: {
|
|
31
|
+
description: `If missing, the interval ends at plus infinity.
|
|
57
32
|
If a TimeRange is provided, either start or end must be provided - both fields cannot be empty.
|
|
58
33
|
`,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
34
|
+
type: "string",
|
|
35
|
+
format: "date-time"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
63
38
|
};
|
|
64
39
|
var AlertSchema = {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
40
|
+
description: "An alert, indicating some sort of incident in the public transit network.",
|
|
41
|
+
type: "object",
|
|
42
|
+
required: ["headerText", "descriptionText"],
|
|
43
|
+
properties: {
|
|
44
|
+
communicationPeriod: {
|
|
45
|
+
description: `Time when the alert should be shown to the user.
|
|
71
46
|
If missing, the alert will be shown as long as it appears in the feed.
|
|
72
47
|
If multiple ranges are given, the alert will be shown during all of them.
|
|
73
48
|
`,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
49
|
+
type: "array",
|
|
50
|
+
items: {
|
|
51
|
+
"$ref": "#/components/schemas/TimeRange"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
impactPeriod: {
|
|
55
|
+
description: "Time when the services are affected by the disruption mentioned in the alert.",
|
|
56
|
+
type: "array",
|
|
57
|
+
items: {
|
|
58
|
+
"$ref": "#/components/schemas/TimeRange"
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
cause: {
|
|
62
|
+
"$ref": "#/components/schemas/AlertCause"
|
|
63
|
+
},
|
|
64
|
+
causeDetail: {
|
|
65
|
+
type: "string",
|
|
66
|
+
description: `Description of the cause of the alert that allows for agency-specific language;
|
|
92
67
|
more specific than the Cause.
|
|
93
68
|
`
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
69
|
+
},
|
|
70
|
+
effect: {
|
|
71
|
+
"$ref": "#/components/schemas/AlertEffect"
|
|
72
|
+
},
|
|
73
|
+
effectDetail: {
|
|
74
|
+
type: "string",
|
|
75
|
+
description: `Description of the effect of the alert that allows for agency-specific language;
|
|
101
76
|
more specific than the Effect.
|
|
102
77
|
`
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
78
|
+
},
|
|
79
|
+
url: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: "The URL which provides additional information about the alert."
|
|
82
|
+
},
|
|
83
|
+
headerText: {
|
|
84
|
+
type: "string",
|
|
85
|
+
description: `Header for the alert. This plain-text string will be highlighted, for example in boldface.
|
|
111
86
|
`
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
87
|
+
},
|
|
88
|
+
descriptionText: {
|
|
89
|
+
type: "string",
|
|
90
|
+
description: `Description for the alert.
|
|
116
91
|
This plain-text string will be formatted as the body of the alert (or shown on an explicit "expand" request by the user).
|
|
117
92
|
The information in the description should add to the information of the header.
|
|
118
93
|
`
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
94
|
+
},
|
|
95
|
+
ttsHeaderText: {
|
|
96
|
+
type: "string",
|
|
97
|
+
description: `Text containing the alert's header to be used for text-to-speech implementations.
|
|
123
98
|
This field is the text-to-speech version of header_text.
|
|
124
99
|
It should contain the same information as headerText but formatted such that it can read as text-to-speech
|
|
125
100
|
(for example, abbreviations removed, numbers spelled out, etc.)
|
|
126
101
|
`
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
102
|
+
},
|
|
103
|
+
ttsDescriptionText: {
|
|
104
|
+
type: "string",
|
|
105
|
+
description: `Text containing a description for the alert to be used for text-to-speech implementations.
|
|
131
106
|
This field is the text-to-speech version of description_text.
|
|
132
107
|
It should contain the same information as description_text but formatted such that it can be read as text-to-speech
|
|
133
108
|
(for example, abbreviations removed, numbers spelled out, etc.)
|
|
134
109
|
`
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
110
|
+
},
|
|
111
|
+
severityLevel: {
|
|
112
|
+
description: "Severity of the alert.",
|
|
113
|
+
"$ref": "#/components/schemas/AlertSeverityLevel"
|
|
114
|
+
},
|
|
115
|
+
imageUrl: {
|
|
116
|
+
description: "String containing an URL linking to an image.",
|
|
117
|
+
type: "string"
|
|
118
|
+
},
|
|
119
|
+
imageMediaType: {
|
|
120
|
+
description: `IANA media type as to specify the type of image to be displayed. The type must start with "image/"
|
|
146
121
|
`,
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
122
|
+
type: "string"
|
|
123
|
+
},
|
|
124
|
+
imageAlternativeText: {
|
|
125
|
+
description: `Text describing the appearance of the linked image in the image field
|
|
151
126
|
(e.g., in case the image can't be displayed or the user can't see the image for accessibility reasons).
|
|
152
127
|
See the HTML spec for alt image text.
|
|
153
128
|
`,
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
129
|
+
type: "string"
|
|
130
|
+
}
|
|
131
|
+
}
|
|
157
132
|
};
|
|
158
133
|
var DurationSchema = {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
134
|
+
description: "Object containing duration if a path was found or none if no path was found",
|
|
135
|
+
type: "object",
|
|
136
|
+
properties: {
|
|
137
|
+
duration: {
|
|
138
|
+
type: "number",
|
|
139
|
+
description: "duration in seconds if a path was found, otherwise missing"
|
|
140
|
+
}
|
|
141
|
+
}
|
|
167
142
|
};
|
|
168
143
|
var AreaSchema = {
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
144
|
+
description: "Administrative area",
|
|
145
|
+
type: "object",
|
|
146
|
+
required: ["name", "adminLevel", "matched"],
|
|
147
|
+
properties: {
|
|
148
|
+
name: {
|
|
149
|
+
type: "string",
|
|
150
|
+
description: "Name of the area"
|
|
151
|
+
},
|
|
152
|
+
adminLevel: {
|
|
153
|
+
type: "number",
|
|
154
|
+
description: `[OpenStreetMap \`admin_level\`](https://wiki.openstreetmap.org/wiki/Key:admin_level)
|
|
180
155
|
of the area
|
|
181
156
|
`
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
157
|
+
},
|
|
158
|
+
matched: {
|
|
159
|
+
type: "boolean",
|
|
160
|
+
description: "Whether this area was matched by the input text"
|
|
161
|
+
},
|
|
162
|
+
unique: {
|
|
163
|
+
type: "boolean",
|
|
164
|
+
description: `Set for the first area after the \`default\` area that distinguishes areas
|
|
190
165
|
if the match is ambiguous regarding (\`default\` area + place name / street [+ house number]).
|
|
191
166
|
`
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
167
|
+
},
|
|
168
|
+
default: {
|
|
169
|
+
type: "boolean",
|
|
170
|
+
description: "Whether this area should be displayed as default area (area with admin level closest 7)"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
199
173
|
};
|
|
200
174
|
var TokenSchema = {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
175
|
+
description: "Matched token range (from index, length)",
|
|
176
|
+
type: "array",
|
|
177
|
+
minItems: 2,
|
|
178
|
+
maxItems: 2,
|
|
179
|
+
items: {
|
|
180
|
+
type: "number"
|
|
181
|
+
}
|
|
208
182
|
};
|
|
209
183
|
var LocationTypeSchema = {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
184
|
+
description: "location type",
|
|
185
|
+
type: "string",
|
|
186
|
+
enum: ["ADDRESS", "PLACE", "STOP"]
|
|
213
187
|
};
|
|
214
188
|
var MatchSchema = {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
189
|
+
description: "GeoCoding match",
|
|
190
|
+
type: "object",
|
|
191
|
+
required: ["type", "name", "id", "lat", "lon", "tokens", "areas", "score"],
|
|
192
|
+
properties: {
|
|
193
|
+
type: {
|
|
194
|
+
"$ref": "#/components/schemas/LocationType"
|
|
195
|
+
},
|
|
196
|
+
tokens: {
|
|
197
|
+
description: "list of non-overlapping tokens that were matched",
|
|
198
|
+
type: "array",
|
|
199
|
+
items: {
|
|
200
|
+
"$ref": "#/components/schemas/Token"
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
name: {
|
|
204
|
+
description: "name of the location (transit stop / PoI / address)",
|
|
205
|
+
type: "string"
|
|
206
|
+
},
|
|
207
|
+
id: {
|
|
208
|
+
description: "unique ID of the location",
|
|
209
|
+
type: "string"
|
|
210
|
+
},
|
|
211
|
+
lat: {
|
|
212
|
+
description: "latitude",
|
|
213
|
+
type: "number"
|
|
214
|
+
},
|
|
215
|
+
lon: {
|
|
216
|
+
description: "longitude",
|
|
217
|
+
type: "number"
|
|
218
|
+
},
|
|
219
|
+
level: {
|
|
220
|
+
description: `level according to OpenStreetMap
|
|
247
221
|
(at the moment only for public transport)
|
|
248
222
|
`,
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
}
|
|
223
|
+
type: "number"
|
|
224
|
+
},
|
|
225
|
+
street: {
|
|
226
|
+
description: "street name",
|
|
227
|
+
type: "string"
|
|
228
|
+
},
|
|
229
|
+
houseNumber: {
|
|
230
|
+
description: "house number",
|
|
231
|
+
type: "string"
|
|
232
|
+
},
|
|
233
|
+
zip: {
|
|
234
|
+
description: "zip code",
|
|
235
|
+
type: "string"
|
|
236
|
+
},
|
|
237
|
+
areas: {
|
|
238
|
+
description: "list of areas",
|
|
239
|
+
type: "array",
|
|
240
|
+
items: {
|
|
241
|
+
"$ref": "#/components/schemas/Area"
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
score: {
|
|
245
|
+
description: "score according to the internal scoring system (the scoring algorithm might change in the future)",
|
|
246
|
+
type: "number"
|
|
247
|
+
}
|
|
248
|
+
}
|
|
276
249
|
};
|
|
277
250
|
var ElevationCostsSchema = {
|
|
278
|
-
|
|
251
|
+
description: `Different elevation cost profiles for street routing.
|
|
279
252
|
Using a elevation cost profile will prefer routes with a smaller incline and smaller difference in elevation, even if the routed way is longer.
|
|
280
253
|
|
|
281
254
|
- \`NONE\`: Ignore elevation data for routing. This is the default behavior
|
|
282
255
|
- \`LOW\`: Add a low penalty for inclines. This will favor longer paths, if the elevation increase and incline are smaller.
|
|
283
256
|
- \`HIGH\`: Add a high penalty for inclines. This will favor even longer paths, if the elevation increase and incline are smaller.
|
|
284
257
|
`,
|
|
285
|
-
|
|
286
|
-
|
|
258
|
+
type: "string",
|
|
259
|
+
enum: ["NONE", "LOW", "HIGH"]
|
|
287
260
|
};
|
|
288
261
|
var PedestrianProfileSchema = {
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
262
|
+
description: "Different accessibility profiles for pedestrians.",
|
|
263
|
+
type: "string",
|
|
264
|
+
enum: ["FOOT", "WHEELCHAIR"]
|
|
292
265
|
};
|
|
293
266
|
var ModeSchema = {
|
|
294
|
-
|
|
267
|
+
description: `# Street modes
|
|
295
268
|
|
|
296
269
|
- \`WALK\`
|
|
297
270
|
- \`BIKE\`
|
|
@@ -322,168 +295,139 @@ var ModeSchema = {
|
|
|
322
295
|
- \`FUNICULAR\`: Funicular. Any rail system designed for steep inclines.
|
|
323
296
|
- \`AREAL_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.
|
|
324
297
|
`,
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
'WALK',
|
|
328
|
-
'BIKE',
|
|
329
|
-
'RENTAL',
|
|
330
|
-
'CAR',
|
|
331
|
-
'CAR_PARKING',
|
|
332
|
-
'CAR_DROPOFF',
|
|
333
|
-
'ODM',
|
|
334
|
-
'FLEX',
|
|
335
|
-
'TRANSIT',
|
|
336
|
-
'TRAM',
|
|
337
|
-
'SUBWAY',
|
|
338
|
-
'FERRY',
|
|
339
|
-
'AIRPLANE',
|
|
340
|
-
'METRO',
|
|
341
|
-
'BUS',
|
|
342
|
-
'COACH',
|
|
343
|
-
'RAIL',
|
|
344
|
-
'HIGHSPEED_RAIL',
|
|
345
|
-
'LONG_DISTANCE',
|
|
346
|
-
'NIGHT_RAIL',
|
|
347
|
-
'REGIONAL_FAST_RAIL',
|
|
348
|
-
'REGIONAL_RAIL',
|
|
349
|
-
'CABLE_CAR',
|
|
350
|
-
'FUNICULAR',
|
|
351
|
-
'AREAL_LIFT',
|
|
352
|
-
'OTHER'
|
|
353
|
-
]
|
|
298
|
+
type: "string",
|
|
299
|
+
enum: ["WALK", "BIKE", "RENTAL", "CAR", "CAR_PARKING", "CAR_DROPOFF", "ODM", "FLEX", "TRANSIT", "TRAM", "SUBWAY", "FERRY", "AIRPLANE", "METRO", "BUS", "COACH", "RAIL", "HIGHSPEED_RAIL", "LONG_DISTANCE", "NIGHT_RAIL", "REGIONAL_FAST_RAIL", "REGIONAL_RAIL", "CABLE_CAR", "FUNICULAR", "AREAL_LIFT", "OTHER"]
|
|
354
300
|
};
|
|
355
301
|
var VertexTypeSchema = {
|
|
356
|
-
|
|
357
|
-
|
|
302
|
+
type: "string",
|
|
303
|
+
description: `- \`NORMAL\` - latitude / longitude coordinate or address
|
|
358
304
|
- \`BIKESHARE\` - bike sharing station
|
|
359
305
|
- \`TRANSIT\` - transit stop
|
|
360
306
|
`,
|
|
361
|
-
|
|
307
|
+
enum: ["NORMAL", "BIKESHARE", "TRANSIT"]
|
|
362
308
|
};
|
|
363
309
|
var PickupDropoffTypeSchema = {
|
|
364
|
-
|
|
365
|
-
|
|
310
|
+
type: "string",
|
|
311
|
+
description: `- \`NORMAL\` - entry/exit is possible normally
|
|
366
312
|
- \`NOT_ALLOWED\` - entry/exit is not allowed
|
|
367
313
|
`,
|
|
368
|
-
|
|
314
|
+
enum: ["NORMAL", "NOT_ALLOWED"]
|
|
369
315
|
};
|
|
370
316
|
var PlaceSchema = {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
317
|
+
type: "object",
|
|
318
|
+
required: ["name", "lat", "lon", "level"],
|
|
319
|
+
properties: {
|
|
320
|
+
name: {
|
|
321
|
+
description: "name of the transit stop / PoI / address",
|
|
322
|
+
type: "string"
|
|
323
|
+
},
|
|
324
|
+
stopId: {
|
|
325
|
+
description: "The ID of the stop. This is often something that users don't care about.",
|
|
326
|
+
type: "string"
|
|
327
|
+
},
|
|
328
|
+
lat: {
|
|
329
|
+
description: "latitude",
|
|
330
|
+
type: "number"
|
|
331
|
+
},
|
|
332
|
+
lon: {
|
|
333
|
+
description: "longitude",
|
|
334
|
+
type: "number"
|
|
335
|
+
},
|
|
336
|
+
level: {
|
|
337
|
+
description: "level according to OpenStreetMap",
|
|
338
|
+
type: "number"
|
|
339
|
+
},
|
|
340
|
+
arrival: {
|
|
341
|
+
description: "arrival time",
|
|
342
|
+
type: "string",
|
|
343
|
+
format: "date-time"
|
|
344
|
+
},
|
|
345
|
+
departure: {
|
|
346
|
+
description: "departure time",
|
|
347
|
+
type: "string",
|
|
348
|
+
format: "date-time"
|
|
349
|
+
},
|
|
350
|
+
scheduledArrival: {
|
|
351
|
+
description: "scheduled arrival time",
|
|
352
|
+
type: "string",
|
|
353
|
+
format: "date-time"
|
|
354
|
+
},
|
|
355
|
+
scheduledDeparture: {
|
|
356
|
+
description: "scheduled departure time",
|
|
357
|
+
type: "string",
|
|
358
|
+
format: "date-time"
|
|
359
|
+
},
|
|
360
|
+
scheduledTrack: {
|
|
361
|
+
description: "scheduled track from the static schedule timetable dataset",
|
|
362
|
+
type: "string"
|
|
363
|
+
},
|
|
364
|
+
track: {
|
|
365
|
+
description: `The current track/platform information, updated with real-time updates if available.
|
|
420
366
|
Can be missing if neither real-time updates nor the schedule timetable contains track information.
|
|
421
367
|
`,
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
}
|
|
470
|
-
}
|
|
368
|
+
type: "string"
|
|
369
|
+
},
|
|
370
|
+
description: {
|
|
371
|
+
description: "description of the location that provides more detailed information",
|
|
372
|
+
type: "string"
|
|
373
|
+
},
|
|
374
|
+
vertexType: {
|
|
375
|
+
"$ref": "#/components/schemas/VertexType"
|
|
376
|
+
},
|
|
377
|
+
pickupType: {
|
|
378
|
+
description: "Type of pickup. It could be disallowed due to schedule, skipped stops or cancellations.",
|
|
379
|
+
"$ref": "#/components/schemas/PickupDropoffType"
|
|
380
|
+
},
|
|
381
|
+
dropoffType: {
|
|
382
|
+
description: "Type of dropoff. It could be disallowed due to schedule, skipped stops or cancellations.",
|
|
383
|
+
"$ref": "#/components/schemas/PickupDropoffType"
|
|
384
|
+
},
|
|
385
|
+
cancelled: {
|
|
386
|
+
description: "Whether this stop is cancelled due to the realtime situation.",
|
|
387
|
+
type: "boolean"
|
|
388
|
+
},
|
|
389
|
+
alerts: {
|
|
390
|
+
description: "Alerts for this stop.",
|
|
391
|
+
type: "array",
|
|
392
|
+
items: {
|
|
393
|
+
"$ref": "#/components/schemas/Alert"
|
|
394
|
+
}
|
|
395
|
+
},
|
|
396
|
+
flex: {
|
|
397
|
+
description: "for `FLEX` transports, the flex location area or location group name",
|
|
398
|
+
type: "string"
|
|
399
|
+
},
|
|
400
|
+
flexId: {
|
|
401
|
+
description: "for `FLEX` transports, the flex location area ID or location group ID",
|
|
402
|
+
type: "string"
|
|
403
|
+
},
|
|
404
|
+
flexStartPickupDropOffWindow: {
|
|
405
|
+
description: "Time that on-demand service becomes available",
|
|
406
|
+
type: "string",
|
|
407
|
+
format: "date-time"
|
|
408
|
+
},
|
|
409
|
+
flexEndPickupDropOffWindow: {
|
|
410
|
+
description: "Time that on-demand service ends",
|
|
411
|
+
type: "string",
|
|
412
|
+
format: "date-time"
|
|
413
|
+
}
|
|
414
|
+
}
|
|
471
415
|
};
|
|
472
416
|
var ReachablePlaceSchema = {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
417
|
+
description: "Place reachable by One-to-All",
|
|
418
|
+
type: "object",
|
|
419
|
+
properties: {
|
|
420
|
+
place: {
|
|
421
|
+
"$ref": "#/components/schemas/Place",
|
|
422
|
+
description: "Place reached by One-to-All"
|
|
423
|
+
},
|
|
424
|
+
duration: {
|
|
425
|
+
type: "integer",
|
|
426
|
+
description: "Total travel duration"
|
|
427
|
+
},
|
|
428
|
+
k: {
|
|
429
|
+
type: "integer",
|
|
430
|
+
description: `k is the smallest number, for which a journey with the shortest duration and at most k-1 transfers exist.
|
|
487
431
|
You can think of k as the number of connections used.
|
|
488
432
|
|
|
489
433
|
In more detail:
|
|
@@ -492,413 +436,335 @@ k=0: No connection, e.g. for the one location
|
|
|
492
436
|
k=1: Direct connection
|
|
493
437
|
k=2: Connection with 1 transfer
|
|
494
438
|
`
|
|
495
|
-
|
|
496
|
-
|
|
439
|
+
}
|
|
440
|
+
}
|
|
497
441
|
};
|
|
498
442
|
var ReachableSchema = {
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
443
|
+
description: "Object containing all reachable places by One-to-All search",
|
|
444
|
+
type: "object",
|
|
445
|
+
properties: {
|
|
446
|
+
one: {
|
|
447
|
+
"$ref": "#/components/schemas/Place",
|
|
448
|
+
description: "One location used in One-to-All search"
|
|
449
|
+
},
|
|
450
|
+
all: {
|
|
451
|
+
description: "List of locations reachable by One-to-All",
|
|
452
|
+
type: "array",
|
|
453
|
+
items: {
|
|
454
|
+
"$ref": "#/components/schemas/ReachablePlace"
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
}
|
|
514
458
|
};
|
|
515
459
|
var StopTimeSchema = {
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
place: {
|
|
535
|
-
$ref: '#/components/schemas/Place',
|
|
536
|
-
description: 'information about the stop place and time'
|
|
537
|
-
},
|
|
538
|
-
mode: {
|
|
539
|
-
$ref: '#/components/schemas/Mode',
|
|
540
|
-
description: 'Transport mode for this leg'
|
|
541
|
-
},
|
|
542
|
-
realTime: {
|
|
543
|
-
description: 'Whether there is real-time data about this leg',
|
|
544
|
-
type: 'boolean'
|
|
545
|
-
},
|
|
546
|
-
headsign: {
|
|
547
|
-
description: `For transit legs, the headsign of the bus or train being used.
|
|
460
|
+
description: "departure or arrival event at a stop",
|
|
461
|
+
type: "object",
|
|
462
|
+
required: ["place", "mode", "realTime", "headsign", "agencyId", "agencyName", "agencyUrl", "tripId", "routeShortName", "pickupDropoffType", "cancelled", "tripCancelled", "source"],
|
|
463
|
+
properties: {
|
|
464
|
+
place: {
|
|
465
|
+
"$ref": "#/components/schemas/Place",
|
|
466
|
+
description: "information about the stop place and time"
|
|
467
|
+
},
|
|
468
|
+
mode: {
|
|
469
|
+
"$ref": "#/components/schemas/Mode",
|
|
470
|
+
description: "Transport mode for this leg"
|
|
471
|
+
},
|
|
472
|
+
realTime: {
|
|
473
|
+
description: "Whether there is real-time data about this leg",
|
|
474
|
+
type: "boolean"
|
|
475
|
+
},
|
|
476
|
+
headsign: {
|
|
477
|
+
description: `For transit legs, the headsign of the bus or train being used.
|
|
548
478
|
For non-transit legs, null
|
|
549
479
|
`,
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
}
|
|
591
|
-
}
|
|
480
|
+
type: "string"
|
|
481
|
+
},
|
|
482
|
+
agencyId: {
|
|
483
|
+
type: "string"
|
|
484
|
+
},
|
|
485
|
+
agencyName: {
|
|
486
|
+
type: "string"
|
|
487
|
+
},
|
|
488
|
+
agencyUrl: {
|
|
489
|
+
type: "string"
|
|
490
|
+
},
|
|
491
|
+
routeColor: {
|
|
492
|
+
type: "string"
|
|
493
|
+
},
|
|
494
|
+
routeTextColor: {
|
|
495
|
+
type: "string"
|
|
496
|
+
},
|
|
497
|
+
tripId: {
|
|
498
|
+
type: "string"
|
|
499
|
+
},
|
|
500
|
+
routeShortName: {
|
|
501
|
+
type: "string"
|
|
502
|
+
},
|
|
503
|
+
pickupDropoffType: {
|
|
504
|
+
description: "Type of pickup (for departures) or dropoff (for arrivals), may be disallowed either due to schedule, skipped stops or cancellations",
|
|
505
|
+
"$ref": "#/components/schemas/PickupDropoffType"
|
|
506
|
+
},
|
|
507
|
+
cancelled: {
|
|
508
|
+
description: "Whether the departure/arrival is cancelled due to the realtime situation (either because the stop is skipped or because the entire trip is cancelled).",
|
|
509
|
+
type: "boolean"
|
|
510
|
+
},
|
|
511
|
+
tripCancelled: {
|
|
512
|
+
description: "Whether the entire trip is cancelled due to the realtime situation.",
|
|
513
|
+
type: "boolean"
|
|
514
|
+
},
|
|
515
|
+
source: {
|
|
516
|
+
description: "Filename and line number where this trip is from",
|
|
517
|
+
type: "string"
|
|
518
|
+
}
|
|
519
|
+
}
|
|
592
520
|
};
|
|
593
521
|
var TripInfoSchema = {
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
522
|
+
description: "trip id and name",
|
|
523
|
+
type: "object",
|
|
524
|
+
required: ["tripId", "routeShortName"],
|
|
525
|
+
properties: {
|
|
526
|
+
tripId: {
|
|
527
|
+
description: "trip ID (dataset trip id prefixed with the dataset tag)",
|
|
528
|
+
type: "string"
|
|
529
|
+
},
|
|
530
|
+
routeShortName: {
|
|
531
|
+
description: "trip display name",
|
|
532
|
+
type: "string"
|
|
533
|
+
}
|
|
534
|
+
}
|
|
607
535
|
};
|
|
608
536
|
var TripSegmentSchema = {
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
type: 'string',
|
|
666
|
-
format: 'date-time'
|
|
667
|
-
},
|
|
668
|
-
realTime: {
|
|
669
|
-
description: 'Whether there is real-time data about this leg',
|
|
670
|
-
type: 'boolean'
|
|
671
|
-
},
|
|
672
|
-
polyline: {
|
|
673
|
-
description:
|
|
674
|
-
'Google polyline encoded coordinate sequence (with precision 5) where the trip travels on this segment.',
|
|
675
|
-
type: 'string'
|
|
676
|
-
}
|
|
677
|
-
}
|
|
537
|
+
description: "trip segment between two stops to show a trip on a map",
|
|
538
|
+
type: "object",
|
|
539
|
+
required: ["trips", "mode", "distance", "from", "to", "departure", "arrival", "scheduledArrival", "scheduledDeparture", "realTime", "polyline"],
|
|
540
|
+
properties: {
|
|
541
|
+
trips: {
|
|
542
|
+
type: "array",
|
|
543
|
+
items: {
|
|
544
|
+
"$ref": "#/components/schemas/TripInfo"
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
routeColor: {
|
|
548
|
+
type: "string"
|
|
549
|
+
},
|
|
550
|
+
mode: {
|
|
551
|
+
"$ref": "#/components/schemas/Mode",
|
|
552
|
+
description: "Transport mode for this leg"
|
|
553
|
+
},
|
|
554
|
+
distance: {
|
|
555
|
+
type: "number",
|
|
556
|
+
description: "distance in meters"
|
|
557
|
+
},
|
|
558
|
+
from: {
|
|
559
|
+
"$ref": "#/components/schemas/Place"
|
|
560
|
+
},
|
|
561
|
+
to: {
|
|
562
|
+
"$ref": "#/components/schemas/Place"
|
|
563
|
+
},
|
|
564
|
+
departure: {
|
|
565
|
+
description: "departure time",
|
|
566
|
+
type: "string",
|
|
567
|
+
format: "date-time"
|
|
568
|
+
},
|
|
569
|
+
arrival: {
|
|
570
|
+
description: "arrival time",
|
|
571
|
+
type: "string",
|
|
572
|
+
format: "date-time"
|
|
573
|
+
},
|
|
574
|
+
scheduledDeparture: {
|
|
575
|
+
description: "scheduled departure time",
|
|
576
|
+
type: "string",
|
|
577
|
+
format: "date-time"
|
|
578
|
+
},
|
|
579
|
+
scheduledArrival: {
|
|
580
|
+
description: "scheduled arrival time",
|
|
581
|
+
type: "string",
|
|
582
|
+
format: "date-time"
|
|
583
|
+
},
|
|
584
|
+
realTime: {
|
|
585
|
+
description: "Whether there is real-time data about this leg",
|
|
586
|
+
type: "boolean"
|
|
587
|
+
},
|
|
588
|
+
polyline: {
|
|
589
|
+
description: "Google polyline encoded coordinate sequence (with precision 5) where the trip travels on this segment.",
|
|
590
|
+
type: "string"
|
|
591
|
+
}
|
|
592
|
+
}
|
|
678
593
|
};
|
|
679
594
|
var DirectionSchema = {
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
'DEPART',
|
|
683
|
-
'HARD_LEFT',
|
|
684
|
-
'LEFT',
|
|
685
|
-
'SLIGHTLY_LEFT',
|
|
686
|
-
'CONTINUE',
|
|
687
|
-
'SLIGHTLY_RIGHT',
|
|
688
|
-
'RIGHT',
|
|
689
|
-
'HARD_RIGHT',
|
|
690
|
-
'CIRCLE_CLOCKWISE',
|
|
691
|
-
'CIRCLE_COUNTERCLOCKWISE',
|
|
692
|
-
'STAIRS',
|
|
693
|
-
'ELEVATOR',
|
|
694
|
-
'UTURN_LEFT',
|
|
695
|
-
'UTURN_RIGHT'
|
|
696
|
-
]
|
|
595
|
+
type: "string",
|
|
596
|
+
enum: ["DEPART", "HARD_LEFT", "LEFT", "SLIGHTLY_LEFT", "CONTINUE", "SLIGHTLY_RIGHT", "RIGHT", "HARD_RIGHT", "CIRCLE_CLOCKWISE", "CIRCLE_COUNTERCLOCKWISE", "STAIRS", "ELEVATOR", "UTURN_LEFT", "UTURN_RIGHT"]
|
|
697
597
|
};
|
|
698
598
|
var EncodedPolylineSchema = {
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
599
|
+
type: "object",
|
|
600
|
+
required: ["points", "precision", "length"],
|
|
601
|
+
properties: {
|
|
602
|
+
points: {
|
|
603
|
+
description: "The encoded points of the polyline using the Google polyline encoding.",
|
|
604
|
+
type: "string"
|
|
605
|
+
},
|
|
606
|
+
precision: {
|
|
607
|
+
description: `The precision of the returned polyline (7 for /v1, 6 for /v2)
|
|
708
608
|
Be aware that with precision 7, coordinates with |longitude| > 107.37 are undefined/will overflow.
|
|
709
609
|
`,
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
610
|
+
type: "integer"
|
|
611
|
+
},
|
|
612
|
+
length: {
|
|
613
|
+
description: "The number of points in the string",
|
|
614
|
+
type: "integer",
|
|
615
|
+
minimum: 0
|
|
616
|
+
}
|
|
617
|
+
}
|
|
718
618
|
};
|
|
719
619
|
var StepInstructionSchema = {
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
},
|
|
752
|
-
polyline: {
|
|
753
|
-
$ref: '#/components/schemas/EncodedPolyline'
|
|
754
|
-
},
|
|
755
|
-
streetName: {
|
|
756
|
-
description: 'The name of the street.',
|
|
757
|
-
type: 'string'
|
|
758
|
-
},
|
|
759
|
-
exit: {
|
|
760
|
-
description: `Not implemented!
|
|
620
|
+
type: "object",
|
|
621
|
+
required: ["fromLevel", "toLevel", "polyline", "relativeDirection", "distance", "streetName", "exit", "stayOn", "area"],
|
|
622
|
+
properties: {
|
|
623
|
+
relativeDirection: {
|
|
624
|
+
"$ref": "#/components/schemas/Direction"
|
|
625
|
+
},
|
|
626
|
+
distance: {
|
|
627
|
+
description: "The distance in meters that this step takes.",
|
|
628
|
+
type: "number"
|
|
629
|
+
},
|
|
630
|
+
fromLevel: {
|
|
631
|
+
description: "level where this segment starts, based on OpenStreetMap data",
|
|
632
|
+
type: "number"
|
|
633
|
+
},
|
|
634
|
+
toLevel: {
|
|
635
|
+
description: "level where this segment starts, based on OpenStreetMap data",
|
|
636
|
+
type: "number"
|
|
637
|
+
},
|
|
638
|
+
osmWay: {
|
|
639
|
+
description: "OpenStreetMap way index",
|
|
640
|
+
type: "integer"
|
|
641
|
+
},
|
|
642
|
+
polyline: {
|
|
643
|
+
"$ref": "#/components/schemas/EncodedPolyline"
|
|
644
|
+
},
|
|
645
|
+
streetName: {
|
|
646
|
+
description: "The name of the street.",
|
|
647
|
+
type: "string"
|
|
648
|
+
},
|
|
649
|
+
exit: {
|
|
650
|
+
description: `Not implemented!
|
|
761
651
|
When exiting a highway or traffic circle, the exit name/number.
|
|
762
652
|
`,
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
653
|
+
type: "string"
|
|
654
|
+
},
|
|
655
|
+
stayOn: {
|
|
656
|
+
description: `Not implemented!
|
|
767
657
|
Indicates whether or not a street changes direction at an intersection.
|
|
768
658
|
`,
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
659
|
+
type: "boolean"
|
|
660
|
+
},
|
|
661
|
+
area: {
|
|
662
|
+
description: `Not implemented!
|
|
773
663
|
This step is on an open area, such as a plaza or train platform,
|
|
774
664
|
and thus the directions should say something like "cross"
|
|
775
665
|
`,
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
description: `Experimental. Indicates whether access to this part of the route is restricted.
|
|
666
|
+
type: "boolean"
|
|
667
|
+
},
|
|
668
|
+
toll: {
|
|
669
|
+
description: "Indicates that a fee must be paid by general traffic to use a road, road bridge or road tunnel.",
|
|
670
|
+
type: "boolean"
|
|
671
|
+
},
|
|
672
|
+
accessRestriction: {
|
|
673
|
+
description: `Experimental. Indicates whether access to this part of the route is restricted.
|
|
785
674
|
See: https://wiki.openstreetmap.org/wiki/Conditional_restrictions
|
|
786
675
|
`,
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
676
|
+
type: "string"
|
|
677
|
+
},
|
|
678
|
+
elevationUp: {
|
|
679
|
+
type: "integer",
|
|
680
|
+
description: "incline in meters across this path segment"
|
|
681
|
+
},
|
|
682
|
+
elevationDown: {
|
|
683
|
+
type: "integer",
|
|
684
|
+
description: "decline in meters across this path segment"
|
|
685
|
+
}
|
|
686
|
+
}
|
|
798
687
|
};
|
|
799
688
|
var RentalFormFactorSchema = {
|
|
800
|
-
|
|
801
|
-
|
|
689
|
+
type: "string",
|
|
690
|
+
enum: ["BICYCLE", "CARGO_BICYCLE", "CAR", "MOPED", "SCOOTER_STANDING", "SCOOTER_SEATED", "OTHER"]
|
|
802
691
|
};
|
|
803
692
|
var RentalPropulsionTypeSchema = {
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
'HUMAN',
|
|
807
|
-
'ELECTRIC_ASSIST',
|
|
808
|
-
'ELECTRIC',
|
|
809
|
-
'COMBUSTION',
|
|
810
|
-
'COMBUSTION_DIESEL',
|
|
811
|
-
'HYBRID',
|
|
812
|
-
'PLUG_IN_HYBRID',
|
|
813
|
-
'HYDROGEN_FUEL_CELL'
|
|
814
|
-
]
|
|
693
|
+
type: "string",
|
|
694
|
+
enum: ["HUMAN", "ELECTRIC_ASSIST", "ELECTRIC", "COMBUSTION", "COMBUSTION_DIESEL", "HYBRID", "PLUG_IN_HYBRID", "HYDROGEN_FUEL_CELL"]
|
|
815
695
|
};
|
|
816
696
|
var RentalReturnConstraintSchema = {
|
|
817
|
-
|
|
818
|
-
|
|
697
|
+
type: "string",
|
|
698
|
+
enum: ["NONE", "ANY_STATION", "ROUNDTRIP_STATION"]
|
|
819
699
|
};
|
|
820
700
|
var RentalSchema = {
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
}
|
|
872
|
-
}
|
|
701
|
+
description: "Vehicle rental",
|
|
702
|
+
type: "object",
|
|
703
|
+
required: ["systemId"],
|
|
704
|
+
properties: {
|
|
705
|
+
systemId: {
|
|
706
|
+
type: "string",
|
|
707
|
+
description: "Vehicle share system ID"
|
|
708
|
+
},
|
|
709
|
+
systemName: {
|
|
710
|
+
type: "string",
|
|
711
|
+
description: "Vehicle share system name"
|
|
712
|
+
},
|
|
713
|
+
url: {
|
|
714
|
+
type: "string",
|
|
715
|
+
description: "URL of the vehicle share system"
|
|
716
|
+
},
|
|
717
|
+
stationName: {
|
|
718
|
+
type: "string",
|
|
719
|
+
description: "Name of the station"
|
|
720
|
+
},
|
|
721
|
+
fromStationName: {
|
|
722
|
+
type: "string",
|
|
723
|
+
description: "Name of the station where the vehicle is picked up (empty for free floating vehicles)"
|
|
724
|
+
},
|
|
725
|
+
toStationName: {
|
|
726
|
+
type: "string",
|
|
727
|
+
description: "Name of the station where the vehicle is returned (empty for free floating vehicles)"
|
|
728
|
+
},
|
|
729
|
+
rentalUriAndroid: {
|
|
730
|
+
type: "string",
|
|
731
|
+
description: "Rental URI for Android (deep link to the specific station or vehicle)"
|
|
732
|
+
},
|
|
733
|
+
rentalUriIOS: {
|
|
734
|
+
type: "string",
|
|
735
|
+
description: "Rental URI for iOS (deep link to the specific station or vehicle)"
|
|
736
|
+
},
|
|
737
|
+
rentalUriWeb: {
|
|
738
|
+
type: "string",
|
|
739
|
+
description: "Rental URI for web (deep link to the specific station or vehicle)"
|
|
740
|
+
},
|
|
741
|
+
formFactor: {
|
|
742
|
+
"$ref": "#/components/schemas/RentalFormFactor"
|
|
743
|
+
},
|
|
744
|
+
propulsionType: {
|
|
745
|
+
"$ref": "#/components/schemas/RentalPropulsionType"
|
|
746
|
+
},
|
|
747
|
+
returnConstraint: {
|
|
748
|
+
"$ref": "#/components/schemas/RentalReturnConstraint"
|
|
749
|
+
}
|
|
750
|
+
}
|
|
873
751
|
};
|
|
874
752
|
var LegSchema = {
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
mode: {
|
|
891
|
-
$ref: '#/components/schemas/Mode',
|
|
892
|
-
description: 'Transport mode for this leg'
|
|
893
|
-
},
|
|
894
|
-
from: {
|
|
895
|
-
$ref: '#/components/schemas/Place'
|
|
896
|
-
},
|
|
897
|
-
to: {
|
|
898
|
-
$ref: '#/components/schemas/Place'
|
|
899
|
-
},
|
|
900
|
-
duration: {
|
|
901
|
-
description: `Leg duration in seconds
|
|
753
|
+
type: "object",
|
|
754
|
+
required: ["mode", "startTime", "endTime", "scheduledStartTime", "scheduledEndTime", "realTime", "scheduled", "duration", "from", "to", "legGeometry"],
|
|
755
|
+
properties: {
|
|
756
|
+
mode: {
|
|
757
|
+
"$ref": "#/components/schemas/Mode",
|
|
758
|
+
description: "Transport mode for this leg"
|
|
759
|
+
},
|
|
760
|
+
from: {
|
|
761
|
+
"$ref": "#/components/schemas/Place"
|
|
762
|
+
},
|
|
763
|
+
to: {
|
|
764
|
+
"$ref": "#/components/schemas/Place"
|
|
765
|
+
},
|
|
766
|
+
duration: {
|
|
767
|
+
description: `Leg duration in seconds
|
|
902
768
|
|
|
903
769
|
If leg is footpath:
|
|
904
770
|
The footpath duration is derived from the default footpath
|
|
@@ -911,208 +777,203 @@ If leg is footpath:
|
|
|
911
777
|
\`additionalTransferTime = 0\` in case they are not explicitly
|
|
912
778
|
provided in the query.
|
|
913
779
|
`,
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
780
|
+
type: "integer"
|
|
781
|
+
},
|
|
782
|
+
startTime: {
|
|
783
|
+
type: "string",
|
|
784
|
+
format: "date-time",
|
|
785
|
+
description: "leg departure time"
|
|
786
|
+
},
|
|
787
|
+
endTime: {
|
|
788
|
+
type: "string",
|
|
789
|
+
format: "date-time",
|
|
790
|
+
description: "leg arrival time"
|
|
791
|
+
},
|
|
792
|
+
scheduledStartTime: {
|
|
793
|
+
type: "string",
|
|
794
|
+
format: "date-time",
|
|
795
|
+
description: "scheduled leg departure time"
|
|
796
|
+
},
|
|
797
|
+
scheduledEndTime: {
|
|
798
|
+
type: "string",
|
|
799
|
+
format: "date-time",
|
|
800
|
+
description: "scheduled leg arrival time"
|
|
801
|
+
},
|
|
802
|
+
realTime: {
|
|
803
|
+
description: "Whether there is real-time data about this leg",
|
|
804
|
+
type: "boolean"
|
|
805
|
+
},
|
|
806
|
+
scheduled: {
|
|
807
|
+
description: `Whether this leg was originally scheduled to run or is an additional service.
|
|
942
808
|
Scheduled times will equal realtime times in this case.
|
|
943
809
|
`,
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
headsign: {
|
|
957
|
-
description: `For transit legs, the headsign of the bus or train being used.
|
|
810
|
+
type: "boolean"
|
|
811
|
+
},
|
|
812
|
+
distance: {
|
|
813
|
+
description: "For non-transit legs the distance traveled while traversing this leg in meters.",
|
|
814
|
+
type: "number"
|
|
815
|
+
},
|
|
816
|
+
interlineWithPreviousLeg: {
|
|
817
|
+
description: "For transit legs, if the rider should stay on the vehicle as it changes route names.",
|
|
818
|
+
type: "boolean"
|
|
819
|
+
},
|
|
820
|
+
headsign: {
|
|
821
|
+
description: `For transit legs, the headsign of the bus or train being used.
|
|
958
822
|
For non-transit legs, null
|
|
959
823
|
`,
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
824
|
+
type: "string"
|
|
825
|
+
},
|
|
826
|
+
routeColor: {
|
|
827
|
+
type: "string"
|
|
828
|
+
},
|
|
829
|
+
routeTextColor: {
|
|
830
|
+
type: "string"
|
|
831
|
+
},
|
|
832
|
+
routeType: {
|
|
833
|
+
type: "string"
|
|
834
|
+
},
|
|
835
|
+
agencyName: {
|
|
836
|
+
type: "string"
|
|
837
|
+
},
|
|
838
|
+
agencyUrl: {
|
|
839
|
+
type: "string"
|
|
840
|
+
},
|
|
841
|
+
agencyId: {
|
|
842
|
+
type: "string"
|
|
843
|
+
},
|
|
844
|
+
tripId: {
|
|
845
|
+
type: "string"
|
|
846
|
+
},
|
|
847
|
+
routeShortName: {
|
|
848
|
+
type: "string"
|
|
849
|
+
},
|
|
850
|
+
cancelled: {
|
|
851
|
+
description: "Whether this trip is cancelled",
|
|
852
|
+
type: "boolean"
|
|
853
|
+
},
|
|
854
|
+
source: {
|
|
855
|
+
description: "Filename and line number where this trip is from",
|
|
856
|
+
type: "string"
|
|
857
|
+
},
|
|
858
|
+
intermediateStops: {
|
|
859
|
+
description: `For transit legs, intermediate stops between the Place where the leg originates
|
|
996
860
|
and the Place where the leg ends. For non-transit legs, null.
|
|
997
861
|
`,
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
862
|
+
type: "array",
|
|
863
|
+
items: {
|
|
864
|
+
"$ref": "#/components/schemas/Place"
|
|
865
|
+
}
|
|
866
|
+
},
|
|
867
|
+
legGeometry: {
|
|
868
|
+
"$ref": "#/components/schemas/EncodedPolyline"
|
|
869
|
+
},
|
|
870
|
+
steps: {
|
|
871
|
+
description: `A series of turn by turn instructions
|
|
1008
872
|
used for walking, biking and driving.
|
|
1009
873
|
`,
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
874
|
+
type: "array",
|
|
875
|
+
items: {
|
|
876
|
+
"$ref": "#/components/schemas/StepInstruction"
|
|
877
|
+
}
|
|
878
|
+
},
|
|
879
|
+
rental: {
|
|
880
|
+
"$ref": "#/components/schemas/Rental"
|
|
881
|
+
},
|
|
882
|
+
fareTransferIndex: {
|
|
883
|
+
type: "integer",
|
|
884
|
+
description: `Index into \`Itinerary.fareTransfers\` array
|
|
1021
885
|
to identify which fare transfer this leg belongs to
|
|
1022
886
|
`
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
887
|
+
},
|
|
888
|
+
effectiveFareLegIndex: {
|
|
889
|
+
type: "integer",
|
|
890
|
+
description: `Index into the \`Itinerary.fareTransfers[fareTransferIndex].effectiveFareLegProducts\` array
|
|
1027
891
|
to identify which effective fare leg this itinerary leg belongs to
|
|
1028
892
|
`
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
893
|
+
},
|
|
894
|
+
alerts: {
|
|
895
|
+
description: "Alerts for this stop.",
|
|
896
|
+
type: "array",
|
|
897
|
+
items: {
|
|
898
|
+
"$ref": "#/components/schemas/Alert"
|
|
899
|
+
}
|
|
900
|
+
}
|
|
901
|
+
}
|
|
1038
902
|
};
|
|
1039
903
|
var RiderCategorySchema = {
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
}
|
|
1057
|
-
}
|
|
904
|
+
type: "object",
|
|
905
|
+
required: ["riderCategoryName", "isDefaultFareCategory"],
|
|
906
|
+
properties: {
|
|
907
|
+
riderCategoryName: {
|
|
908
|
+
description: "Rider category name as displayed to the rider.",
|
|
909
|
+
type: "string"
|
|
910
|
+
},
|
|
911
|
+
isDefaultFareCategory: {
|
|
912
|
+
description: "Specifies if this category should be considered the default (i.e. the main category displayed to riders).",
|
|
913
|
+
type: "boolean"
|
|
914
|
+
},
|
|
915
|
+
eligibilityUrl: {
|
|
916
|
+
description: "URL to a web page providing detailed information about the rider category and/or its eligibility criteria.",
|
|
917
|
+
type: "string"
|
|
918
|
+
}
|
|
919
|
+
}
|
|
1058
920
|
};
|
|
1059
921
|
var FareMediaTypeSchema = {
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
922
|
+
type: "string",
|
|
923
|
+
enum: ["NONE", "PAPER_TICKET", "TRANSIT_CARD", "CONTACTLESS_EMV", "MOBILE_APP"],
|
|
924
|
+
enumDescriptions: {
|
|
925
|
+
NONE: "No fare media involved (e.g., cash payment)",
|
|
926
|
+
PAPER_TICKET: "Physical paper ticket",
|
|
927
|
+
TRANSIT_CARD: "Physical transit card with stored value",
|
|
928
|
+
CONTACTLESS_EMV: "cEMV (contactless payment)",
|
|
929
|
+
MOBILE_APP: "Mobile app with virtual transit cards/passes"
|
|
930
|
+
}
|
|
1069
931
|
};
|
|
1070
932
|
var FareMediaSchema = {
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
933
|
+
type: "object",
|
|
934
|
+
required: ["fareMediaType"],
|
|
935
|
+
properties: {
|
|
936
|
+
fareMediaName: {
|
|
937
|
+
description: "Name of the fare media. Required for transit cards and mobile apps.",
|
|
938
|
+
type: "string"
|
|
939
|
+
},
|
|
940
|
+
fareMediaType: {
|
|
941
|
+
description: "The type of fare media.",
|
|
942
|
+
"$ref": "#/components/schemas/FareMediaType"
|
|
943
|
+
}
|
|
944
|
+
}
|
|
1083
945
|
};
|
|
1084
946
|
var FareProductSchema = {
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
}
|
|
947
|
+
type: "object",
|
|
948
|
+
required: ["name", "amount", "currency"],
|
|
949
|
+
properties: {
|
|
950
|
+
name: {
|
|
951
|
+
description: "The name of the fare product as displayed to riders.",
|
|
952
|
+
type: "string"
|
|
953
|
+
},
|
|
954
|
+
amount: {
|
|
955
|
+
description: "The cost of the fare product. May be negative to represent transfer discounts. May be zero to represent a fare product that is free.",
|
|
956
|
+
type: "number"
|
|
957
|
+
},
|
|
958
|
+
currency: {
|
|
959
|
+
description: "ISO 4217 currency code. The currency of the cost of the fare product.",
|
|
960
|
+
type: "string"
|
|
961
|
+
},
|
|
962
|
+
riderCategory: {
|
|
963
|
+
"$ref": "#/components/schemas/RiderCategory"
|
|
964
|
+
},
|
|
965
|
+
media: {
|
|
966
|
+
"$ref": "#/components/schemas/FareMedia"
|
|
967
|
+
}
|
|
968
|
+
}
|
|
1108
969
|
};
|
|
1109
970
|
var FareTransferRuleSchema = {
|
|
1110
|
-
|
|
1111
|
-
|
|
971
|
+
type: "string",
|
|
972
|
+
enum: ["A_AB", "A_AB_B", "AB"]
|
|
1112
973
|
};
|
|
1113
974
|
var FareTransferSchema = {
|
|
1114
|
-
|
|
1115
|
-
|
|
975
|
+
type: "object",
|
|
976
|
+
description: `The concept is derived from: https://gtfs.org/documentation/schedule/reference/#fare_transfer_rulestxt
|
|
1116
977
|
|
|
1117
978
|
Terminology:
|
|
1118
979
|
- **Leg**: An itinerary leg as described by the \`Leg\` type of this API description.
|
|
@@ -1129,165 +990,165 @@ The fare transfer rule is used to derive the final set of products of the itiner
|
|
|
1129
990
|
|
|
1130
991
|
An itinerary \`Leg\` references the index of the fare transfer and the index of the effective fare leg in this transfer it belongs to.
|
|
1131
992
|
`,
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
993
|
+
required: ["effectiveFareLegProducts"],
|
|
994
|
+
properties: {
|
|
995
|
+
rule: {
|
|
996
|
+
"$ref": "#/components/schemas/FareTransferRule"
|
|
997
|
+
},
|
|
998
|
+
transferProducts: {
|
|
999
|
+
type: "array",
|
|
1000
|
+
items: {
|
|
1001
|
+
"$ref": "#/components/schemas/FareProduct"
|
|
1002
|
+
}
|
|
1003
|
+
},
|
|
1004
|
+
effectiveFareLegProducts: {
|
|
1005
|
+
description: `Lists all valid fare products for the effective fare legs.
|
|
1145
1006
|
This is an \`array<array<FareProduct>>\` where the inner array
|
|
1146
1007
|
lists all possible fare products that would cover this effective fare leg.
|
|
1147
1008
|
Each "effective fare leg" can have multiple options for adult/child/weekly/monthly/day/one-way tickets etc.
|
|
1148
1009
|
You can see the outer array as AND (you need one ticket for each effective fare leg (\`A_AB_B\`), the first effective fare leg (\`A_AB\`) or no fare leg at all but only the transfer product (\`AB\`)
|
|
1149
1010
|
and the inner array as OR (you can choose which ticket to buy)
|
|
1150
1011
|
`,
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1012
|
+
type: "array",
|
|
1013
|
+
items: {
|
|
1014
|
+
type: "array",
|
|
1015
|
+
items: {
|
|
1016
|
+
type: "array",
|
|
1017
|
+
items: {
|
|
1018
|
+
"$ref": "#/components/schemas/FareProduct"
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
}
|
|
1023
|
+
}
|
|
1163
1024
|
};
|
|
1164
1025
|
var ItinerarySchema = {
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1026
|
+
type: "object",
|
|
1027
|
+
required: ["duration", "startTime", "endTime", "transfers", "legs"],
|
|
1028
|
+
properties: {
|
|
1029
|
+
duration: {
|
|
1030
|
+
description: "journey duration in seconds",
|
|
1031
|
+
type: "integer"
|
|
1032
|
+
},
|
|
1033
|
+
startTime: {
|
|
1034
|
+
type: "string",
|
|
1035
|
+
format: "date-time",
|
|
1036
|
+
description: "journey departure time"
|
|
1037
|
+
},
|
|
1038
|
+
endTime: {
|
|
1039
|
+
type: "string",
|
|
1040
|
+
format: "date-time",
|
|
1041
|
+
description: "journey arrival time"
|
|
1042
|
+
},
|
|
1043
|
+
transfers: {
|
|
1044
|
+
type: "integer",
|
|
1045
|
+
description: "The number of transfers this trip has."
|
|
1046
|
+
},
|
|
1047
|
+
legs: {
|
|
1048
|
+
description: "Journey legs",
|
|
1049
|
+
type: "array",
|
|
1050
|
+
items: {
|
|
1051
|
+
"$ref": "#/components/schemas/Leg"
|
|
1052
|
+
}
|
|
1053
|
+
},
|
|
1054
|
+
fareTransfers: {
|
|
1055
|
+
description: "Fare information",
|
|
1056
|
+
type: "array",
|
|
1057
|
+
items: {
|
|
1058
|
+
"$ref": "#/components/schemas/FareTransfer"
|
|
1059
|
+
}
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1201
1062
|
};
|
|
1202
1063
|
var TransferSchema = {
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1064
|
+
description: "transfer from one location to another",
|
|
1065
|
+
type: "object",
|
|
1066
|
+
required: ["to"],
|
|
1067
|
+
properties: {
|
|
1068
|
+
to: {
|
|
1069
|
+
"$ref": "#/components/schemas/Place"
|
|
1070
|
+
},
|
|
1071
|
+
default: {
|
|
1072
|
+
type: "number",
|
|
1073
|
+
description: `optional; missing if the GTFS did not contain a transfer
|
|
1213
1074
|
transfer duration in minutes according to GTFS (+heuristics)
|
|
1214
1075
|
`
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1076
|
+
},
|
|
1077
|
+
foot: {
|
|
1078
|
+
type: "number",
|
|
1079
|
+
description: `optional; missing if no path was found (timetable / osr)
|
|
1219
1080
|
transfer duration in minutes for the foot profile
|
|
1220
1081
|
`
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1082
|
+
},
|
|
1083
|
+
footRouted: {
|
|
1084
|
+
type: "number",
|
|
1085
|
+
description: `optional; missing if no path was found with foot routing
|
|
1225
1086
|
transfer duration in minutes for the foot profile
|
|
1226
1087
|
`
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1088
|
+
},
|
|
1089
|
+
wheelchair: {
|
|
1090
|
+
type: "number",
|
|
1091
|
+
description: `optional; missing if no path was found with the wheelchair profile
|
|
1231
1092
|
transfer duration in minutes for the wheelchair profile
|
|
1232
1093
|
`
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1094
|
+
},
|
|
1095
|
+
wheelchairRouted: {
|
|
1096
|
+
type: "number",
|
|
1097
|
+
description: `optional; missing if no path was found with the wheelchair profile
|
|
1237
1098
|
transfer duration in minutes for the wheelchair profile
|
|
1238
1099
|
`
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1100
|
+
},
|
|
1101
|
+
wheelchairUsesElevator: {
|
|
1102
|
+
type: "boolean",
|
|
1103
|
+
description: `optional; missing if no path was found with the wheelchair profile
|
|
1243
1104
|
true if the wheelchair path uses an elevator
|
|
1244
1105
|
`
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1106
|
+
},
|
|
1107
|
+
car: {
|
|
1108
|
+
type: "number",
|
|
1109
|
+
description: `optional; missing if no path was found with car routing
|
|
1249
1110
|
transfer duration in minutes for the car profile
|
|
1250
1111
|
`
|
|
1251
|
-
|
|
1252
|
-
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1253
1114
|
};
|
|
1254
1115
|
|
|
1255
1116
|
export {
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1117
|
+
AlertCauseSchema,
|
|
1118
|
+
AlertEffectSchema,
|
|
1119
|
+
AlertSeverityLevelSchema,
|
|
1120
|
+
TimeRangeSchema,
|
|
1121
|
+
AlertSchema,
|
|
1122
|
+
DurationSchema,
|
|
1123
|
+
AreaSchema,
|
|
1124
|
+
TokenSchema,
|
|
1125
|
+
LocationTypeSchema,
|
|
1126
|
+
MatchSchema,
|
|
1127
|
+
ElevationCostsSchema,
|
|
1128
|
+
PedestrianProfileSchema,
|
|
1129
|
+
ModeSchema,
|
|
1130
|
+
VertexTypeSchema,
|
|
1131
|
+
PickupDropoffTypeSchema,
|
|
1132
|
+
PlaceSchema,
|
|
1133
|
+
ReachablePlaceSchema,
|
|
1134
|
+
ReachableSchema,
|
|
1135
|
+
StopTimeSchema,
|
|
1136
|
+
TripInfoSchema,
|
|
1137
|
+
TripSegmentSchema,
|
|
1138
|
+
DirectionSchema,
|
|
1139
|
+
EncodedPolylineSchema,
|
|
1140
|
+
StepInstructionSchema,
|
|
1141
|
+
RentalFormFactorSchema,
|
|
1142
|
+
RentalPropulsionTypeSchema,
|
|
1143
|
+
RentalReturnConstraintSchema,
|
|
1144
|
+
RentalSchema,
|
|
1145
|
+
LegSchema,
|
|
1146
|
+
RiderCategorySchema,
|
|
1147
|
+
FareMediaTypeSchema,
|
|
1148
|
+
FareMediaSchema,
|
|
1149
|
+
FareProductSchema,
|
|
1150
|
+
FareTransferRuleSchema,
|
|
1151
|
+
FareTransferSchema,
|
|
1152
|
+
ItinerarySchema,
|
|
1153
|
+
TransferSchema
|
|
1293
1154
|
};
|