# GTFS, GTFS-RT i GBFS: jakie są różnice?

> Porównaj GTFS, GTFS-RT i GBFS, aby wybrać dane mobilności: rozkłady jazdy, informacje aktualne, stacje i pojazdy współdzielone.

Source: https://www.roote.ai/pl/guides/gtfs-gtfs-rt-i-gbfs-jakie-sa-roznice/
Language: pl
Author: ROOTE

GTFS Schedule opisuje zaplanowaną ofertę transportu. GTFS Realtime, często nazywany GTFS-RT, przekazuje aktualne informacje o usługach. GBFS opisuje usługi mobilności współdzielonej, w tym stacje oraz dostępne pojazdy według publikowanych strumieni. Wybierz format w zależności od problemu, który Twoja aplikacja ma rozwiązać.

Te formaty organizują dane; nie gwarantują jednak ich dostępności wszędzie ani jakości każdego strumienia.

## GTFS do reprezentowania oferty zaplanowanej

Zestaw GTFS Schedule zawiera pliki tabelaryczne opisujące m.in. operatorów, przystanki, linie, kursy i ich przejazdy. Kalendarze wskazują odpowiednie dni. Pliki są powiązane za pomocą identyfikatorów. [Dokumentacja GTFS Schedule](https://gtfs.org/documentation/schedule/reference/).

Pozwala odpowiedzieć na pytania takie jak „gdzie znajduje się ten przystanek?” lub „jaki kurs jest zaplanowany dla tej usługi?”. Aby korzystać z rozkładu, trzeba zinterpretować kalendarz i związki między plikami.

Samo odczytanie listy przystanków nie wystarczy, aby odtworzyć kursy. Z kolei pozycja przystanku może być przydatna bez podawania rozkładów.

## GTFS-RT do aktualizacji informacji o usługach

GTFS Realtime może dostarczać aktualizacje kursów, pozycje pojazdów i alerty. Aktualizacje kursów dotyczą m.in. przejazdów i zmian usług. Strumienie korzystają z Protocol Buffers, strukturalnego formatu serializacji. [Wprowadzenie do GTFS Realtime](https://gtfs.org/documentation/realtime/reference/).

Producent może publikować wybrane kategorie bez dostarczania pozostałych. Obecność strumienia pozycji nie gwarantuje szacunków dla wszystkich przystanków.

W interfejsie rozróżnij przejazd zaplanowany od oceny zaktualizowanej. Nasz przewodnik [rozkłady teoretyczne i czas rzeczywisty](https://www.roote.ai/pl/guides/rozkldy-jazdy-komunikacji-miejskiej-roznice-miedzy-rozkldami-teoretycznymi-a-rzeczywistymi/) wyjaśnia tę różnicę z punktu widzenia użytkownika.

## GBFS dla mobilności współdzielonej

GBFS wykorzystuje strumienie JSON do opisu usługi mobilności współdzielonej. W zależności od systemu i wersji mogą one informować o stacjach, ich stanie, pojazdach i innych cechach usługi. Dokumentacja wyróżnia m.in. informacje o stacjach i dostępności. [Dokumentacja GBFS](https://github.com/MobilityData/gbfs/blob/v2.3/gbfs.md).

W aplikacji oddziel miejsca względnie stałe od stanów szybko zmieniających się. Zachowaj wersję formatu i odpowiedni znacznik czasu podczas interpretacji.

Strumień dostępności nie jest API do rezerwacji ani odblokowywania. Pomaga odkryć ofertę; operacja wypożyczenia należy do odpowiedniej usługi.

## Porównaj według przypadku użycia

| Potrzeba | Format do rozważenia |
| --- | --- |
| Opisać zaplanowane przystanki i linie | GTFS Schedule |
| Interpretować zaplanowane przejazdy i dni świadczenia usługi | GTFS Schedule |
| Aktualizować przejazdy lub otrzymywać informacje o usługach | GTFS-RT, w zależności od publikowanych strumieni |
| Zlokalizować stacje lub pojazdy mobilności współdzielonej | GBFS, w zależności od publikowanych danych |

Przykład konstrukcji: mapa pokazuje przystanki tramwajowe i stacje rowerów. Wykorzystuje dane strukturalne do lokalizacji i aktualizowane stany dostępności rowerów. Obie warstwy mają różne potrzeby cache’u i aktualizacji.

## Przewiduj ograniczenia każdego źródła

Sprawdź wersje, pola opcjonalne, zasięg i prawa użytkowania. Identyfikator ma sens tylko w kontekście: dwóch producentów może używać identycznych łańcuchów dla różnych jednostek.

Przewiduj także brakujące lub przestarzałe dane. Pusta lista z niedostępnego strumienia nie powinna być pokazywana jako brak usługi. Unikaj cichego zastępowania nieznanej informacji zerem.

## Korzystanie bezpośrednio ze strumieni lub z API

Integracja bezpośrednia nakłada na Ciebie odpowiedzialność za zbieranie, walidację i interpretację źródeł. API może oferować wspólny kontrakt, lecz zawsze musisz czytać jego zakres, ostrzeżenia i warunki.

Dla pierwszego przypadku użycia ROOTE zobacz [jak wyszukiwać przystanki w pobliżu za pomocą API](https://www.roote.ai/pl/guides/jak-wyszukac-przystanki-komunikacji-w-poblizu-z-uzyciem-api/). Zacznij od potrzeb interfejsu, potem sprawdź faktycznie dostępne pola.

## Czytanie fragmentów i wybór architektury

W GTFS Schedule, fragment pliku stop_times.txt łączy kurs, przystanek i planowany czas przejazdu. Poniższy uproszczony przykład ma cel edukacyjny: nie jest kompletnym zestawem GTFS, a jego identyfikatory muszą zostać powiązane z trips.txt, stops.txt oraz kalendarzami.

Dla GTFS Realtime szukaj przydatnej jednostki: TripUpdate może aktualizować czas przejazdu, VehiclePosition opisuje pozycję, a Alert przekazuje informacje o serwisie. Lokalizacja pojazdu nie jest automatycznym oszacowaniem przyjazdu. Format transmisji to Protocol Buffers; diagnostyczna reprezentacja JSON nie jest oryginalnym binarnym strumieniem.

W GBFS station_information opisuje stacje, a station_status ich opublikowany stan. Nazwy niektórych liczników i dostępne pliki zmieniają się w zależności od wersji. Poniższy fragment JSON ilustruje GBFS 2.3 z polami num_bikes_available i num_docks_available; przed użyciem przykładu sprawdź wersję.

Mapa miejsc może zacząć się od danych strukturalnych. Ekran nadchodzących przejazdów wymaga następnie odpowiednich aktualizacji i wyraźnie zaplanowanego fallbacku. Ekran dostępnych rowerów musi zarządzać licznikami, warunkami wypożyczenia i ważnością czasową. Te trzy ekrany nie dzielą automatycznie tej samej polityki 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
}
```

[Formatowanie dostępności roweru i jej aktualności](https://www.roote.ai/pl/guides/dostepnosc-rowerow-na-zywo-jak-wyswietlic-w-aplikacji/)

[Wybór API lub MCP dla Twojego produktu](https://www.roote.ai/pl/guides/api-czy-mcp-ktory-wybrac-do-integracji-danych-mobilnosci/)

## Często zadawane pytania

### Czy GTFS automatycznie zawiera dane w czasie rzeczywistym?

Nie. GTFS Schedule reprezentuje ofertę planowaną; aktualne informacje pochodzą z innych strumieni, w tym GTFS-RT.

### Czy GBFS umożliwia odblokowanie roweru?

Opisuje usługę i jej publiczne dane. Wypożyczenie odbywa się przez funkcje oferowane przez operatora.

### Czy format standardowy gwarantuje pełne pokrycie?

Nie. Format definiuje strukturę; pokrycie i publikowane informacje zależą od źródeł.
