Open Journey Planner

Scopri OJP, il tuo punto di contatto centralizzato per pianificare viaggi multimodali!

L’Open Journey Planner (OJP) fornisce informazioni non discriminatorie sull’orario e pianifica viaggi multimodali per tutta la Svizzera. Trasporti pubblici, carsharing, monopattini elettrici o servizi on demand: OJP ha un’unica app per tutto.

Qual è il nucleo dell’OJP?

OJP è un’interfaccia standardizzata basata su XML con comportamento di request/response che integra e consolida numerose fonti di dati a monte. In questo modo, forniamo servizi completi di mobilità, mantenendo al fornitore i dati della clientela finale e il contatto diretto.

A chi è destinato l’OJP?

I servizi OJP sono l’ideale per le app per i clienti finali e sono interessanti sia per le imprese di trasporto che per gli sviluppatori. Ad esempio, è possibile creare tabelloni delle partenze per ogni fermata in Svizzera e aprono inoltre una vasta gamma di opzioni per altri progetti di mobilità.

Vantaggi di OJP:

L’esercizio e l’ulteriore sviluppo dell’OJP sono finanziati dall’UFT. Utilizzi un’interfaccia aperta e standardizzata a condizioni moderate e addirittura gratuita per gli utenti lightweight. Ci occupiamo dell’integrazione dei dati e forniamo dati consolidati sulla mobilità tramite le API OJP.

Che cos’è OJP?

L’abbreviazione ha tre significati:

  1. Lo standard di interfaccia CEN/TS 17118 «Open API for Distributed Journey Planning», di cui al regolamento delegato (UE 2017/1926) è stata dichiarata vincolante per gli Stati membri dell’Unione europea.
  2. Il sistema di routing backend «Open Journey Planner» per calcolare gli itinerari con i trasporti pubblici (TP), i percorsi pedonali e altre offerte di mobilità.
  3. L’interfaccia OJP, ovvero l’interfaccia del sistema OJP corrispondente allo standard OJP. Sostanzialmente, si tratta di uno standard XML con un comportamento request/response. Per la Svizzera, come per tutti gli standard CEN, viene sviluppato un profilo (cosa viene supportato e cosa no). Il profilo è sicuro qui.

Su questa piattaforma Open Data, l’abbreviazione «OJP» viene generalmente utilizzata per il sistema «Open Journey Planner», se non diversamente indicato.

In questa pagina spieghiamo le differenze tra lo standard OJP (norma CEN), il sistema OJP (sistema di routing) e l’interfaccia OJP.

Chi sta dietro tutto questo?

Come descritto sopra, lo standard OJP è gestito dal Comitato europeo di normalizzazione (CEN). Il servizio commerciale Attività di sistema Informazioni alla clientela Plus (SKI+) collabora attivamente all’ulteriore sviluppo dello standard OJP su incarico dell’Ufficio federale dei trasporti (UFT). Lo standard OJP si basa sullo standard CEN Network Timetable Exchange (NeTEx). I modelli di dati di entrambi gli standard implementano a loro volta il modello di dati di riferimento per i trasporti pubblici europei, denominato Transmodel.

Il sistema OJP viene sviluppato da un fornitore di servizi esterno di SKI+. Il sistema si basa su un prodotto proprietario di un fornitore di servizi esterno. Il sistema OJP può essere controllato con lo standard OJP.

L’interfaccia OJP è basata sul Travellors Realtime Information Advisory Standard (TRIAS), che corrisponde all’istruzione 431 del Verband Deutscher Verkehrsunternehmen (VDV) segue.

Qui è disponibile una dimostrazione per testare il sistema OJP utilizzando lo standard OJP: Demo OJP

Per maggiori informazioni sulla valutazione di OJP come standard, consulta il Rapporto dell’UFT.

Perché la piattaforma Open Data offre questo?

Lo standard OJP consente un’interfaccia aperta e standardizzata per la «pianificazione distribuita degli itinerari». Di conseguenza, diversi sistemi secondo questo standard sviluppato a livello europeo possono collaborare per offrire una pianificazione integrata di viaggi transfrontalieri o diverse modalità di trasporto, oppure per permettere nuovi servizi informativi innovativi.

