# GTFS, GTFS-RT dan GBFS: Apakah Perbezaannya?

> Bandingkan GTFS, GTFS-RT dan GBFS untuk memilih data mobiliti anda: jadual yang dirancang, maklumat terkini, stesen dan kenderaan kongsi.

Source: https://www.roote.ai/ms/guides/gtfs-gtfs-rt-dan-gbfs-apakah-perbezaannya/
Language: ms
Author: ROOTE

GTFS Schedule menerangkan tawaran perkhidmatan pengangkutan yang telah dirancang. GTFS Realtime, yang sering dipanggil GTFS-RT, menyampaikan maklumat terkini tentang perkhidmatan. GBFS menerangkan perkhidmatan mobiliti kongsi, termasuk stesen mereka dan kenderaan yang tersedia mengikut aliran yang diterbitkan. Pilih format berdasarkan soalan yang aplikasi anda perlu selesaikan.

Format-format ini menyusun data; mereka tidak menjamin ketersediaan data di mana-mana ataupun kualiti setiap aliran.

## GTFS untuk mewakili tawaran yang dirancang

Set GTFS Schedule mengumpulkan fail-fail tabular yang menerangkan terutamanya pengendali, hentian, laluan, perkhidmatan dan perjalanan mereka. Kalendar menunjukkan hari-hari yang berkenaan. Fail-fail ini dihubungkan melalui pengecam. [Rujukan GTFS Schedule](https://gtfs.org/documentation/schedule/reference/).

Ia membolehkan menjawab soalan seperti “di manakah hentian ini?” atau “perjalanan manakah yang dijadualkan untuk perkhidmatan ini?”. Untuk menggunakan jadual, anda perlu mentafsir kalendar dan hubungan antara fail-fail tersebut.

Membaca hanya senarai hentian tidak mencukupi untuk membina semula perjalanan. Sebaliknya, kedudukan hentian boleh berguna tanpa perlu memaparkan jadual waktu.

## GTFS-RT untuk mengemas kini maklumat perkhidmatan

GTFS Realtime boleh menyediakan kemas kini perjalanan, kedudukan kenderaan dan amaran. Kemas kini perjalanan merangkumi perjalanan dan perubahan perkhidmatan. Aliran menggunakan Protocol Buffers, format penstrukturan serialisasi. [Pengenalan GTFS Realtime](https://gtfs.org/documentation/realtime/reference/).

Penerbit boleh menerbitkan kategori tertentu tanpa menyediakan kesemua kategori lain. Kehadiran aliran kedudukan tidak menjamin anggaran untuk setiap hentian.

Untuk antara muka, bezakan perjalanan yang dirancang daripada anggaran terkini. Panduan kami [jadual teori dan masa nyata](https://www.roote.ai/ms/guides/jadual-bas-perbezaan-jadual-teoritis-dan-masa-sebenar/) menjelaskan perbezaan ini dari perspektif pengguna.

## GBFS untuk mobiliti kongsi

GBFS menggunakan aliran JSON untuk menerangkan perkhidmatan mobiliti kongsi. Bergantung pada sistem dan versi, ia boleh memberikan maklumat stesen, statusnya, kenderaan dan ciri lain perkhidmatan tersebut. Dokumentasi membezakan terutamanya maklumat stesen dan status ketersediaan. [Dokumentasi GBFS](https://github.com/MobilityData/gbfs/blob/v2.3/gbfs.md).

Pisahkan dalam aplikasi anda lokasi yang agak stabil daripada status yang berubah dengan cepat. Simpan versi format dan cap waktu yang relevan ketika mentafsir.

Aliran ketersediaan bukan adalah API tempahan atau pelepasan kenderaan. Ia membantu untuk mencari tawaran; operasi penyewaan adalah tanggungjawab perkhidmatan berkenaan.

## Bandingkan mengikut kes penggunaan

| Keperluan | Format yang perlu dilihat |
| --- | --- |
| Menerangkan hentian dan laluan yang dirancang | GTFS Schedule |
| Mentafsir perjalanan yang dijadualkan dan hari perkhidmatan | GTFS Schedule |
| Mengemas kini perjalanan atau menerima maklumat perkhidmatan | GTFS-RT, bergantung pada aliran yang diterbitkan |
| Mengesan lokasi stesen atau kenderaan mobiliti kongsi | GBFS, bergantung pada data yang diterbitkan |

Contoh reka bentuk: peta memaparkan hentian trem dan stesen basikal. Ia menggunakan data struktur untuk lokasi dan status terkini untuk ketersediaan basikal. Kedua-dua lapisan mempunyai keperluan cache dan kemas kini yang berbeza.

## Jangka had setiap sumber

Semak versi, medan pilihan, liputan dan hak penggunaan. Pengecam hanya bermakna dalam konteksnya: dua penerbit boleh menggunakan rentetan identik untuk entiti berbeza.

Sediakan juga data yang hilang atau telah usang. Senarai kosong dari aliran yang tiada tidak harus ditafsirkan sebagai ketiadaan perkhidmatan. Elakkan menggantikan maklumat tak diketahui dengan sifar tanpa kamu tahu.

## Menggunakan aliran secara langsung atau API

Integrasi langsung memberi tanggungjawab kepada anda untuk mengumpul, mengesahkan dan mentafsir sumber. API mungkin menyediakan kontrak yang seragam, tetapi anda tetap perlu membaca liputannya, amaran dan syarat.

Untuk kes penggunaan ROOTE pertama, lihat [cara mencari hentian berhampiran menggunakan API](https://www.roote.ai/ms/guides/cara-mencari-perhentian-pengangkutan-berhampiran-dengan-api/). Mulakan dengan keperluan antaramuka anda, dan semak medan yang benar-benar tersedia.

## Membaca petikan dan memilih seni bina

Dalam GTFS Schedule, petikan fail stop_times.txt menghubungkan satu perjalanan, satu hentian dan satu waktu lalu yang dijadualkan. Contoh ringkas di bawah bersifat pendidikan: ia bukan set GTFS lengkap dan pengenalannya perlu dihubungkan dengan trips.txt, stops.txt dan kalendar.

Untuk GTFS Realtime, cari entiti berguna: TripUpdate boleh mengemas kini waktu lalu, VehiclePosition menerangkan kedudukan, dan Alert menyampaikan maklumat perkhidmatan. Kedudukan kenderaan tidak secara automatik merupakan anggaran masa ketibaan. Format penghantaran adalah Protocol Buffers; representasi JSON untuk diagnostik bukan aliran binari rujukan.

Dalam GBFS, station_information menerangkan stesen manakala station_status menerangkan status yang dipaparkan. Nama beberapa penentu dan fail yang tersedia berubah mengikut versi. Petikan JSON di bawah menggambarkan GBFS 2.3 dan medan num_bikes_available serta num_docks_available; pastikan versi sebelum menggunakan contoh tersebut.

Peta lokasi boleh bermula dengan data struktur. Skrin waktu lalu akan memerlukan kemas kini yang bersesuaian dan garisan ganti yang dirancang dengan jelas. Skrin ketersediaan basikal perlu mengendalikan penentu, syarat sewaan dan kesahan masa. Ketiga-tiga skrin ini tidak secara automatik berkongsi polisi cache yang sama.

```
# 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
}
```

[Membentuk ketersediaan basikal dan ketegarannya](https://www.roote.ai/ms/guides/pamer-ketersediaan-basikal-masa-nyata-dalam-aplikasi/)

[Memilih API atau MCP untuk produk anda](https://www.roote.ai/ms/guides/api-atau-mcp-pilih-integrasi-data-mobiliti/)

## Soalan kerap

### Adakah GTFS secara automatik mengandungi masa nyata?

Tidak. GTFS Schedule mewakili tawaran yang dirancang; maklumat terkini disediakan oleh aliran lain, terutamanya GTFS-RT.

### Adakah GBFS membolehkan membuka kunci basikal?

Ia menerangkan perkhidmatan dan data awamnya. Penyewaan dibuat melalui keupayaan yang ditawarkan oleh pengendali.

### Adakah format standard menjamin liputan lengkap?

Tidak. Format hanya mentakrifkan struktur; liputan dan maklumat yang diterbitkan bergantung kepada sumber.
