# GTFS, GTFS-RT e GBFS: quali differenze?

> Confronta GTFS, GTFS-RT e GBFS per scegliere i tuoi dati di mobilità: orari pianificati, informazioni aggiornate, stazioni e veicoli condivisi.

Source: https://www.roote.ai/it/guides/gtfs-gtfs-rt-e-gbfs-quali-differenze/
Language: it
Author: ROOTE

GTFS Schedule descrive l'offerta di trasporto pianificata. GTFS Realtime, spesso chiamato GTFS-RT, trasmette informazioni aggiornate sul servizio. GBFS descrive i servizi di mobilità condivisa, comprese le loro stazioni e i veicoli disponibili secondo i flussi pubblicati. Scegli il formato in base alla domanda che la tua applicazione deve risolvere.

Questi formati organizzano i dati; non garantiscono né la loro disponibilità ovunque né la qualità di ogni flusso.

## GTFS per rappresentare l'offerta pianificata

Un set GTFS Schedule raccoglie file tabellari che descrivono in particolare gli operatori, le fermate, le linee, le corse e i loro passaggi. I calendari indicano i giorni in questione. I file sono collegati tramite identificatori. [Riferimento GTFS Schedule](https://gtfs.org/documentation/schedule/reference/).

Permette di rispondere a domande come «dove si trova questa fermata?» o «quale passaggio è previsto per questo servizio?». Per utilizzare un orario è necessario interpretare il calendario e le relazioni tra i file.

Leggere solo una lista di fermate non è quindi sufficiente per ricostruire i passaggi. Al contrario, una posizione di fermata può essere utile senza mostrare gli orari.

## GTFS-RT per aggiornare le informazioni di servizio

GTFS Realtime può fornire aggiornamenti sulle corse, posizioni dei veicoli e allerte. Gli aggiornamenti delle corse riguardano in particolare i passaggi e i cambiamenti di servizio. I flussi utilizzano Protocol Buffers, un formato di serializzazione strutturato. [Introduzione a GTFS Realtime](https://gtfs.org/documentation/realtime/reference/).

Un produttore può pubblicare alcune categorie senza fornire tutte le altre. La presenza di un flusso di posizioni non garantisce stime per tutte le fermate.

Per l'interfaccia, distingui il passaggio pianificato dalla stima aggiornata. La nostra guida [orari teorici e tempo reale](https://www.roote.ai/it/guides/orari-autobus-quale-differenza-tra-orari-teorici-e-tempo-reale/) spiega questa differenza dal punto di vista dell'utente.

## GBFS per la mobilità condivisa

GBFS utilizza flussi JSON per descrivere un servizio di mobilità condivisa. A seconda del sistema e della versione, possono fornire informazioni sulle stazioni, il loro stato, i veicoli e altre caratteristiche del servizio. La documentazione distingue in particolare le informazioni sulle stazioni e gli stati di disponibilità. [Documentazione GBFS](https://github.com/MobilityData/gbfs/blob/v2.3/gbfs.md).

Separa nella tua applicazione le posizioni relativamente stabili dagli stati che evolvono rapidamente. Conserva la versione del formato e il timestamp rilevante durante l'interpretazione.

Un flusso di disponibilità non è un’API di prenotazione o sblocco. Aiuta a scoprire l'offerta; l'operazione di noleggio è di competenza del servizio interessato.

## Confronta in base al caso d'uso

| Necessità | Formato da considerare |
| --- | --- |
| Descrivere fermate e linee pianificate | GTFS Schedule |
| Interpretare i passaggi previsti e i giorni di servizio | GTFS Schedule |
| Aggiornare i passaggi o ricevere informazioni di servizio | GTFS-RT, a seconda dei flussi pubblicati |
| Localizzare stazioni o veicoli di mobilità condivisa | GBFS, a seconda dei dati pubblicati |

Esempio di progettazione: una mappa mostra fermate del tram e stazioni di biciclette. Utilizza dati strutturali per i luoghi e stati aggiornati per la disponibilità delle biciclette. I due livelli hanno esigenze diverse di cache e aggiornamento.

## Prevedere i limiti di ogni fonte

Verifica versioni, campi opzionali, copertura e diritti d'uso. Un identificatore ha senso solo nel suo contesto: due produttori possono usare stringhe identiche per entità diverse.

Prevedi anche dati mancanti o obsoleti. Una lista vuota derivata da un flusso non disponibile non deve essere presentata come assenza di servizio. Evita di sostituire silenziosamente un’informazione sconosciuta con zero.

## Usare i flussi direttamente o un'API

Un'integrazione diretta ti lascia la responsabilità di raccogliere, validare e interpretare le fonti. Un'API può offrire un contratto comune, ma devi sempre leggere la sua copertura, gli avvertimenti e le condizioni.

Per un primo caso d'uso ROOTE, consulta [come cercare le fermate vicine con un'API](https://www.roote.ai/it/guides/come-ricercare-le-fermate-di-trasporto-vicino-con-una-api/). Parti dal bisogno della tua interfaccia, poi verifica i campi realmente disponibili.

## Leggere estratti e scegliere un’architettura

In GTFS Schedule, un estratto di stop_times.txt collega una corsa, una fermata e un passaggio pianificato. L’esempio ridotto qui sotto è didattico: non costituisce un dataset GTFS completo e i suoi identificativi devono essere collegati a trips.txt, stops.txt e ai calendari.

Per GTFS Realtime, cercate l’entità utile: una TripUpdate può aggiornare un passaggio, una VehiclePosition descrive una posizione, e una Alert trasmette un’informazione di servizio. Una posizione di veicolo non è automaticamente una stima di arrivo. Il formato trasmesso è Protocol Buffers; una rappresentazione JSON diagnostica non è il flusso binario di riferimento.

In GBFS, station_information descrive le stazioni mentre station_status descrive i loro stati pubblicati. I nomi di alcuni contatori e i file disponibili cambiano a seconda della versione. L’estratto JSON qui sotto illustra GBFS 2.3 e i suoi campi num_bikes_available e num_docks_available; verificate la versione prima di usare un esempio.

Una mappa di luoghi può partire dai dati strutturali. Uno schermo delle prossime corse richiede poi gli aggiornamenti corrispondenti e un fallback esplicitamente pianificato. Uno schermo di biciclette disponibili deve gestire contatori, condizioni di noleggio e una validità temporale. Questi tre schermi non condividono automaticamente la stessa politica di cache.

```
# Extrait pédagogique de stop_times.txt
trip_id,arrival_time,departure_time,stop_id,stop_sequence
trip_demo,08:10:00,08:10:00,stop_demo,1

# Extrait pédagogique de station_status en GBFS 2.3
{
  "station_id": "station_demo",
  "num_bikes_available": 3,
  "num_docks_available": 7,
  "is_installed": true,
  "is_renting": true,
  "is_returning": true,
  "last_reported": 1720000000
}
```

[Formattare la disponibilità bici e la sua freschezza](https://www.roote.ai/it/guides/disponibilita-bici-tempo-reale-app/)

[Scegliere un’API o un MCP per il vostro prodotto](https://www.roote.ai/it/guides/api-o-mcp-quale-scegliere-per-integrare-dati-mobilita/)

## Domande frequenti

### GTFS contiene automaticamente dati in tempo reale?

No. GTFS Schedule rappresenta l'offerta pianificata; le informazioni aggiornate sono fornite da altri flussi, in particolare GTFS-RT.

### GBFS permette di sbloccare una bicicletta?

Descrive il servizio e i suoi dati pubblici. Il noleggio avviene tramite le funzionalità offerte dall'operatore.

### Un formato standard garantisce una copertura completa?

No. Il formato definisce una struttura; la copertura e le informazioni pubblicate dipendono dalle fonti.