Il sistema OJP serve ad adempiere il mandato dell’UFT relativo a un router intermodale non discriminatorio, che può essere controllato tramite un’interfaccia conforme allo standard OJP. Il sistema OJP è pensato per l’utilizzo dei servizi di quest’ultimo per lo sviluppo di applicazioni per i clienti finali. Il contatto diretto con i clienti e i loro dati rimangono queste applicazioni per i clienti finali!

È importante capire che, nonostante la loro denominazione simile, il router e lo standard sono fondamentalmente due cose indipendenti.

È già in uso da

Mobilità integrata

La nostra base di dati attuale

Informazioni sull’accessibilità

Offerte di sharing (bike sharing, monopattini elettrici, carsharing)

Stazioni di ricarica per auto elettriche

OpenStreetMap (OSM) come base per il routing del traffico individuale

Dati sull’altitudine per calcoli più precisi dei percorsi a piedi

Una varietà di punti di interesse (POI)

Dati dell’orario dei TP con informazioni in tempo reale + annunci di evento

Orario degli autobus a lunga percorrenza internazionali


Service Level Agreement (SLA)

Offriamo un livello di servizio 2a, 7x24h. La disponibilità dei nostri sistemi è del 99,2% per garantire un esercizio sicuro ed efficiente.

Limiti e costi

L’utilizzo dell’OJP è gratuito fino a un determinato volume. Con più di 50 richieste al minuto o 20 000 richieste al giorno, si applica una tariffa minima.


Panoramica dei nostri servizi

Lo standard OJP definisce diversi endpoint dell’interfaccia (di seguito denominati solo «servizi»). Nella versione 1.0 i 7 sono i «servizi principali» e nella versione 2.0 i 9 sono i «servizi principali». Questi servizi vengono gestiti dal sistema OJP.
Il sistema OJP supporta tutti i 7 servizi della versione 1.0 che possono essere consultati e collegati (Linked Services, descritti più avanti nella sezione tecnica).
Oltre ai 7 o ai 9 servizi di base, è possibile interrogare lo stato dell’OJP (versione / formato data / ecc.). Maggiori dettagli su questo servizio sono disponibili al seguente link: Sys request OJP

Location Information Request (LIR):

La tua situazione: Desideri mostrare ai tuoi ospiti le fermate e i punti di interesse più vicini?

Cosa fa il servizio: Questo servizio individua le località più vicine.
Di cosa ha bisogno il servizio: Quando si inseriscono coordinate o indirizzi, il sistema OJP determina le località appropriate tramite una ricerca nelle vicinanze.
Cosa offre il servizio: Le fermate e i punti di interesse vicini alla località indicata.
Maggiori dettagli su questo servizio sono disponibili al seguente link: OJPLocationInformationRequest v1.0 oppure OJPLocationInformationRequest v2.0

Trip Request (TR):

La tua situazione: Vuoi calcolare un percorso con diversi mezzi di trasporto insieme alla tua famiglia?

Cosa fa il servizio: Per questo servizio, il sistema di servizio (nel nostro caso il sistema OJP) effettua un routing.
Di cosa ha bisogno il servizio: Inserendo un punto di partenza e un punto di arrivo (coordinate, indirizzo, POI o fermata), il sistema OJP calcola i collegamenti dal punto di partenza a quello di arrivo. Con ModesToCover è possibile richiedere diverse modalità. Attualmente sono disponibili le seguenti modalità: trasporti pubblici; percorso pedonale; bicicletta; auto a guida autonoma; offerte di sharing (bicicletta, monopattino elettrico, carsharing).
Cosa offre il servizio di ritorno: Il routing comprende sia un routing dei trasporti pubblici (tenendo conto dei tempi di percorrenza e delle perturbazioni attuali) sia un routing per il traffico individuale basato su una cartina (ad es. con la propria auto) basato su OpenStreetMap (OSM). Su richiesta, con il parametro di output link projection è possibile richiedere gli itinerari geografici effettivi; per i percorsi pedonali è generalmente disponibile anche una TurnDescription (navigazione con descrizione verbale).
Maggiori dettagli su questo servizio sono disponibili al seguente link: OJPTrip Request v1.0 oppure OJPTrip Request v2.0

