# GTFS, GTFS-RT e GBFS: quais as diferenças?

> Compare GTFS, GTFS-RT e GBFS para escolher seus dados de mobilidade: horários planejados, informações atualizadas, estações e veículos compartilhados.

Source: https://www.roote.ai/pt/guides/gtfs-gtfs-rt-e-gbfs-quais-diferencas/
Language: pt
Author: ROOTE

GTFS Schedule descreve a oferta de transporte planejada. GTFS Realtime, frequentemente chamado de GTFS-RT, transmite informações atualizadas sobre o serviço. GBFS descreve os serviços de mobilidade compartilhada, incluindo suas estações e os veículos disponíveis conforme os fluxos publicados. Escolha o formato a partir da questão que sua aplicação precisa resolver.

Esses formatos organizam os dados; eles não garantem nem a disponibilidade delas em todos os lugares nem a qualidade de cada fluxo.

## GTFS para representar a oferta planejada

Um conjunto GTFS Schedule reúne arquivos tabulares descrevendo, entre outros, os operadores, paradas, linhas, viagens e seus horários. Os calendários indicam os dias correspondentes. Os arquivos são interligados por identificadores. [Referência GTFS Schedule](https://gtfs.org/documentation/schedule/reference/).

Ele permite responder perguntas como “onde fica esta parada?” ou “qual passagem está prevista para este serviço?”. Para explorar um horário, você deve interpretar o calendário e as relações entre os arquivos.

Ler apenas uma lista de paradas não é suficiente para reconstruir os horários. Por outro lado, uma posição de parada pode ser útil sem exibir horários.

## GTFS-RT para atualizar a informação do serviço

GTFS Realtime pode fornecer atualizações de viagens, posições de veículos e alertas. As atualizações de viagens dizem respeito principalmente aos horários e mudanças no serviço. Os fluxos usam Protocol Buffers, um formato de serialização estruturado. [Introdução ao GTFS Realtime](https://gtfs.org/documentation/realtime/reference/).

Um produtor pode publicar algumas categorias sem fornecer todas as outras. A presença de um fluxo de posições não garante estimativas para todas as paradas.

Para a interface, distinga o horário planejado da estimativa atualizada. Nosso guia [horários teóricos e em tempo real](https://www.roote.ai/pt/guides/horarios-de-onibus-diferenca-entre-horarios-teoricos-e-tempo-real/) explica essa diferença do ponto de vista do usuário.

## GBFS para mobilidade compartilhada

GBFS usa fluxos JSON para descrever um serviço de mobilidade compartilhada. Conforme o sistema e a versão, podem informar as estações, seu estado, os veículos e outras características do serviço. A documentação distingue especialmente as informações de estação e os estados de disponibilidade. [Documentação GBFS](https://github.com/MobilityData/gbfs/blob/v2.3/gbfs.md).

Separe em sua aplicação as localizações relativamente estáveis dos estados que mudam rapidamente. Mantenha a versão do formato e a marcação de tempo relevante na interpretação.

Um fluxo de disponibilidade não é uma API de reserva ou desbloqueio. Ele ajuda a descobrir a oferta; a operação de aluguel é responsabilidade do serviço correspondente.

## Comparar conforme o caso de uso

| Necessidade | Formato a considerar |
| --- | --- |
| Descrever paradas e linhas planejadas | GTFS Schedule |
| Interpretar horários previstos e dias de serviço | GTFS Schedule |
| Atualizar horários ou receber informações de serviço | GTFS-RT, conforme os fluxos publicados |
| Localizar estações ou veículos de mobilidade compartilhada | GBFS, conforme dados publicados |

Exemplo de design: um mapa exibe paradas de bonde e estações de bicicletas. Ele usa dados estruturais para os locais e estados atualizados para a disponibilidade das bicicletas. As duas camadas têm necessidades diferentes de cache e atualização.

## Prever os limites de cada fonte

Verifique versões, campos opcionais, cobertura e direitos de uso. Um identificador só faz sentido em seu contexto: dois produtores podem usar strings idênticas para entidades diferentes.

Preveja também dados ausentes ou desatualizados. Uma lista vazia originada de um fluxo indisponível não deve ser apresentada como ausência de serviço. Evite substituir silenciosamente uma informação desconhecida por zero.

## Usar os fluxos diretamente ou uma API

Uma integração direta deixa para você a responsabilidade de coletar, validar e interpretar as fontes. Uma API pode oferecer um contrato comum, mas você sempre deve ler sua cobertura, avisos e condições.

Para um primeiro caso de uso ROOTE, consulte [como buscar paradas próximas com uma API](https://www.roote.ai/pt/guides/como-pesquisar-paradas-de-transporte-proximas-com-uma-api/). Comece pela necessidade da sua interface e depois verifique os campos realmente disponíveis.

## Ler trechos e escolher uma arquitetura

No GTFS Schedule, um trecho de stop_times.txt conecta uma viagem, uma parada e uma passagem planejada. O exemplo reduzido abaixo é didático: não constitui um conjunto completo GTFS e seus identificadores devem estar relacionados a trips.txt, stops.txt e aos calendários.

No GTFS Realtime, procure a entidade útil: uma TripUpdate pode atualizar uma passagem, uma VehiclePosition descreve uma posição, e uma Alert transmite uma informação de serviço. A posição de um veículo não é automaticamente uma estimativa de chegada. O formato transmitido é Protocol Buffers; uma representação JSON para diagnóstico não é o fluxo binário de referência.

No GBFS, station_information descreve as estações enquanto station_status descreve seus estados publicados. Os nomes de alguns contadores e os arquivos disponíveis mudam conforme a versão. O trecho JSON abaixo ilustra o GBFS 2.3 e seus campos num_bikes_available e num_docks_available; verifique a versão antes de usar um exemplo.

Um mapa de locais pode começar pelos dados estruturais. Uma tela de próximos passagens necessita depois das atualizações correspondentes e um fallback explicitamente planejado. Uma tela de bicicletas disponíveis deve gerenciar contadores, condições de aluguel e validade temporal. Essas três telas não compartilham automaticamente a mesma política de 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
}
```

[Formatar uma disponibilidade de bicicletas e sua atualização](https://www.roote.ai/pt/guides/disponibilidade-bicicletas-tempo-real-exibicao-aplicacao/)

[Escolher uma API ou um MCP para seu produto](https://www.roote.ai/pt/guides/api-ou-mcp-qual-escolher-para-integrar-dados-de-mobilidade/)

## Perguntas frequentes

### GTFS contém automaticamente dados em tempo real?

Não. GTFS Schedule representa a oferta planejada; as informações atualizadas pertencem a outros fluxos, especialmente o GTFS-RT.

### GBFS permite desbloquear uma bicicleta?

Ele descreve o serviço e seus dados públicos. O aluguel depende das capacidades oferecidas pelo operador.

### Um formato padrão garante cobertura completa?

Não. O formato define uma estrutura; a cobertura e as informações publicadas dependem das fontes.
