Crea il tuo feed di dati

Tariffe

Il formato General Transit Feed Specification (GTFS) utilizza due diversi file per definire un modello di tariffe:

  • fare_attributes.txt: questo file contiene un FareAttribute (attributo tariffa) che definisce un tipo di tariffa. Questo attributo include un prezzo, una valuta e un'impostazione che indica se il biglietto deve essere acquistato a bordo del servizio o prima di salire a bordo. Definisce inoltre il numero di cambi consentiti e la durata consentita di ogni cambio.
  • fare_rules.txt: questo file descrive come i titoli di viaggio vengono applicati nel sistema di trasporto pubblico.

Questo articolo descrive in che modo i due file interagiscono tra loro per creare un feed di dati accurato per le tariffe.

Attributi delle tariffe

 Il file fare_attributes.txt definisce gli aspetti di una tariffa (ID, tipo di pagamento e così via). Questo file ha la seguente struttura:

fare_attributes.txt file structure

Nell'esempio seguente è riportato un file fare_attributes.txt semplice:

fare_id price currency_type payment_method transfers transfer_duration
1 0.00 USD 0 0 0
2 0.50 USD 0 0 0
3 1.00 USD 0 0 0
4 1.50 USD 0 0 0
5 2.00 USD 0 0 0

Nel file fare_attributes.txt definisci price, currency_type e payment_method per ogni tariffa. Consenti o impedisci cambi con il campo transfers (0 significa che non sono consentiti cambi, 1 indica che ne è consentito uno, 2 indica che ne sono consentiti due; un campo vuoto indica un numero illimitato di cambi). Imposta la durata massima di un cambio (in secondi) nel campo transfer_duration. Il sistema calcola il valore di transfer_duration dalla partenza della prima corsa fino all'arrivo dell'ultima corsa (vedi l'esempio di seguito).

Importante:

  • Per indicare la durata di un titolo di viaggio per una tariffa che non consente cambi, imposta transfers su 0 e utilizza il campo transfer_duration per impostare il tempo di validità (in secondi).
  • A meno che non utilizzi transfer_duration per indicare la validità del titolo di viaggio, ti consigliamo di omettere o lasciare vuoto questo campo quando imposti transfers su 0. 

Regole tariffarie

 Il file fare_rules.txt descrive come i titoli di viaggio vengono applicati nel sistema di trasporto pubblico. Questo file ha la seguente struttura:

fare_rules.txt file structure

Nell'esempio seguente è riportato un file fare_rules.txt semplice:

fare_id route_id origin_id destination_id contains_id
a TSW 1 1  
a TSE 1 1  
a GRT 1 1  
a GRJ 1 1  
b GRT 3 3  
c GRT     6

Il file fare_rules.txt supporta le seguenti strutture tariffarie.

  1. Le tariffe dipendono dal percorso utilizzato nell'itinerario.
    • Per associare una tariffa a un percorso specifico, definisci il campo route_id.
    • Se una tariffa è valida per più percorsi, specifica una voce per ciascun percorso in fare_rules.txt.
  2. Le tariffe dipendono dalle zone o dalle stazioni di origine o di destinazione.
    • Per definire le regole tariffarie in base alla zona o alla stazione di origine o di destinazione, utilizza i campi origin_id e destination_id.
    • I campi origin_id e destination_id si riferiscono alle zone in cui sono ubicate le stazioni di origine e di destinazione. Per fornire queste informazioni nel file stops.txt, aggiungi il campo zone_id.
    • Per definire le regole solo in base alla stazione, definisci una zona per ogni stazione nel file stops.txt.
  3. Le tariffe dipendono dalle zone attraversate dall'itinerario.
    • Per definire le regole tariffarie in base alle zone attraversate dall'itinerario, utilizza il campo contains_id per specificare ogni zona per la quale è valida la tariffa.
    • contains_id fa riferimento a un campo zone_id definito nel file stops.txt.

La maggior parte dei sistemi utilizza una di queste strutture tariffarie o una loro combinazione. Le tariffe definite senza regole sono valide per tutti gli itinerari che soddisfano i rispettivi limiti di cambi.

Se per un itinerario specifico sono valide più tariffe, viene visualizzata l'opzione più economica.

Tariffe per più aziende

Se il feed contiene più aziende di trasporto pubblico, aggiungi il campo agency_id al file fare_attributes.txt per ogni tariffa. Una tariffa può appartenere solo a un'azienda. Se una tariffa appartiene a diverse aziende, è necessario duplicarla.

Categorie di tariffe speciali

Google Maps non supporta diverse categorie di tariffe, ad esempio adulti, anziani, bambini. Nei risultati di elaborazione del percorso sarà pubblicata solo una tariffa. Utilizza la categoria di tariffe predefinita.

Scenari di esempio e come strutturare le tariffe

Le sezioni seguenti descrivono scenari di esempio e come strutturare le tariffe.

Esempio 1: tutte le corse hanno la stessa tariffa e i cambi sono illimitati

Supponiamo che l'azienda di trasporto pubblico Demo Transit abbia la seguente struttura tariffaria:

  • I passeggeri pagano 1 $ a bordo (price='1.00', currency='USD', payment_method='0').
  • Il titolo di viaggio è valido per tutti i mezzi e non scade (transfers='').
  • I passeggeri possono viaggiare per tutto il tempo che vogliono perché il campo transfer_duration è omesso.

Poiché tutte le corse hanno la stessa tariffa, Demo Transit può omettere il file fare_rules.txt.

File fare_attributes.txt

fare_id price currency_type payment_method transfers
only_fare 1.00 USD 0  

Calcolo di una tariffa per adulti

Lo strumento di pianificazione delle corse calcola una tariffa di 1 $ per ogni tratto dell'itinerario che include un cambio di mezzo. Tuttavia, dato che sono consentiti cambi illimitati, lo strumento di pianificazione delle corse visualizza solo la tariffa più bassa, ovvero la tariffa per adulti pari a 1 $.

Esempio 2: tutte le corse hanno la stessa tariffa e non sono consentiti cambi

Supponiamo che l'azienda di trasporto pubblico Demo Transit abbia la seguente struttura tariffaria:

  • I passeggeri pagano 1 $ a bordo (price='1.00', currency='USD', payment_method='0').
  • I passeggeri possono viaggiare per tutto il tempo che vogliono perché il campo transfer_duration è omesso.
  • Per ogni eventuale cambio di mezzo è richiesta una nuova tariffa (transfers='0').

Poiché tutte le corse hanno la stessa tariffa, Demo Transit può omettere il file fare_rules.txt.

File fare_attributes.txt

fare_id price currency_type payment_method transfers
only_fare 1.00 USD 0 0

Calcolo di una tariffa per adulti

Lo strumento di pianificazione delle corse calcola una tariffa di 1 $ per ogni tratto dell'itinerario che include un cambio di mezzo. La tariffa di un itinerario che richiede un cambio di autobus sarà quindi pari a 2 $.

Esempio 3: tutte le corse hanno la stessa tariffa e i cambi sono consentiti

Supponiamo che l'azienda di trasporto pubblico Demo Transit abbia la seguente struttura tariffaria:

  • I passeggeri pagano 1 $ a bordo (price='1.00', currency='USD', payment_method='0').
  • Sono consentiti cambi illimitati entro 90 minuti (transfers='', transfer_duration='5400').

Poiché tutte le corse hanno la stessa tariffa, Demo Transit può omettere il file fare_rules.txt.

File fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
only_fare 1.00 USD 0   5400

Calcolo di una tariffa per adulti

Lo strumento di pianificazione delle corse calcola una tariffa di 1 $ per ogni tratto dell'itinerario che include un cambio di mezzo. Calcola quindi la durata dell'itinerario. Se questa è inferiore a 90 minuti, la tariffa è pari a 1 $.

Esempio 4: prezzi diversi per percorsi locali e rapidi

Supponiamo che l'azienda di trasporto pubblico Demo Transit abbia la seguente struttura tariffaria:

  1. I passeggeri pagano 1,75 $ a bordo di autobus locali (percorso 1).
  2. I passeggeri pagano 5 $ a bordo di autobus con servizio rapido (percorsi 2 e 3).
  3. Non sono consentiti cambi.

Poiché alcune corse costano più di altre, Demo Transit deve includere il file fare_rules.txt e ogni percorso deve avere una voce distinta da associare a una tariffa.

File fare_attributes.txt

fare_id price currency_type payment_method transfers
local_fare 1,75 USD 0 0
express_fare 5.00 USD 0 0

 

File fare_rules.txt

fare_id route_id
local_fare Route_1
express_fare Route_2
express_fare Route_3

Calcolo di una tariffa per adulti

La tariffa da 5 $ è valida solo per il percorso 2 o 3. La tariffa 1,75 $ è valida solo per il percorso 1. Se un itinerario utilizza i percorsi 1 e 2, la tariffa è 6,75 $.

Esempio 5: l'acquisto di un cambio aumenta la tariffa

Supponiamo che l'azienda di trasporto pubblico Demo Transit abbia la seguente struttura tariffaria:

  • I passeggeri pagano 1,75 $ a bordo di autobus locali.
  • I passeggeri possono acquistare a bordo un cambio pagando una maggiorazione di 0,25 $.
  • I cambi acquistati sono validi per 90 minuti.

Poiché queste regole sono valide per tutte le corse, Demo Transit può omettere il file fare_rules.txt.

File fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
simple_fare 1,75 USD 0 0  
plustransfer_fare 2.00 USD 0   5400

Calcolo di una tariffa per adulti

Tecnicamente, entrambe le tariffe si applicano agli itinerari che non prevedono cambi. Tuttavia, lo strumento di pianificazione delle corse sceglie sempre la tariffa più economica applicabile:

  • Per un itinerario con un cambio, la tariffa simple_fare è 3,50 $, rispetto a 2,00 $ se l'utente acquista un cambio. Lo strumento di pianificazione delle corse calcola pertanto una tariffa di 2 $ per tutti gli itinerari che richiedono un cambio di mezzo.
  • Per un itinerario senza cambi, la tariffa di 1,75 $ è inferiore a quella di plustransfer_fare pari a 2,00 $. Se un itinerario non richiede cambi, la tariffa è quindi pari a 1,75 $. 

Esempio 6: la tariffa dipende dalla combinazione tra stazione di origine e di destinazione, non dalle corse effettuate per raggiungere la destinazione

In questo esempio sono importanti solo i punti di entrata e di uscita dal sistema. Per definire questa struttura tariffaria per il feed, ogni stazione deve avere un proprio ID zona univoco definito nel file stops.txt. Ogni stazione è considerata un'unica zona.

  • Nei file fare_attributes.txt e fare_rules.txt ogni riga definisce ciascuna coppia di stazioni.
  • Nel file fare_attributes.txt, i campi origin_id e destination_id identificano coppie di stazioni per ID zona.

File fare_attributes.txt

fare_id price currency_type payment_method transfers
!S1_to_S2 1.75 USD 0  
!S1_to_S3 3,25 USD 0  
!S1_to_S4 4.55 USD 0  
       
!S10_to_S1 5.65 USD 0  

File fare_rules.txt

fare_id origin_id destination_id
!S1_to_S2 S1 S2
!S1_to_S3 S1 S3
!S1_to_S4 S1 S4
   
!S10_to_S1 S10 S1

Calcolo di una tariffa per adulti

Lo strumento di pianificazione delle corse calcola un itinerario, quindi cerca nelle regole tariffarie la coppia di stazioni di origine/destinazione corrispondente. Il feed pubblico del sistema di trasporto pubblico BART (Bay Area Rapid Transit) di San Francisco è un esempio reale di questo tipo di struttura tariffaria.

Esempio 7: la tariffa dipende dalle zone

Supponiamo che l'azienda di trasporto pubblico Demo Transit abbia un sistema concentrico a tre zone, in cui le tariffe dipendono dalle zone attraversate da un passeggero durante un itinerario. Per definire questa struttura tariffaria per il feed, i file fare_attributes.txt e fare_rules.txt devono contenere una riga per ogni possibile combinazione di zone. Per strutture tariffarie molto complesse basate su più zone, potrebbe essere più semplice creare in modo programmatico il file fare_rules.txt utilizzando le stazioni di origine e di destinazione per definire le tariffe.

File fare_attributes.txt

fare_id price currency_type payment_method transfers
F1 4.15 USD 0  
F2 2.20 USD 0  
F3 2.20 USD 0  
F4 2.95 USD 0  
F5 1.25 USD 0  
F6 1.95 USD 0  
F7 1.95 USD 0  

File fare_rules.txt

fare_id contains_id
F1 1
F1 2
F1 3
F2 1
F2 2
F3 1
F3 3
F4 2
F4 3
F5 1
F6 2
F7 3

Calcolo di una tariffa per adulti

Analizziamo meglio le definizioni incluse nel file fare_rules.txt.

  • La tariffa F1 è valida per tutte le corse che attraversano le zone (1,2,3).
  • La tariffa F2 è valida per tutte le corse che attraversano le zone (1,2).
  • La tariffa F3 è valida per tutte le corse che attraversano le zone (1,3).
  • La tariffa F4 è valida per tutte le corse che attraversano le zone (2,3).
  • La tariffa F5 è valida per tutte le corse che attraversano solo la zona 1.
  • La tariffa F6 è valida per tutte le corse che attraversano solo la zona 2.
  • La tariffa F7 è valida per tutte le corse che attraversano solo la zona 3.

Lo strumento di pianificazione delle corse calcola un itinerario, quindi cerca nelle regole tariffarie le tariffe applicabili in base alla zona. Per una corsa dalla zona 2 alla zona 3, si applica solo la tariffa F4 (2,95 $), poiché la tariffa F1 include anche l'attraversamento della zona 1. Una regola tariffaria viene applicata solo quando l'insieme di zone attraversate da un itinerario corrisponde esattamente a quello specificato nella regola tariffaria. Per una corsa tra le zone 2 e 3, lo strumento di pianificazione delle corse calcola 2,95 $ come tariffa per adulti.

Esempio 8: influenza dei campi transfers e transfer_duration

Di seguito è riportato un esempio di cambio:

  • La corsa 1 parte alle 10:00 e arriva alle 11:00.
  • La corsa 2 parte alle 11:15 e arriva alle 12:00.
  • Affinché la tariffa sia valida per l'intero percorso, deve essere abilitata per almeno 1 cambio e per una durata (transfer_duration) di almeno 2 ore (dalle 10:00 alle 12:00).

Esempio 9: tariffe e cambi a blocchi

Una cambio a blocchi combina due corse appartenenti a percorsi diversi e consente ai passeggeri di rimanere sullo stesso mezzo quando passano da un percorso all'altro. Per una corsa che prevede un cambio a blocchi, il sistema seleziona una tariffa per tutti i percorsi coinvolti. I cambi a blocchi non sono considerati cambi ai fini della definizione del modello di tariffe.

Nell'esempio seguente è riportato un modello di tariffa per un cambio a blocchi:

  • Supponiamo siano disponibili due percorsi, A e B.
  • Ogni corsa sul percorso A o B costa 1 $ e ogni corsa che include A e B costa 2 $.

I valori nei file fare_attributes.txt e fare_rules.txt saranno i seguenti:

File fare_attributes.txt

fare_id price currency_type payment_method transfers transfer_duration
fare_A 1.00 USD 0 0  
fare_B 1.00 USD 0 0  
fare_AB 2.00 USD 0 0  

File fare_rules.txt

fare_id route_id origin_id destination_id contains_id
fare_A route_A        
fare_B route_B        
fare_AB route_A        
fare_AB route_B        
 

Hai bisogno di ulteriore assistenza?

Prova i passaggi successivi indicati di seguito:

Ricerca
Cancella ricerca
Chiudi ricerca
Menu principale
6799108150996555943
true
Cerca nel Centro assistenza
true
true
true
true
true
82656
false
false