Stop Event Request (SER):

La tua situazione: Vuoi un monitor delle partenze per la fermata davanti al tuo negozio?

Cosa fa il servizio: Il servizio determina gli orari di partenza e di arrivo di una fermata.
Di cosa ha bisogno il servizio: Nell’inserimento occorre indicare una fermata specifica.
Cosa offre il servizio: Prossime partenze/arrivi in una determinata fermata.
Maggiori dettagli su questo servizio sono disponibili al seguente link: OJPStopEventRequest v1.0 oppure OJPStopEventRequest v2.0

Trip Info Request (TIR):

La tua situazione: Hai bisogno di tutti i punti di fermata lungo il viaggio calcolato?

Cosa fa il servizio: Questo servizio determina ulteriori dettagli su un «Journey» (viaggio) già calcolato (vedi TripRequest).
Di cosa ha bisogno il servizio: È necessario indicare il journey definito in precedenza.
Cosa offre il servizio: Dettagli di un «viaggio» già calcolato.
Maggiori dettagli su questo servizio sono disponibili al seguente link: OJPTripInfoRequest v1.0 oppure OJPTripInfoRequest v2.0

Fare Request:

La tua situazione: Desideri sapere a quanto ammonta presumibilmente il viaggio che hai richiesto?

Cosa fa il servizio: Con l’aiuto dell’infrastruttura di calcolo dei costi dei trasporti pubblici in Svizzera, determina i costi previsti di una corsa data.
Di cosa ha bisogno il servizio: Il «Journey» (viaggio) determinato in precedenza deve essere fornito.
Cosa offre il servizio: Il calcolo del prezzo dei viaggi, inclusi gli sconti e la considerazione del metà-prezzo («metà-prezzo»). Il prezzo può essere consultato solo in Svizzera. IMPORTANTE: Le informazioni sui prezzi non sono vincolanti. Il prezzo effettivo viene definito solo al momento dell’ordine. Anche il numero di richieste è limitato.
Maggiori dettagli su questo servizio sono disponibili al seguente link: Beta: Tariffe OJP

Neuer Trip Change Request (TCR) – nur OJP 2.0

La tua situazione: Devi prolungare la sosta intermedia prevista a Olten?

Cosa fa il servizio: Permette di prolungare la durata di permanenza in una fermata intermedia lungo un viaggio e di visualizzare la sezione precedente o successiva. In questo modo le altre parti potrebbero essere ricalcolate.
Di cosa ha bisogno il servizio: Una leg esistente e le modifiche desiderate.
Cosa offre il servizio: Un viaggio modificato in base ai desideri.
Finora non sono stati forniti ulteriori dettagli su questo servizio.

Neuer Trip Refine Request (TRR) – nur OJP 2.0:

La tua situazione: Alcuni giorni fa hai fatto calcolare un itinerario. Ora è arrivato il giorno del viaggio e vuoi controllare le ultime informazioni?

Cosa fa il servizio: Aggiornare un viaggio già calcolato. È importante che la richiesta non sia un ricalcolo!
Di cosa ha bisogno il servizio: Un Trip esistente, con contesto e parametri. I parametri possono agire come filtro, ad esempio vengono forniti solo risultati parziali che non contengono livelli.
Cosa offre il servizio: Il servizio aggiorna il viaggio con le aggiunte desiderate, se disponibili. Importante:
È possibile che il servizio fornisca più viaggi e non (solo) quello richiesto.
Può accadere che il viaggio precedente «si rompa» con questa richiesta. Quindi il viaggio deve essere ricalcolato.
La risposta di TripRefineRequest va quindi sempre verificata!
Maggiori dettagli su questo servizio sono disponibili al seguente link: OJPTripRefineRequest

Exchange Point Request:

La tua situazione: Vuoi pianificare un viaggio in Austria e trovare punti di cambio adeguati?

