-
Notifications
You must be signed in to change notification settings - Fork 1
Custom Types
The project introduces custom types regarding locations and journeys, that are used in communication between Backend and Frontend.
The Backend uses some 3rd party APIs (as of today VRR's API) to query for locations and to plan journeys. In consequence types of the results are determined by the external API. Why not using these? Firstly these types are not available to add to a typescript project to assure type safety. Secondly it is not possible (and not desirable too, see third) to use these types with Frontend client generation tools like Swagger OpenAPI. Finally the most relevant reason: Using custom types ensure that our Frontend is decoupled from any 3rd party API that's used by the Backend.
All types are designed based on example structures that were received from VRR's API. See attechements for some examples. The analysis below shows which use cases are differentiated and which fields are always given and which not (only fields that are interesting are being listed).
Use Case | Results count | Id | Name | Type | Coordinates | Parent | Assigned Stops | Fields for Rating |
---|---|---|---|---|---|---|---|---|
Searching by name | multiple | yes | yes | yes | yes** | yes | no | matchQuality |
Searching by coordinates | one | yes | yes | yes | yes** | yes | yes | none |
Parents of locations | one | no* | yes | yes | no | yes*** | no | none |
Assigned stops | multiple | yes | yes | yes | yes** | yes | no | Distance, Duration |
* There are some cases where there actually is an id.
** Always typed as Number.
*** While there could be a chain of parents, such structures never appeared in location examples (but needed for Journeys).
Example: Searching for name
[
{
"coord": [
51.50493,
7.10221
],
"disassembledName": "Hbf",
"id": "de:05513:5613",
"isBest": true,
"isGlobalId": true,
"matchQuality": 805,
"name": "Gelsenkirchen, Hbf",
"parent": {
"id": "placeID:5513000:9",
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
0,
1,
4,
5,
7,
10
],
"properties": {
"stopId": "20005613"
},
"type": "stop"
},
{
"coord": [
51.53899,
7.0263
],
"disassembledName": "Buerer Str.",
"id": "de:05513:5579",
"isBest": false,
"isGlobalId": true,
"matchQuality": 773,
"name": "Gelsenkirchen, Buerer Str.",
"parent": {
"id": "placeID:5513000:9",
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
2,
4,
5,
7,
10
],
"properties": {
"stopId": "20005579"
},
"type": "stop"
},
{
"coord": [
51.57824,
7.05752
],
"disassembledName": "Buer Rathaus",
"id": "de:05513:4662",
"isBest": false,
"isGlobalId": true,
"matchQuality": 770,
"name": "Gelsenkirchen, Buer Rathaus",
"parent": {
"id": "placeID:5513000:9",
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
4,
5,
7,
10
],
"properties": {
"stopId": "20004662"
},
"type": "stop"
},
{
"coord": [
51.55516,
7.06225
],
"disassembledName": "VELTINS-Arena",
"id": "de:05513:5524",
"isBest": false,
"isGlobalId": true,
"matchQuality": 770,
"name": "Gelsenkirchen, VELTINS-Arena",
"parent": {
"id": "placeID:5513000:9",
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
4,
5
],
"properties": {
"stopId": "20005524"
},
"type": "stop"
},
{
"coord": [
51.48126,
7.11195
],
"disassembledName": "Leithe Gelsenkirchener Str.",
"id": "de:05911:5112",
"isBest": false,
"isGlobalId": true,
"matchQuality": 709,
"name": "Bochum, Leithe Gelsenkirchener Str.",
"parent": {
"id": "placeID:5911000:3",
"name": "Bochum",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20005112"
},
"type": "stop"
},
{
"coord": [
51.49626,
7.10162
],
"disassembledName": "Marienhospital Gelsenkirchen",
"id": "de:05513:5034",
"isBest": false,
"isGlobalId": true,
"matchQuality": 709,
"name": "Gelsenkirchen, Marienhospital Gelsenkirchen",
"parent": {
"id": "placeID:5513000:9",
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20005034"
},
"type": "stop"
},
{
"coord": [
51.15622,
6.38889
],
"disassembledName": "Genhülsen Trafo",
"id": "de:05116:23084",
"isBest": false,
"isGlobalId": true,
"matchQuality": 639,
"name": "Mönchengladbach, Genhülsen Trafo",
"parent": {
"id": "placeID:5116000:60",
"name": "Mönchengladbach",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20023084"
},
"type": "stop"
},
{
"coord": [
51.15231,
6.4018
],
"disassembledName": "Abzw. Genhülsen",
"id": "de:05116:23087",
"isBest": false,
"isGlobalId": true,
"matchQuality": 637,
"name": "Mönchengladbach, Abzw. Genhülsen",
"parent": {
"id": "placeID:5116000:60",
"name": "Mönchengladbach",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20023087"
},
"type": "stop"
},
{
"coord": [
51.15474,
6.39439
],
"disassembledName": "Genhülsen Kapelle",
"id": "de:05116:23085",
"isBest": false,
"isGlobalId": true,
"matchQuality": 637,
"name": "Mönchengladbach, Genhülsen Kapelle",
"parent": {
"id": "placeID:5116000:60",
"name": "Mönchengladbach",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20023085"
},
"type": "stop"
},
{
"coord": [
51.58827,
7.07751
],
"disassembledName": "Baut",
"id": "de:05513:4591",
"isBest": false,
"isGlobalId": true,
"matchQuality": 570,
"name": "Gelsenkirchen, Baut",
"parent": {
"id": "placeID:5513000:9",
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20004591"
},
"type": "stop"
}
]
Example: Searching for coordinates
[
{
"assignedStops": [
{
"coord": [
5288779,
790526
],
"disassembledName": "Hbf",
"id": "de:05513:5613",
"isGlobalId": true,
"name": "Gelsenkirchen Hbf",
"parent": {
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
1,
0,
4,
5,
7,
10
],
"properties": {
"stopId": "20005613"
},
"type": "stop",
"connectingMode": 100,
"distance": 53,
"duration": 0
},
{
"coord": [
5288581,
790845
],
"disassembledName": "Wildenbruchstr.",
"id": "de:05513:5731",
"isGlobalId": true,
"name": "Gelsenkirchen Wildenbruchstr.",
"parent": {
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20005731"
},
"type": "stop",
"connectingMode": 100,
"distance": 328,
"duration": 5
},
{
"coord": [
5289219,
790870
],
"disassembledName": "Neustadtplatz",
"id": "de:05513:6687",
"isGlobalId": true,
"name": "Gelsenkirchen Neustadtplatz",
"parent": {
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20006687"
},
"type": "stop",
"connectingMode": 100,
"distance": 417,
"duration": 6
},
{
"coord": [
5288450,
789905
],
"disassembledName": "Machensplatz",
"id": "de:05513:5344",
"isGlobalId": true,
"name": "Gelsenkirchen Machensplatz",
"parent": {
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
5
],
"properties": {
"stopId": "20005344"
},
"type": "stop",
"connectingMode": 100,
"distance": 421,
"duration": 6
},
{
"coord": [
5288442,
789888
],
"disassembledName": "Heinrich-König-Platz",
"id": "de:05513:6686",
"isGlobalId": true,
"name": "GE Heinrich-König-Platz",
"parent": {
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
4
],
"properties": {
"stopId": "20006686"
},
"type": "stop",
"connectingMode": 100,
"distance": 433,
"duration": 6
},
{
"coord": [
5289510,
791014
],
"disassembledName": "Rheinelbestr.",
"id": "de:05513:5145",
"isGlobalId": true,
"name": "Gelsenkirchen Rheinelbestr.",
"parent": {
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
4,
5
],
"properties": {
"stopId": "20005145"
},
"type": "stop",
"connectingMode": 100,
"distance": 623,
"duration": 9
},
{
"coord": [
5289265,
790251
],
"disassembledName": "Wiehagen",
"id": "de:05513:6694",
"isGlobalId": true,
"name": "Gelsenkirchen Wiehagen",
"parent": {
"name": "Gelsenkirchen",
"type": "locality"
},
"productClasses": [
5,
10
],
"properties": {
"stopId": "20006694"
},
"type": "stop",
"connectingMode": 100,
"distance": 657,
"duration": 9
}
],
"coord": [
5288715,
790483
],
"disassembledName": "Bahnhofcenter",
"id": "coord:790483:5288715:MRCV:Altstadt (Gelsenkirchen), Bahnhofcenter:0",
"name": "Altstadt (Gelsenkirchen), Bahnhofcenter",
"parent": {
"id": "placeID:5513000:1500000000",
"name": "Altstadt (Gelsenkirchen)",
"type": "locality"
},
"type": "address"
}
]
Journey (multiple)
|
|--- interchanges <number>
|--- legs <Leg>
Leg (at least one)
|
|--- origin <JourneyLocationElement>
|--- destination <JourneyLocationElement>
|--- transportation <Transportation>
|
|--- duration <number> [in secs]
|--- distance <number> [never used in examples]
|--- hints <Info[]> [general information about transportation on this leg, sometimes missing]
|--- infos <Info[]> [information like restrictions regarding specific journey/leg]
|--- footpath <Footpath> [optional]
|--- interchange <Interchange> [optional]
|--- coords* <Array<number>>
|--- stopSequence <JourneyLocationElement[]>
JourneyLocationElement
|
|--- ...Location**
|--- arrivalTimePlanned <string>
|--- arrivalTimeEstimated <string>
|--- departureTimePlanned <string>
|--- departureTimeEstimated <string>
Transportation
|
|--- id <string>
|--- name <string>
|--- disassembledName <string>
|--- number <string> [identical to disassembledName, but always present]
|--- destination <Location>
|--- product <Product> [only relevant to determine if footpath]
|--- operator <OperatorObject>
Info
|
|--- content <string> [can contain html formatting]
|--- priority <string> ["veryHigh", "normal"]
|--- urlText <string>
|--- url <string> [links to text identical to content]
|--- title <string>
|--- subtitle <string> [can be identical to title]
|--- additionalText <string>
|--- properties <InfoProperties> [includes Date from-to, sometimes additional links]
Interchange
|
|--- desc <string> [no example other than "Fussweg"]
|--- coords <Array<Array<number>>>
* Always typed as Number.
** Mostly includes multiple parents.
Use Case | arrivalTimePlanned | arrivalTimeEstimated | departureTimePlanned | departureTimeEstimated |
---|---|---|---|---|
Leg Origin | no | no | yes | yes |
Leg Destination | yes | yes | no | no |
Stop Sequence Origin | no | no | yes | no |
Stop Sequence Intermediate | yes | no | yes | no |
Stop Sequence Destination | yes | no | no | no |
Use Case / "product" | id | name | disassembledName | number | destination | operator |
---|---|---|---|---|---|---|
Typical vehicle (Bus, RE, ...) | yes | yes | yes* | yes | yes** | yes* |
"footpath" | no | no | no | no | no | no |
"gesicherter Anschluss" | no | no | no | no | no | no |
* There are some cases this field is missing without any particular reason.
** Id of destination location is not global (not matching with typical location ids from location search).
Use Case | content | priority | url | urlText | title | subtitle | additionalText | properties |
---|---|---|---|---|---|---|---|---|
hint | yes | no | no | no | no | no | no | no |
info | yes* | yes | yes | yes** | yes | yes | yes | yes |
* Can contain html formatting.
** Can be empty string.
Example: Simple Journey
{
"rating": 0,
"isAdditional": false,
"interchanges": 1,
"legs": [
{
"duration": 480,
"origin": {
"isGlobalId": true,
"id": "de:05513:5613:91:7",
"name": "Gelsenkirchen Hbf",
"disassembledName": "7",
"type": "platform",
"pointType": "TRACK",
"coord": [
5288910,
790718
],
"niveau": 2,
"parent": {
"isGlobalId": true,
"id": "de:05513:5613",
"name": "Gelsenkirchen Hbf",
"type": "stop",
"parent": {
"id": "placeID:5513000:9",
"name": "Gelsenkirchen",
"type": "locality"
},
"properties": {
"stopId": "20005613"
},
"coord": [
5288900,
790614
],
"niveau": 0
},
"productClasses": [
0,
1,
4,
5,
7,
10
],
"departureTimePlanned": "2023-12-01T11:26:00Z",
"departureTimeEstimated": "2023-12-01T11:26:00Z",
"properties": {
"downloads": [
{
"type": "RM",
"url": "FILELOAD?Filename=nrw_6511BBF70.pdf"
},
{
"type": "SM",
"url": "vrr/05613_ge_hbf_1.htm"
}
],
"AREA_NIVEAU_DIVA": "2",
"stoppingPointPlanned": "7",
"areaGid": "de:05513:5613:91",
"area": "91",
"platform": "7",
"platformName": "7"
}
},
"destination": {
"isGlobalId": true,
"id": "de:05562:3644:90:2",
"name": "RE Süd Bf",
"disassembledName": "2",
"type": "platform",
"pointType": "TRACK",
"coord": [
5278475,
801016
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3644",
"name": "RE Süd Bf",
"type": "stop",
"parent": {
"id": "placeID:5562032:12",
"name": "Recklinghausen",
"type": "locality"
},
"properties": {
"stopId": "20003644"
},
"coord": [
5278703,
800957
],
"niveau": 0
},
"productClasses": [
0,
1,
5
],
"arrivalTimePlanned": "2023-12-01T11:34:00Z",
"arrivalTimeEstimated": "2023-12-01T11:34:00Z",
"properties": {
"downloads": [
{
"type": "RM",
"url": "FILELOAD?Filename=nrw_6511BBF71.pdf"
}
],
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "2",
"areaGid": "de:05562:3644:90",
"area": "91",
"platform": "2",
"platformName": "2"
}
},
"transportation": {
"id": "ddb:90E42: :H:j23",
"name": "Regionalzug RE42",
"disassembledName": "RE42",
"number": "RE42",
"product": {
"id": 8,
"class": 13,
"name": "Regionalzug",
"iconId": 6
},
"operator": {
"code": "DBNW",
"id": "8003",
"name": "DB Regio AG NRW"
},
"destination": {
"id": "24041000",
"name": "Münster (Westf) Hbf",
"type": "stop"
},
"properties": {
"trainName": "Niers-Haard-Express",
"trainType": "RE",
"trainNumber": "10131",
"tripCode": 77,
"timetablePeriod": "Jahresfahrplan 2023",
"lineDisplay": "LINE",
"globalId": "de:nrw.de:re42:"
}
},
"hints": [
{
"content": "Linie RE42: Fahrradmitnahme begrenzt möglich",
"providerCode": "FK",
"type": "Timetable",
"properties": {
"subnet": "ddb"
}
},
{
"content": "Linie RE42: Fahrzeuggebundene Einstiegshilfe vorhanden",
"providerCode": "EH",
"type": "Timetable",
"properties": {
"subnet": "ddb"
}
},
{
"content": "Linie RE42: rollstuhltaugliches WC",
"providerCode": "OC",
"type": "Timetable",
"properties": {
"subnet": "ddb"
}
}
],
"stopSequence": [
{
"isGlobalId": true,
"id": "de:05513:5613:91:7",
"name": "Gelsenkirchen Hbf",
"disassembledName": "7",
"type": "platform",
"pointType": "TRACK",
"coord": [
5288910,
790718
],
"niveau": 2,
"parent": {
"isGlobalId": true,
"id": "de:05513:5613",
"name": "Gelsenkirchen Hbf",
"type": "stop",
"parent": {
"id": "placeID:5513000:9",
"name": "Gelsenkirchen",
"type": "locality"
},
"properties": {
"stopId": "20005613"
},
"coord": [
5288900,
790614
],
"niveau": 0
},
"productClasses": [
0,
1,
4,
5,
7,
10
],
"properties": {
"AREA_NIVEAU_DIVA": "2",
"stoppingPointPlanned": "7",
"areaGid": "de:05513:5613:91",
"area": "91",
"platform": "7",
"platformName": "7",
"zone": "vrr:260"
},
"departureTimePlanned": "2023-12-01T11:26:00Z"
},
{
"isGlobalId": true,
"id": "de:05916:7590:91:5",
"name": "Wanne-Eickel Hbf",
"disassembledName": "5",
"type": "platform",
"pointType": "TRACK",
"coord": [
5284181,
797752
],
"niveau": 1,
"parent": {
"isGlobalId": true,
"id": "de:05916:7590",
"name": "Wanne-Eickel Hbf",
"type": "stop",
"parent": {
"id": "placeID:5916000:5",
"name": "Herne",
"type": "locality"
},
"properties": {
"stopId": "20007590"
},
"coord": [
5284190,
797691
],
"niveau": 0
},
"productClasses": [
0,
1,
4,
5,
7
],
"properties": {
"AREA_NIVEAU_DIVA": "1",
"stoppingPointPlanned": "5",
"areaGid": "de:05916:7590:91",
"area": "91",
"platform": "5",
"platformName": "5",
"zone": "vrr:272"
},
"arrivalTimePlanned": "2023-12-01T11:30:00Z",
"departureTimePlanned": "2023-12-01T11:31:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:3644:90:2",
"name": "RE Süd Bf",
"disassembledName": "2",
"type": "platform",
"pointType": "TRACK",
"coord": [
5278475,
801016
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3644",
"name": "RE Süd Bf",
"type": "stop",
"parent": {
"id": "placeID:5562032:12",
"name": "Recklinghausen",
"type": "locality"
},
"properties": {
"stopId": "20003644"
},
"coord": [
5278703,
800957
],
"niveau": 0
},
"productClasses": [
0,
1,
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "2",
"areaGid": "de:05562:3644:90",
"area": "91",
"platform": "2",
"platformName": "2",
"zone": "vrr:174"
},
"arrivalTimePlanned": "2023-12-01T11:34:00Z"
}
],
"footPathInfo": [
{
"position": "AFTER",
"duration": 300
}
],
"infos": [],
"coords": [...],
"pathDescriptions": [
{
"turnDirection": "UNKNOWN",
"manoeuvre": "LEAVE",
"name": "Ausstieg Zug rechts",
"coord": [
5278475,
801016
],
"skyDirection": 0,
"duration": 0,
"cumDuration": 27,
"distance": 0,
"cumDistance": 30,
"fromCoordsIndex": 0,
"toCoordsIndex": 0,
"properties": {
"INDOOR_TYPE": "PLATFORM_WAY"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "KEEP",
"name": "Bahnsteig",
"coord": [
5278475,
801016
],
"skyDirection": 184,
"duration": 27,
"cumDuration": 27,
"distance": 30,
"cumDistance": 30,
"fromCoordsIndex": 0,
"toCoordsIndex": 5,
"properties": {
"INDOOR_TYPE": "PLATFORM_WAY",
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "Außenrampe abwärts zur Ebene -1",
"coord": [
5278519,
801021
],
"skyDirection": 183,
"duration": 55,
"cumDuration": 82,
"distance": 61,
"cumDistance": 92,
"fromCoordsIndex": 5,
"toCoordsIndex": 6,
"properties": {
"FLOOR_LEVEL_CHANGE_DIRECTION": "DOWN",
"OUTDOOR_TYPE": "OUTDOOR_RAMP"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "Fußweg im Gebäude",
"coord": [
5278617,
801015
],
"skyDirection": 183,
"duration": 37,
"cumDuration": 120,
"distance": 42,
"cumDistance": 134,
"fromCoordsIndex": 6,
"toCoordsIndex": 12,
"properties": {
"INDOOR_TYPE": "BUILDING_WAY",
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "",
"coord": [
5278663,
800990
],
"skyDirection": 272,
"duration": 7,
"cumDuration": 127,
"distance": 8,
"cumDistance": 142,
"fromCoordsIndex": 12,
"toCoordsIndex": 13,
"properties": {
"OUTDOOR_TYPE": "HIKING_TRAIL",
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "Treppe aufwärts zur Ebene 0",
"coord": [
5278662,
800977
],
"skyDirection": 272,
"duration": 37,
"cumDuration": 164,
"distance": 8,
"cumDistance": 150,
"fromCoordsIndex": 13,
"toCoordsIndex": 14,
"properties": {
"FLOOR_LEVEL_CHANGE_DIRECTION": "UP",
"FLOOR_LEVEL_DIFFERENCE": "1",
"INDOOR_TYPE": "STAIRS"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "",
"coord": [
5278662,
800964
],
"skyDirection": 272,
"duration": 5,
"cumDuration": 170,
"distance": 6,
"cumDistance": 156,
"fromCoordsIndex": 14,
"toCoordsIndex": 15,
"properties": {
"OUTDOOR_TYPE": "HIKING_TRAIL"
}
},
{
"turnDirection": "LEFT",
"manoeuvre": "TURN",
"name": "Am Südbahnhof",
"coord": [
5278658,
800954
],
"skyDirection": 290,
"duration": 28,
"cumDuration": 199,
"distance": 32,
"cumDistance": 188,
"fromCoordsIndex": 15,
"toCoordsIndex": 18,
"properties": {
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "RIGHT",
"manoeuvre": "TURN",
"name": "Hochlarmarkstraße",
"coord": [
5278709,
800953
],
"skyDirection": 177,
"duration": 66,
"cumDuration": 266,
"distance": 74,
"cumDistance": 263,
"fromCoordsIndex": 18,
"toCoordsIndex": 24,
"properties": {
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "Hochlarmarkstraße",
"coord": [
5278727,
800834
],
"skyDirection": 262,
"duration": 0,
"cumDuration": 266,
"distance": 1,
"cumDistance": 264,
"fromCoordsIndex": 24,
"toCoordsIndex": 26,
"properties": {
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "UNKNOWN",
"manoeuvre": "ENTER",
"name": "Einstieg Niederflurbus",
"coord": [
5278716,
800830
],
"skyDirection": 0,
"duration": 0,
"cumDuration": 266,
"distance": 0,
"cumDistance": 264,
"fromCoordsIndex": 26,
"toCoordsIndex": 26
}
],
"interchange": {
"desc": "Fussweg",
"type": 100,
"coords": [...]
},
"fare": {
"zones": [
{
"net": "",
"toLeg": 0,
"fromLeg": 0,
"neutralZone": "",
"zones": [],
"zonesUnited": [
[
"26"
],
[
"27"
],
[
"17"
]
]
}
]
}
},
{
"duration": 840,
"origin": {
"isGlobalId": true,
"id": "de:05562:3644:2:02",
"name": "RE Süd Bf",
"disassembledName": "02",
"type": "platform",
"coord": [
5278716,
800830
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3644",
"name": "RE Süd Bf",
"type": "stop",
"parent": {
"id": "placeID:5562032:12",
"name": "Recklinghausen",
"type": "locality"
},
"properties": {
"stopId": "20003644"
},
"coord": [
5278703,
800957
],
"niveau": 0
},
"productClasses": [
0,
1,
5
],
"departureTimePlanned": "2023-12-01T11:43:00Z",
"departureTimeEstimated": "2023-12-01T11:43:00Z",
"properties": {
"downloads": [
{
"type": "RM",
"url": "FILELOAD?Filename=nrw_6511BBF71.pdf"
}
],
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:3644:2",
"area": "2",
"platform": "02",
"platformName": "02"
}
},
"destination": {
"isGlobalId": true,
"id": "de:05562:4982:0:01",
"name": "Gelsenkirchener Str",
"disassembledName": "01",
"type": "platform",
"coord": [
5275881,
795341
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:4982",
"name": "Gelsenkirchener Str",
"type": "stop",
"parent": {
"id": "placeID:5562020:6",
"name": "Herten",
"type": "locality"
},
"properties": {
"stopId": "20004982"
},
"coord": [
5275911,
795331
],
"niveau": 0
},
"productClasses": [
5,
7
],
"arrivalTimePlanned": "2023-12-01T11:57:00Z",
"arrivalTimeEstimated": "2023-12-01T11:57:00Z",
"properties": {
"downloads": [
{
"type": "RM",
"url": "FILELOAD?Filename=nrw_6511BBF72.pdf"
}
],
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "01",
"areaGid": "de:05562:4982",
"area": "0",
"platform": "01",
"platformName": "01"
}
},
"transportation": {
"id": "ves:40210: :H:j23",
"name": "Niederflurbus 210",
"disassembledName": "210",
"number": "210",
"description": "RE-Röllinghausen Marderweg - RE-Süd Neue Horizonte - Herten Mitte",
"product": {
"id": 13,
"class": 5,
"name": "Niederflurbus",
"iconId": 5
},
"operator": {
"code": "VEST",
"id": "40",
"name": "Vestische"
},
"destination": {
"id": "20003626",
"name": "Herten Mitte",
"type": "stop"
},
"properties": {
"tripCode": 17,
"timetablePeriod": "Jahresfahrplan 2023 (09.01.2023 - 07.01.2024)",
"lineDisplay": "LINE"
}
},
"hints": [
{
"content": "Linie 210: Anschlussgarantie gilt auf allen Linien der Vestischen mo-so/feiertags zwischen 20.00 Uhr und Betriebsende. Infos unter www.vestische.de/anschlussgarantie.",
"providerCode": "A",
"type": "Timetable",
"properties": {
"subnet": "ves"
}
}
],
"stopSequence": [
{
"isGlobalId": true,
"id": "de:05562:3644:2:02",
"name": "RE Süd Bf",
"disassembledName": "02",
"type": "platform",
"coord": [
5278716,
800830
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3644",
"name": "RE Süd Bf",
"type": "stop",
"parent": {
"id": "placeID:5562032:12",
"name": "Recklinghausen",
"type": "locality"
},
"properties": {
"stopId": "20003644"
},
"coord": [
5278703,
800957
],
"niveau": 0
},
"productClasses": [
0,
1,
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:3644:2",
"area": "2",
"platform": "02",
"platformName": "02",
"zone": "vrr:174"
},
"departureTimePlanned": "2023-12-01T11:43:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:3643:0:02",
"name": "Recklinghausen Karlstr.",
"disassembledName": "02",
"type": "platform",
"coord": [
5279063,
800287
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3643",
"name": "Recklinghausen Karlstr.",
"disassembledName": "Karlstr",
"type": "stop",
"parent": {
"id": "placeID:5562032:12",
"name": "Recklinghausen",
"type": "locality"
},
"properties": {
"stopId": "20003643"
},
"coord": [
5279055,
800264
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:3643",
"area": "0",
"platform": "02",
"platformName": "02",
"zone": "vrr:174"
},
"arrivalTimePlanned": "2023-12-01T11:45:00Z",
"departureTimePlanned": "2023-12-01T11:45:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:3642:2:02",
"name": "Recklinghausen Michaelstr.",
"disassembledName": "02",
"type": "platform",
"coord": [
5278758,
799889
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3642",
"name": "Recklinghausen Michaelstr.",
"disassembledName": "Michaelstr",
"type": "stop",
"parent": {
"id": "placeID:5562032:12",
"name": "Recklinghausen",
"type": "locality"
},
"properties": {
"stopId": "20003642"
},
"coord": [
5278772,
799893
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:3642:2",
"area": "2",
"platform": "02",
"platformName": "02",
"zone": "vrr:174"
},
"arrivalTimePlanned": "2023-12-01T11:46:00Z",
"departureTimePlanned": "2023-12-01T11:46:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:3641:0:02",
"name": "RE Zeche Recklinghausen II",
"disassembledName": "02",
"type": "platform",
"coord": [
5278209,
799388
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3641",
"name": "RE Zeche Recklinghausen II",
"type": "stop",
"parent": {
"id": "placeID:5562032:12",
"name": "Recklinghausen",
"type": "locality"
},
"properties": {
"stopId": "20003641"
},
"coord": [
5278227,
799385
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:3641",
"area": "0",
"platform": "02",
"platformName": "02",
"zone": "vrr:174"
},
"arrivalTimePlanned": "2023-12-01T11:47:00Z",
"departureTimePlanned": "2023-12-01T11:47:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:3640:0:01",
"name": "Recklinghausen Konradstr.",
"disassembledName": "01",
"type": "platform",
"coord": [
5277673,
799170
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3640",
"name": "Recklinghausen Konradstr.",
"disassembledName": "Konradstr",
"type": "stop",
"parent": {
"id": "placeID:5562032:12",
"name": "Recklinghausen",
"type": "locality"
},
"properties": {
"stopId": "20003640"
},
"coord": [
5277699,
799175
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "01",
"areaGid": "de:05562:3640",
"area": "0",
"platform": "01",
"platformName": "01",
"zone": "vrr:174"
},
"arrivalTimePlanned": "2023-12-01T11:48:00Z",
"departureTimePlanned": "2023-12-01T11:48:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:3639:0:02",
"name": "Herten Neue Horizonte",
"disassembledName": "02",
"type": "platform",
"coord": [
5276590,
798223
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3639",
"name": "Herten Neue Horizonte",
"disassembledName": "Neue Horizonte",
"type": "stop",
"parent": {
"id": "placeID:5562020:6",
"name": "Herten",
"type": "locality"
},
"properties": {
"stopId": "20003639"
},
"coord": [
5276622,
798223
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:3639",
"area": "0",
"platform": "02",
"platformName": "02",
"zone": "vrr:174|176"
},
"arrivalTimePlanned": "2023-12-01T11:50:00Z",
"departureTimePlanned": "2023-12-01T11:50:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:4012:0:02",
"name": "Herten Industriegebiet",
"disassembledName": "02",
"type": "platform",
"coord": [
5276094,
797892
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:4012",
"name": "Herten Industriegebiet",
"disassembledName": "Industriegebiet",
"type": "stop",
"parent": {
"id": "placeID:5562020:6",
"name": "Herten",
"type": "locality"
},
"properties": {
"stopId": "20004012"
},
"coord": [
5276181,
797928
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:4012",
"area": "0",
"platform": "02",
"platformName": "02",
"zone": "vrr:176"
},
"arrivalTimePlanned": "2023-12-01T11:51:00Z",
"departureTimePlanned": "2023-12-01T11:51:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:4011:0:02",
"name": "Herten Autobahn",
"disassembledName": "02",
"type": "platform",
"coord": [
5275594,
797491
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:4011",
"name": "Herten Autobahn",
"disassembledName": "Autobahn",
"type": "stop",
"parent": {
"id": "placeID:5562020:6",
"name": "Herten",
"type": "locality"
},
"properties": {
"stopId": "20004011"
},
"coord": [
5275617,
797494
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:4011",
"area": "0",
"platform": "02",
"platformName": "02",
"zone": "vrr:176"
},
"arrivalTimePlanned": "2023-12-01T11:52:00Z",
"departureTimePlanned": "2023-12-01T11:52:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:3634:1:01",
"name": "Herten Heiliger Dimitrios",
"disassembledName": "01",
"type": "platform",
"coord": [
5275426,
796766
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:3634",
"name": "Herten Heiliger Dimitrios",
"disassembledName": "Heiliger Dimitrios",
"type": "stop",
"parent": {
"id": "placeID:5562020:6",
"name": "Herten",
"type": "locality"
},
"properties": {
"stopId": "20003634"
},
"coord": [
5275366,
796858
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "01",
"areaGid": "de:05562:3634:1",
"area": "1",
"platform": "01",
"platformName": "01",
"zone": "vrr:176"
},
"arrivalTimePlanned": "2023-12-01T11:53:00Z",
"departureTimePlanned": "2023-12-01T11:53:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:4181:0:02",
"name": "Waldenburger Str",
"disassembledName": "02",
"type": "platform",
"coord": [
5275684,
796507
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:4181",
"name": "Waldenburger Str",
"type": "stop",
"parent": {
"id": "placeID:5562020:6",
"name": "Herten",
"type": "locality"
},
"properties": {
"stopId": "20004181"
},
"coord": [
5275680,
796525
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:4181",
"area": "0",
"platform": "02",
"platformName": "02",
"zone": "vrr:176"
},
"arrivalTimePlanned": "2023-12-01T11:54:00Z",
"departureTimePlanned": "2023-12-01T11:54:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:4173:0:02",
"name": "Herten Adalbertstr.",
"disassembledName": "02",
"type": "platform",
"coord": [
5275880,
796142
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:4173",
"name": "Herten Adalbertstr.",
"disassembledName": "Adalbertstr",
"type": "stop",
"parent": {
"id": "placeID:5562020:6",
"name": "Herten",
"type": "locality"
},
"properties": {
"stopId": "20004173"
},
"coord": [
5275893,
796135
],
"niveau": 0
},
"productClasses": [
5
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "02",
"areaGid": "de:05562:4173",
"area": "0",
"platform": "02",
"platformName": "02",
"zone": "vrr:176"
},
"arrivalTimePlanned": "2023-12-01T11:55:00Z",
"departureTimePlanned": "2023-12-01T11:55:00Z"
},
{
"isGlobalId": true,
"id": "de:05562:4982:0:01",
"name": "Gelsenkirchener Str",
"disassembledName": "01",
"type": "platform",
"coord": [
5275881,
795341
],
"niveau": 0,
"parent": {
"isGlobalId": true,
"id": "de:05562:4982",
"name": "Gelsenkirchener Str",
"type": "stop",
"parent": {
"id": "placeID:5562020:6",
"name": "Herten",
"type": "locality"
},
"properties": {
"stopId": "20004982"
},
"coord": [
5275911,
795331
],
"niveau": 0
},
"productClasses": [
5,
7
],
"properties": {
"AREA_NIVEAU_DIVA": "0",
"stoppingPointPlanned": "01",
"areaGid": "de:05562:4982",
"area": "0",
"platform": "01",
"platformName": "01",
"zone": "vrr:176"
},
"arrivalTimePlanned": "2023-12-01T11:57:00Z"
}
],
"infos": [],
"coords": [...],
"fare": {
"zones": [
{
"net": "",
"toLeg": 1,
"fromLeg": 1,
"neutralZone": "",
"zones": [],
"zonesUnited": [
[
"17"
]
]
}
]
},
"properties": {
"vehicleAccess": [
"999|0|0|0|0"
],
"PlanWheelChairAccess": "1"
}
}
],
"fare": {
"zones": [
{
"net": "vrr",
"toLeg": 1,
"fromLeg": 0,
"neutralZone": "",
"zones": [
[
"260"
],
[
"272"
],
[
"270"
],
[
"174"
],
[
"176"
]
],
"zonesUnited": [
[
"26"
],
[
"27"
],
[
"17"
]
]
}
]
},
"daysOfService": {
"rvb": "000000003EF800005FBF7EFD0003E7CF1E0EFD006FDFA0003DFBF7EE000001FB00000000"
}
}
Footpath (loose collection)
|
|--- footPathInfo* <Array<FootPathInfoClass>> [optional -> sometimes without interchange or transportation type === footpath]
|--- pathDescriptions** <PathDescriptionClass[]> [optional -> only if transportation type === footpath or interchange included]
FootPathInfoClass
|
|--- duration <number> [in secs]
|--- position <Position> [time-wise]
|--- footPathElem <FootPathElemObject[]> [not always present]
FootPathElemObject
|
|--- type <FootPathElemType>
|--- levelFrom <number>
|--- levelTo <number>
|--- origin <FluffyJourneyLocation> [id, type, coords]
|--- destination <PurpleJourneyLocation> [id, type, coords]
PathDescriptionClass
|
|--- manoeuvre <Manoeuvre>
|--- turnDirection <TurnDirection>
|--- name <string> [sometimes empty]
|--- duration <number> [in secs, can be 0]
|--- distance <number> [in meters, can be 0]
|--- coord <Array<number>> [position of specific manoeuvre]
|--- fromCoordsIndex <number> [related to interchange coords or general coords if transportation === footpath]
|--- toCoordsIndex <number> [related to interchange coords or general coords if transportation === footpath]
* Always typed as FootPathInfoClass.
** Always typed as PathDescriptionClass.
Example: Simplified Leg with footpath interchange
{
"duration": 480,
"origin": {
"isGlobalId": true,
"id": "de:05513:5613:91:7",
"name": "Gelsenkirchen Hbf",
"disassembledName": "7",
"type": "platform",
"pointType": "TRACK",
"departureTimePlanned": "2023-12-01T11:26:00Z",
"departureTimeEstimated": "2023-12-01T11:26:00Z",
...
},
"destination": {
"isGlobalId": true,
"id": "de:05562:3644:90:2",
"name": "RE Süd Bf",
"disassembledName": "2",
"type": "platform",
"pointType": "TRACK",
"arrivalTimePlanned": "2023-12-01T11:34:00Z",
"arrivalTimeEstimated": "2023-12-01T11:34:00Z",
...
},
"transportation": {
"id": "ddb:90E42: :H:j23",
"name": "Regionalzug RE42",
"disassembledName": "RE42",
"number": "RE42",
"destination": {
"id": "24041000",
"name": "Münster (Westf) Hbf",
"type": "stop"
},
...
},
"footPathInfo": [
{
"position": "AFTER",
"duration": 300
}
],
"pathDescriptions": [
{
"turnDirection": "UNKNOWN",
"manoeuvre": "LEAVE",
"name": "Ausstieg Zug rechts",
"coord": [
5278475,
801016
],
"skyDirection": 0,
"duration": 0,
"cumDuration": 27,
"distance": 0,
"cumDistance": 30,
"fromCoordsIndex": 0,
"toCoordsIndex": 0,
"properties": {
"INDOOR_TYPE": "PLATFORM_WAY"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "KEEP",
"name": "Bahnsteig",
"coord": [
5278475,
801016
],
"skyDirection": 184,
"duration": 27,
"cumDuration": 27,
"distance": 30,
"cumDistance": 30,
"fromCoordsIndex": 0,
"toCoordsIndex": 5,
"properties": {
"INDOOR_TYPE": "PLATFORM_WAY",
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "Außenrampe abwärts zur Ebene -1",
"coord": [
5278519,
801021
],
"skyDirection": 183,
"duration": 55,
"cumDuration": 82,
"distance": 61,
"cumDistance": 92,
"fromCoordsIndex": 5,
"toCoordsIndex": 6,
"properties": {
"FLOOR_LEVEL_CHANGE_DIRECTION": "DOWN",
"OUTDOOR_TYPE": "OUTDOOR_RAMP"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "Fußweg im Gebäude",
"coord": [
5278617,
801015
],
"skyDirection": 183,
"duration": 37,
"cumDuration": 120,
"distance": 42,
"cumDistance": 134,
"fromCoordsIndex": 6,
"toCoordsIndex": 12,
"properties": {
"INDOOR_TYPE": "BUILDING_WAY",
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "",
"coord": [
5278663,
800990
],
"skyDirection": 272,
"duration": 7,
"cumDuration": 127,
"distance": 8,
"cumDistance": 142,
"fromCoordsIndex": 12,
"toCoordsIndex": 13,
"properties": {
"OUTDOOR_TYPE": "HIKING_TRAIL",
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "Treppe aufwärts zur Ebene 0",
"coord": [
5278662,
800977
],
"skyDirection": 272,
"duration": 37,
"cumDuration": 164,
"distance": 8,
"cumDistance": 150,
"fromCoordsIndex": 13,
"toCoordsIndex": 14,
"properties": {
"FLOOR_LEVEL_CHANGE_DIRECTION": "UP",
"FLOOR_LEVEL_DIFFERENCE": "1",
"INDOOR_TYPE": "STAIRS"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "",
"coord": [
5278662,
800964
],
"skyDirection": 272,
"duration": 5,
"cumDuration": 170,
"distance": 6,
"cumDistance": 156,
"fromCoordsIndex": 14,
"toCoordsIndex": 15,
"properties": {
"OUTDOOR_TYPE": "HIKING_TRAIL"
}
},
{
"turnDirection": "LEFT",
"manoeuvre": "TURN",
"name": "Am Südbahnhof",
"coord": [
5278658,
800954
],
"skyDirection": 290,
"duration": 28,
"cumDuration": 199,
"distance": 32,
"cumDistance": 188,
"fromCoordsIndex": 15,
"toCoordsIndex": 18,
"properties": {
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "RIGHT",
"manoeuvre": "TURN",
"name": "Hochlarmarkstraße",
"coord": [
5278709,
800953
],
"skyDirection": 177,
"duration": 66,
"cumDuration": 266,
"distance": 74,
"cumDistance": 263,
"fromCoordsIndex": 18,
"toCoordsIndex": 24,
"properties": {
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "CONTINUE",
"name": "Hochlarmarkstraße",
"coord": [
5278727,
800834
],
"skyDirection": 262,
"duration": 0,
"cumDuration": 266,
"distance": 1,
"cumDistance": 264,
"fromCoordsIndex": 24,
"toCoordsIndex": 26,
"properties": {
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "UNKNOWN",
"manoeuvre": "ENTER",
"name": "Einstieg Niederflurbus",
"coord": [
5278716,
800830
],
"skyDirection": 0,
"duration": 0,
"cumDuration": 266,
"distance": 0,
"cumDistance": 264,
"fromCoordsIndex": 26,
"toCoordsIndex": 26
}
],
"interchange": {
"desc": "Fussweg",
"type": 100,
"coords": [...]
},
...
}
Example: Simplified footpath Leg
{
"duration": 240,
"origin": {
"isGlobalId": true,
"id": "de:05562:4252:1:01",
"name": "GLA Zweckel Mitte/Bf",
"disassembledName": "01",
"type": "platform",
"departureTimePlanned": "2023-12-01T11:33:00Z",
"departureTimeEstimated": "2023-12-01T11:33:00Z",
...
},
"destination": {
"isGlobalId": true,
"id": "de:05562:4196:90:1",
"name": "Gladbeck-Zweckel Bf",
"disassembledName": "1",
"type": "platform",
"pointType": "TRACK",
"arrivalTimePlanned": "2023-12-01T11:37:00Z",
"arrivalTimeEstimated": "2023-12-01T11:37:00Z",
...
},
"transportation": {
"product": {
"class": 99,
"name": "footpath",
"iconId": 99
},
"properties": {
"tripCode": 0,
"lineDisplay": "LINE"
}
},
"stopSequence": [
{
"isGlobalId": true,
"id": "de:05562:4252:1:01",
"name": "GLA Zweckel Mitte/Bf",
"disassembledName": "Zweckel Mitte/Bf",
"type": "platform",
"departureTimePlanned": "2023-12-01T11:33:00Z",
...
},
{
"isGlobalId": true,
"id": "de:05562:4196:90:1",
"name": "Gladbeck-Zweckel Bf",
"disassembledName": "Zweckel Bf",
"type": "platform",
"arrivalTimePlanned": "2023-12-01T11:37:00Z",
...
}
],
"footPathInfo": [
{
"position": "IDEST",
"duration": 240,
"footPathElem": [
{
"description": "",
"type": "LEVEL",
"levelFrom": 0,
"levelTo": 0,
"level": "LEVEL",
"origin": {
"id": "de:05562:4252",
"isGlobalId": true,
"type": "stop",
"coord": [
5273357,
777769
],
"properties": {
"area": 1,
"platform": 0,
"georef": "1000551939:33:MRCV:100"
}
},
"destination": {
"id": "de:05562:4196",
"isGlobalId": true,
"type": "stop",
"coord": [
5273523,
777512
],
"properties": {
"area": 60,
"platform": 0,
"georef": "320836055:2:MRCV:100"
}
}
},
{
"description": "",
"type": "STAIRS",
"levelFrom": 0,
"levelTo": -1,
"level": "DOWN",
"origin": {
"id": "de:05562:4196",
"isGlobalId": true,
"type": "stop",
"coord": [
5273523,
777512
],
"properties": {
"area": 60,
"platform": 0,
"georef": "320836055:2:MRCV:100"
}
},
"destination": {
"id": "de:05562:4196",
"isGlobalId": true,
"type": "stop",
"coord": [
5273645,
777515
],
"properties": {
"area": 90,
"platform": 0,
"georef": "1002272441:85:MRCV:100"
}
}
}
]
}
],
"pathDescriptions": [
{
"turnDirection": "UNKNOWN",
"manoeuvre": "LEAVE",
"name": "Ausstieg Niederflurbus rechts",
"coord": [
5273346,
777759
],
"skyDirection": 0,
"duration": 0,
"cumDuration": 129,
"distance": 0,
"cumDistance": 143,
"fromCoordsIndex": 0,
"toCoordsIndex": 0
},
{
"turnDirection": "STRAIGHT",
"manoeuvre": "KEEP",
"name": "Dorstener Straße",
"coord": [
5273346,
777759
],
"skyDirection": 229,
"duration": 129,
"cumDuration": 129,
"distance": 143,
"cumDistance": 143,
"fromCoordsIndex": 0,
"toCoordsIndex": 9,
"properties": {
"TRACK_ILLUMINATED": "true"
}
},
{
"turnDirection": "RIGHT",
"manoeuvre": "TURN",
"name": "Feldhauser Straße/Beethovenstraße",
"coord": [
5273496,
777584
],
"skyDirection": 212,
"duration": 48,
"cumDuration": 177,
"distance": 53,
"cumDistance": 197,
"fromCoordsIndex": 9,
"toCoordsIndex": 16
},
{
"turnDirection": "LEFT",
"manoeuvre": "TURN",
"name": "",
"coord": [
5273522,
777515
],
"skyDirection": 255,
"duration": 13,
"cumDuration": 190,
"distance": 14,
"cumDistance": 212,
"fromCoordsIndex": 16,
"toCoordsIndex": 17,
"properties": {
"FLOOR_LEVEL_CHANGE_DIRECTION": "UP",
"OUTDOOR_TYPE": "HIKING_TRAIL"
}
},
{
"turnDirection": "RIGHT",
"manoeuvre": "TURN",
"name": "Außentreppe abwärts zur Ebene 0",
"coord": [
5273546,
777513
],
"skyDirection": 185,
"duration": 9,
"cumDuration": 200,
"distance": 10,
"cumDistance": 223,
"fromCoordsIndex": 17,
"toCoordsIndex": 19,
"properties": {
"FLOOR_LEVEL_CHANGE_DIRECTION": "DOWN",
"FLOOR_LEVEL_DIFFERENCE": "-1",
"OUTDOOR_TYPE": "OUTDOOR_STAIRS"
}
},
{
"turnDirection": "LEFT",
"manoeuvre": "TURN",
"name": "Bahnsteig",
"coord": [
5273549,
777496
],
"skyDirection": 164,
"duration": 59,
"cumDuration": 260,
"distance": 66,
"cumDistance": 289,
"fromCoordsIndex": 19,
"toCoordsIndex": 23,
"properties": {
"INDOOR_TYPE": "PLATFORM_WAY",
"OUTDOOR_TYPE": "PLATFORM_WAY"
}
},
{
"turnDirection": "UNKNOWN",
"manoeuvre": "ENTER",
"name": "Einstieg Zug",
"coord": [
5273608,
777507
],
"skyDirection": 0,
"duration": 0,
"cumDuration": 260,
"distance": 0,
"cumDistance": 289,
"fromCoordsIndex": 23,
"toCoordsIndex": 24,
"properties": {
"INDOOR_TYPE": "PLATFORM_WAY",
"OUTDOOR_TYPE": "PLATFORM_WAY"
}
}
]
}
- 2023 09 15: Historic Data Aggregation (Meeting)
- 2023 07 07: Presentation Project Vision (Meeting)
- 2023 06 13: Sprint Review Project Vision (Meeting)
- 2023 05 16: Work Process (Meeting)
- 2023 05 09: Project goals (Meeting)
- 2023 05 02: Project Management Tools (Meeting)
- 2023 04 25: Exposé, General Conditions (Meeting)