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.
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.
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 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.
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. 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
Wybór API lub MCP dla Twojego produktu
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ł.