Cosa fa il servizio: Fornisce un elenco di fermate che possono essere utilizzate come punti di transizione tra due regioni. La richiesta fa parte del calcolo distribuito degli itinerari dello standard OJP. Le regioni sono quelle gestite da altri sistemi distribuiti.
Di cosa ha bisogno il servizio: È necessario cercare un luogo specifico per le fermate di passaggio verso i sistemi vicini, nonché i parametri corrispondenti, ad es. il tipo di luogo (POI, fermate ecc.).
Cosa offre il servizio: Le fermate intermedie per la località richiesta o tutte le fermate intermedie che possono essere utilizzate per calcolare l’itinerario.
Si prega di contattarci per l’utilizzo di questo servizio.

Multi Point Trip Request:

La tua situazione: Desideri calcolare il percorso da Berna a Zurigo a tua zia e fare prima tappa a Olten?

Cosa fa il servizio: Per questo servizio, il sistema di servizio (nel nostro caso il sistema OJP) effettua un routing proprio come TripRequest.
Cosa serve al servizio: Oltre al punto di partenza e di arrivo (rispettivamente coordinate, indirizzo, POI o fermata) (come nel caso di TripRequest), servono punti intermedi che devono essere esplicitamente inclusi o esclusi.
Cosa offre il servizio: Come in TripRequest e Il routing comprende sia un routing dei trasporti pubblici (tenendo conto dei tempi di percorrenza e delle perturbazioni attuali), sia un routing per trasporti individuali basato su cartina (ad es. con la propria auto) e basato su OpenStreetMap (OSM). Su richiesta, con il parametro di output link projection è possibile richiedere gli itinerari geografici effettivi; per i percorsi pedonali è generalmente disponibile anche una TurnDescription (navigazione con descrizione verbale).
Si prega di contattarci per l’utilizzo di questo servizio.

Dati e interfacce

L’interfaccia OJP corrisponde a una classica interfaccia SOAP XML rispetto a una REST. Tutti gli accessi avvengono attraverso il suddetto endpoint. Devono essere impostate due intestazioni:

Content-Type: application/xml
Authorization: Bearer <Key>

Note: Raccomandiamo Pagina GitHub o la nostra interfaccia API per vedere alcuni esempi pratici. Diverse modalità non sono ancora disponibili. Le informazioni in tempo reale sono disponibili solo dove abbiamo ricevuto queste informazioni e le possiamo ottenere tramite CUS. In caso di problemi con le interfacce, questa pagina è utile: OJP – Best Practice

Grundfunktionsweise API

Richieste semplici

I servizi descritti sopra vengono distinti esponendo le Request corrispondenti nell’elemento ServiceRequest. Qui nell’esempio gestiamo un LocationInformationRequest disinserito.

Si noti che, come RequestorRef, forniscono un’indicazione univoca. Si tratta di identificare da chi viene fatta la richiesta. L’indicazione dovrebbe contenere il suffisso «_test«, «_int” oppure «_prod«, affinché in caso di analisi successive e richieste di supporto sapremo da quale ambiente si è effettuato l’accesso.

<?xml version="1.0" encoding="UTF-8"?>
<OJP xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.siri.org.uk/siri" version="1.0" xmlns:ojp="http://www.vdv.de/ojp" xsi:schemaLocation="http://www.siri.org.uk/siri ../ojp-xsd-v1.0/OJP.xsd">
	<OJPRequest>
		<ServiceRequest>
			<RequestTimestamp>2020-01-09T08:00:00Z</RequestTimestamp>
			<RequestorRef>SomeAptlyNamedTransportCompany_int</RequestorRef>
			<ojp:OJPLocationInformationRequest>
				<!-- eigentlicher Request -->
			</ojp:OJPLocationInformationRequest>
		</ServiceRequest>
	</OJPRequest>
</OJP>

Più richieste in un annuncio

All’interno di una Service Request è possibile inserire un numero qualsiasi di OJPXXXRequest diverse. Inoltre, non necessariamente devono essere dello stesso tipo.

