Una nuova versione di GTFS/TRIAS è stata messa in produzione insieme all’OJP.
Feedback/controlli/domande
Il seguente progetto Trello è per le domande e i commenti.
https://trello.com/b/jiIZwszF/open-journey-planner
Inviti altrimenti via opendata@sbb.ch
GTFS – RT
Esiste un nuovo GTFS che deve essere utilizzato per il GTFS-RT. Il dataset è intitolato GTFS2020: https://opentransportdata.swiss/it/dataset/timetable-2020-gtfs2020
I dati GTFS vengono caricati sul server FTP una volta alla settimana, ogni mercoledì alle 9.10, e sono quindi disponibili.
Il valore dei route_id e dei trip_id per la stessa linea/viaggio è cambiato rispetto alle vecchie versioni, perché abbiamo adattato la modellazione dei dati nel nuovo sistema OJP DIVA. Poiché i stop_id provengono da DIDOK, sono ovviamente identici in entrambi i sistemi (ODP1.0 e ODP2.0/OJP).
API: https://api.opentransportdata.swiss/gtfsrt2020
Test-Key: 57c5dbbbf1fe4d000100001842c323fa9ff44fbba0b9b925f0c052d1
Che cosa è cambiato:
- Le fermate non più utilizzate vengono ora trasmesse nel TripUpdate con “scheduled_relationship”: “skipped”.
- I valori di route_id e trip_id sono cambiati perché i dati sono modellati in modo diverso.
- route_type 907 non è più disponibile nel nuovo standard GTFS. Le 907 sono mappate a 1300.
- Nel nuovo GTFS, solo il tipo è specificato in route_desc. Ciò corrisponde a V.580. Ora cambieremo il sottomodulo in modo che contenga informazioni simili a quelle precedenti. Anche il tipo di percorso viene modificato. (Problema noto, che dovrebbe essere risolto entro la metà di ottobre).
- Le pseudo-stazioni (fermate come il tunnel di base del Lötschberg) sono incluse in Statica e RT. Purtroppo, al momento, con il tipo sbagliato. (PROBLEMA NOTO). Come soluzione, questi arresti dovrebbero essere sempre filtrati (id<1000).
GTFS-RT può essere ottenuto anche come JSON. Tuttavia, questo è destinato più che altro ai test e non al funzionamento produttivo.
- https://api.opentransportdata.swiss/gtfsrt2020/ fornisce i dati in formato protobuf binario. Questo deve essere utilizzato dalle applicazioni produttive.
- https://api.opentransportdata.swiss/gtfsrt2020/?FORMAT=json fornisce i dati in JSON. Questo deve essere utilizzato solo per visualizzare i dati e per scopi di test (ad esempio per l’analisi dei dati), non per applicazioni produttive. (FORMAT è sensibile alle maiuscole).
TRIAS
La nuova interfaccia (TRIAS2020) è documentata nelle pagine seguenti:
LocationInformationRequest è stato aggiunto a TRIAS2020.
Nuova API: https://api.opentransportdata.swiss/trias2020
Test-Key: 57c5dbbbf1fe4d000100001842c323fa9ff44fbba0b9b925f0c052d1
Che cosa è cambiato:
- LocationInformationRequest/Response è ora disponibile
- TripRequest/Response ora visualizza anche i collegamenti che richiedono un cambio di treno. Ciò significa che ci sono più tappe in un unico viaggio. Esistono anche altri tipi di gambe.
- Le posizioni dello schema devono essere specificate nell’intestazione.
- Gli elementi TRIAS sono ora trasmessi con il prefisso dello spazio dei nomi “trias:” e “siri:”. Se si usa una libreria per il parsing, questo dovrebbe continuare a funzionare senza problemi.
- I nomi delle linee sono cambiati.
Esempio TripRequest
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<?xml version="1.0" encoding="UTF-8"?> <Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/trias ../trias-xsd-v1.1/Trias.xsd"> <ServiceRequest> <siri:RequestTimestamp>2020-04-24T12:00:00Z</siri:RequestTimestamp> <siri:RequestorRef>IRMA</siri:RequestorRef> <RequestPayload> <TripRequest> <Origin> <LocationRef> <StopPlaceRef>8530813</StopPlaceRef> <LocationName> <Text>Zürich Kreuzplatz</Text> </LocationName> </LocationRef> <DepArrTime>2020-04-24T12:00:00Z</DepArrTime> </Origin> <Destination> <LocationRef> <StopPlaceRef>8503003</StopPlaceRef> <LocationName> <Text>Zürich Stadelhofen</Text> </LocationName> </LocationRef> </Destination> <Params> <NumberOfResults>10</NumberOfResults> <IncludeIntermediateStops>true</IncludeIntermediateStops> </Params> </TripRequest> </RequestPayload> </ServiceRequest> </Trias> |
Esempio TripRequest 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
<?xml version="1.0" encoding="UTF-8"?> <Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/trias ../trias-xsd-v1.1/Trias.xsd"> <ServiceRequest> <siri:RequestTimestamp>2020-04-24T12:00:00Z</siri:RequestTimestamp> <siri:RequestorRef>IRMA</siri:RequestorRef> <RequestPayload> <TripRequest> <Origin> <LocationRef> <GeoPosition> <Longitude>8.484003</Longitude> <Latitude>47.386135</Latitude> </GeoPosition> <LocationName> <Text>Altstetten</Text> </LocationName> </LocationRef> <DepArrTime>2020-04-24T12:00:00Z</DepArrTime> <IndividualTransportOptions> <Mode>walk</Mode> <MaxDistance>10000</MaxDistance> <MaxDuration>PT2H</MaxDuration> <MinDistance>1</MinDistance> <MinDuration>PT1S</MinDuration> <Speed>1000</Speed> </IndividualTransportOptions> </Origin> <Destination> <LocationRef> <GeoPosition> <Longitude>8.560054</Longitude> <Latitude>47.364618</Latitude> </GeoPosition> <LocationName> <Text>Hirslanden</Text> </LocationName> </LocationRef> <IndividualTransportOptions> <Mode>walk</Mode> <MaxDistance>10000</MaxDistance> <MaxDuration>PT2H</MaxDuration> <MinDistance>1</MinDistance> <MinDuration>PT1S</MinDuration> <Speed>1000</Speed> </IndividualTransportOptions> </Destination> <Via> <ViaPoint> <LocalityRef>23026230:17</LocalityRef> <LocationName> <Text>Winterthur</Text> </LocationName> </ViaPoint> </Via> <Params> <PtModeFilter> <Exclude>false</Exclude> <PtMode>tram</PtMode> <PtMode>bus</PtMode> <TramSubmode>cityTram</TramSubmode> <BusSubmode>regionalBus</BusSubmode> </PtModeFilter> <LineFilter> <Line> <LineRef>ojp:92080::R</LineRef> </Line> <Line> <LineRef>ojp:91012:B:H</LineRef> </Line> <Exclude>false</Exclude> </LineFilter> <OperatorFilter> <Exclude>false</Exclude> <OperatorRef>ojp:849:VerkehrsbetriebeZrich</OperatorRef> <OperatorRef>ojp:11:SchweizerischeBundesbahnenSBB</OperatorRef> </OperatorFilter> <WalkSpeed>150</WalkSpeed> <NumberOfResults>20</NumberOfResults> <IgnoreRealtimeData>true</IgnoreRealtimeData> <ImmediateTripStart>true</ImmediateTripStart> <InterchangeLimit>1</InterchangeLimit> <AlgorithmType>fastest</AlgorithmType> <!-- <AlgorithmType>fastest</AlgorithmType> <AlgorithmType>leastCost</AlgorithmType> <AlgorithmType>leastWalking</AlgorithmType> <AlgorithmType>minChanges</AlgorithmType>--> <ItModesToCover>walk</ItModesToCover> <IncludeTrackSections>true</IncludeTrackSections> <IncludeLegProjection>true</IncludeLegProjection> <IncludeTurnDescription>true</IncludeTurnDescription> <IncludeIntermediateStops>true</IncludeIntermediateStops> </Params> </TripRequest> </RequestPayload> </ServiceRequest> </Trias> |
Esempio StopEventRequest
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?xml version="1.0" encoding="UTF-8"?> <Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/trias ../trias-xsd-v1.1/Trias.xsd"> <ServiceRequest> <siri:RequestTimestamp>2020-04-24T12:00:00Z</siri:RequestTimestamp> <siri:RequestorRef>IRMA</siri:RequestorRef> <siri:MessageIdentifier>4711</siri:MessageIdentifier> <RequestPayload> <StopEventRequest> <Location> <LocationRef> <StopPlaceRef>8530813</StopPlaceRef> <LocationName> <Text>Zürich Kreuzplatz</Text> </LocationName> </LocationRef> <DepArrTime>2020-04-24T12:00:00Z</DepArrTime> </Location> <Params> <NumberOfResults>20</NumberOfResults> <StopEventType>both</StopEventType> <IncludeRealtimeData>true</IncludeRealtimeData> </Params> </StopEventRequest> </RequestPayload> </ServiceRequest> </Trias> |
Esempio TripInformationRequest
Attenzione: il JourneyRef deve essere cercato tramite una StopEventRequest o una TripRequest. Il JourneyRef può cambiare ad ogni importazione di dati di un orario. La situazione cambierà solo con l’introduzione dell’ID di viaggio svizzero.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?xml version="1.0" encoding="utf-8"?> <Trias version="1.1" xmlns="http://www.vdv.de/trias" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/trias ../trias-xsd-v1.1/Trias.xsd"> <ServiceRequest> <siri:RequestTimestamp>2020-04-24T12:00:00Z</siri:RequestTimestamp> <siri:RequestorRef>IRMA</siri:RequestorRef> <siri:MessageIdentifier>4711</siri:MessageIdentifier> <RequestPayload> <TripInfoRequest> <JourneyRef>ojp:91009:B:H:j20:18975:18975</JourneyRef> <OperatingDayRef>2020-04-24</OperatingDayRef> <Params> <IncludeCalls>true</IncludeCalls> <IncludeService>true</IncludeService> </Params> </TripInfoRequest> </RequestPayload> </ServiceRequest> </Trias> |
API-Explorer (TRIAS2020)