Attenzione: le risposte non sono ordinate in ordine, ma in base alla sequenza nello XSD standard. Pertanto, nel caso di tali richieste, è estremamente importante che siano impostati i MessageIdentifier per Request e che poi possano essere letti dalla risposta. La sequenza standard è (versione 1.0):

  • ExchangePointsRequest
  • FareRequest
  • LocationInformationRequest
  • MultiPointRequest
  • StopEventRequest
  • TripInfoRequest
  • TripRequest

Aggiornamento dei dati

L’aggiornamento di dati è fondamentale per l’Open Journey Planner (OJP). Aggiornando regolarmente i nostri dati sull’orario e fornendo informazioni in tempo reale, garantiamo che i viaggiatori ricevano sempre informazioni precise su partenze, arrivi e perturbazioni, in modo da poter pianificare il loro viaggio in modo ottimale.

Spiegazione dei termini

TermineDescrizione
Stop pointUno StopPoint è una fermata lungo un orario. Può trattarsi di una fermata, un binario, un settore, un bordo fermata o anche di un elemento dinamico. Lo StopPoint viene assegnato allo StopPlace mediante uno StopAssignment.
Stop placeStopPlace è la rappresentazione fisica di una fermata. Uno StopPlace può variare le sue dimensioni. Le fermate molto grandi, come Berna o Zurigo HB, consistono di più Stop Place.
Journey, il «viaggio»Una corsa è il trasporto di clienti per un determinato itinerario, un determinato collegamento orario, con un determinato mezzo di trasporto, a un determinato orario, in una determinata direzione. Esistono diversi tipi di viaggio, ad es.: DatedJourney per una corsa di un mezzo di trasporto in un determinato giorno.
Trip, il «viaggio»Un «viaggio» e quindi una forma non specifica di viaggio più concreta. Un trip è costituito da legs (vedi sotto).
Leg, la «sezione di viaggio»Una sezione di un viaggio. Sono disponibili i seguenti tipi di leg:
ContinuousLeg: Una tappa non legata all’orario.
Cronometraggio: Posiziona secondo un orario.
TrasferimentoLeg: Una tappa, in cui si effettua un cambio treno.
DirezioneTutte le linee e i viaggi hanno una direzione. Questa aiuta principalmente le imprese di trasporto nella loro pianificazione ed eventualmente nella visualizzazione di una «stazione finale/destinazione». Si tratta quindi di un «attributo artificiale» e il significato della direzione non può essere dedotto.
FacilityUna struttura è un elemento disponibile in un «luogo» (ad es. una fermata) o in un «servizio» (ad es. un veicolo). Un esempio è la toilette della stazione o della carrozza ristorante. Attualmente vengono acquisiti dalle offerte in HRDF (vedere Indicazioni sul traffico). La mappatura viene eseguita come da Notes2FacilitiesMappingFile.
ModoLe modalità sono possibili mezzi di trasporto. Le modalità ammesse sono:
Modalità continua: Una moda che non dipende da un orario.
Individual Modes: Traffico individuale.
Modalità Pt: PtMode è una moda nel trasporto pubblico.
Modalità di trasferimento: Modalità relativa ai cambi
XXXRif.: Questi elementi sono riferimenti. In ultima analisi saranno ID generici validi in tutta la Svizzera. Tuttavia sono ancora in fase di sviluppo. Ci sarà un’evoluzione qui.

Link di approfondimento

Descrizione generale OJP

Per ulteriori dettagli e informazioni sull’OJP si rimanda alla descrizione generale in formato PDF.

Roadmap dell’ulteriore sviluppo

Il Repository GitHub funge da roadmap per lo sviluppo dell’OJP. Fornisce accesso al codice sorgente, agli sviluppi attuali e alle funzionalità previste. È possibile accedere al nuovo API Explorer: https://opentdatach.github.io/api-explorer/ojp2.0

Accesso alle API

Per poter utilizzare l’API/interfaccia è necessario un token. Questo token può essere utilizzato tramite API Manager essere ritirati.

Repository GitHub

Il testo dello standard OJP è protetto da diritto d’autore e non può essere messo a disposizione.