Referensi GTFS-realtime

Feed GTFS Realtime memungkinkan perusahaan transportasi umum memberikan informasi realtime kepada konsumen tentang gangguan pada layanan mereka (stasiun ditutup, jalur tidak beroperasi, keterlambatan yang bersifat penting, dsb.), lokasi kendaraan, dan perkiraan waktu kedatangan.

Spesifikasi feed versi 2.0 dibahas dan didokumentasikan di situs ini.

Definisi Istilah

Wajib

Di GTFS-realtime v2.0 dan versi yang lebih tinggi, kolom Wajib menggambarkan kolom apa yang harus disediakan oleh produsen agar data transportasi umum valid dan dipahami oleh aplikasi yang menggunakannya.

Nilai berikut digunakan di kolom Wajib:

  • Wajib: Kolom ini harus disediakan oleh produsen feed GTFS-realtime.
  • Wajib bersyarat: Kolom ini wajib ada dalam kondisi tertentu, yang dijelaskan di kolom Deskripsi. Di luar kondisi tersebut, kolom ini bersifat opsional.
  • Opsional: Kolom ini bersifat opsional dan tidak diwajibkan untuk diterapkan oleh produsen. Namun, jika data tersebut tersedia dalam sistem lokasi kendaraan otomatis pokok (mis., VehiclePosition timestamp), sebaiknya produsen menyediakan kolom opsional ini jika memungkinkan.

Perhatikan bahwa persyaratan semantik tidak ditentukan di GTFS-realtime versi 1.0, sehingga feed dengan gtfs_realtime_version 1 mungkin tidak memenuhi persyaratan ini (informasi selengkapnya, lihat proposal untuk persyaratan semantik).

Kardinalitas

Kardinalitas mewakili jumlah elemen yang mungkin disediakan untuk kolom spesifik, dengan nilai berikut:

Selalu rujuk kolom Wajib dan Deskripsi untuk melihat kapan kolom bersifat wajib, wajib bersyarat, atau opsional. Rujuk gtfs-realtime.proto untuk kardinalitas Buffering Protokol.

Jenis data Buffering Protokol

Jenis data buffering protokol berikut digunakan untuk menggambarkan elemen feed:

  • pesan: Jenis kompleks
  • enum: Daftar nilai tetap

Kolom eksperimen

Kolom yang diberi label sebagai eksperimental dapat berubah sewaktu-waktu dan belum diterapkan secara formal ke dalam spesifikasi. Kolom eksperimental mungkin diadopsi secara formal di masa mendatang.

Indeks Elemen

Elemen

pesan FeedMessage

Konten pesan feed. Masing-masing pesan dalam aliran data diperoleh sebagai respons terhadap permintaan HTTP GET yang sesuai. Feed realtime selalu ditentukan dalam kaitannya dengan data GTFS yang ada. Semua ID entitas ditangani berdasarkan data GTFS.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
header FeedHeader Wajib Satu Metadata tentang feed dan pesan feed ini.
entity FeedEntity Wajib bersyarat Banyak Konten feed. Jika ada informasi real-time yang tersedia untuk sistem transportasi umum, kolom ini harus diisi. Jika kolom ini kosong, konsumen akan berasumsi bahwa tidak ada informasi real-time yang tersedia untuk sistem.

pesan FeedHeader

Metadata tentang feed, termasuk dalam pesan feed.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
gtfs_realtime_version string Wajib Satu Versi spesifikasi feed. Versi saat ini adalah 2.0.
incrementality Incrementality Wajib Satu
timestamp uint64 Wajib Satu Stempel waktu ini menandai momen konten feed ini dibuat (berdasarkan waktu server). Dalam waktu POSIX (yaitu, jumlah detik sejak 1 Januari 1970 00:00:00 UTC). Untuk menghindari distorsi waktu antara sistem yang menghasilkan dan menggunakan informasi realtime, sangat disarankan untuk mendapatkan timestamp dari server waktu. Tidak mengapa jika Anda menggunakan Stratum 3 atau bahkan server strata yang lebih rendah karena perbedaan waktu hingga beberapa detik masih dapat diterima.

enum Incrementality

Menentukan apakah pengambilan saat ini bersifat inkremental.

  • FULL_DATASET: pembaruan feed ini akan menimpa semua informasi realtime sebelumnya untuk feed. Dengan demikian, pembaruan ini diharapkan akan memberikan ringkasan lengkap tentang semua informasi realtime yang diketahui.
  • DIFFERENTIAL: sekarang mode ini belum didukung dan perilaku belum ditetapkan untuk feed yang menggunakan mode ini. Ada diskusi di milis GTFS Realtime seputar penetapan sepenuhnya perilaku mode DIFFERENTIAL dan dokumentasinya akan diperbarui saat diskusi tersebut dituntaskan.

Nilai

Nilai
FULL_DATASET
DIFFERENTIAL

pesan FeedEntity

Definisi (atau pembaruan) entitas di feed transit. Jika entitas tidak dihapus, tepat satu kolom trip_update, vehicle, dan alert harus diisi.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
id string Wajib Satu ID unik feed untuk entitas ini. ID hanya digunakan untuk memberikan dukungan inkremental. Entitas aktual yang dirujuk oleh feed harus ditetapkan oleh pemilih eksplisit (lihat EntitySelector di bawah untuk informasi selengkapnya).
is_deleted bool Opsional Satu Apakah entitas ini akan dihapus. Jika hanya diisi untuk feed dengan Incrementality DIFFERENTIAL - kolom ini TIDAK boleh diisi untuk feed dengan Incrementality FULL_DATASET.
trip_update TripUpdate Wajib bersyarat Satu Data tentang keterlambatan keberangkatan realtime dari suatu perjalanan. Setidaknya salah satu kolom trip_update, vehicle, atau alert harus diberikan - semua kolom tersebut tidak boleh kosong.
vehicle VehiclePosition Wajib bersyarat Satu Data tentang posisi realtime kendaraan. Setidaknya salah satu kolom trip_update, vehicle, atau alert harus diberikan - semua kolom tersebut tidak boleh kosong.
alert Alert Wajib bersyarat Satu Data tentang notifikasi realtime. Setidaknya salah satu kolom trip_update, vehicle, atau alert harus diberikan - semua kolom tersebut tidak boleh kosong.

pesan TripUpdate

Info terbaru realtime tentang pergerakan kendaraan di sepanjang perjalanan. Silakan lihat diskusi umum tentang entitas info terbaru perjalanan.

Bergantung pada nilai ScheduleRelationship, TripUpdate dapat menentukan:

  • Perjalanan yang dilakukan sesuai jadwal.
  • Perjalanan yang dilakukan di sepanjang rute, tetapi tidak memiliki jadwal tetap.
  • Perjalanan yang telah ditambahkan atau dihapus terkait jadwal.

Info terbaru bisa untuk masa mendatang, perkiraan peristiwa kedatangan/keberangkatan, atau untuk peristiwa masa lalu yang telah terjadi. Di sebagian besar kasus, informasi tentang peristiwa masa lalu merupakan nilai terukur sehingga rekomendasi nilai ketidakpastiannya adalah 0. Meskipun jika kemungkinan ada kasus ketika hal ini tidak dapat diterapkan, Anda boleh menggunakan nilai ketidakpastian yang berbeda dari 0 untuk peristiwa masa lalu. Jika ketidakpastian info terbaru bukan 0, berarti info terbaru tersebut merupakan perkiraan prediksi untuk perjalanan yang belum selesai, atau pengukurannya tidak tepat, atau info terbarunya merupakan prediksi untuk peristiwa yang sudah berlalu tetapi belum diverifikasi setelah peristiwa tersebut terjadi.

Perhatikan bahwa info terbaru dapat mendeskripsikan perjalanan yang telah selesai. Oleh karena itu, cukup berikan info terbaru untuk perhentian terakhir dalam perjalanan tersebut. Jika waktu kedatangan di perhentian terakhir adalah waktu yang sudah berlalu, klien akan menyimpulkan bahwa keseluruhan perjalanan berlangsung di waktu yang sudah berlalu tersebut (info terbaru untuk perhentian sebelumnya dapat juga diberikan, meskipun tidak penting). Opsi ini paling relevan untuk perjalanan yang telah selesai lebih awal dari jadwal, tetapi menurut jadwal, perjalanan masih berlangsung saat ini. Menghapus info terbaru untuk perjalanan ini dapat membuat klien beranggapan bahwa perjalanan tersebut masih berlangsung. Perhatikan bahwa penyedia feed diizinkan, tetap tidak diwajibkan, untuk menghapus info terbaru di masa lalu - ini adalah salah satu kasus saat tindakan tersebut akan berguna jika dilakukan.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
trip TripDescriptor Wajib Satu Perjalanan yang memberlakukan pesan ini. Hanya boleh ada maksimal satu entitas TripUpdate untuk setiap instance perjalanan aktual. Jika tidak ada sama sekali, berarti tidak ada informasi prediksi yang tersedia. Meski tidak ada, bukan berarti perjalanan masih berlangsung sesuai jadwal.
vehicle VehicleDescriptor Opsional Satu Informasi tambahan tentang kendaraan untuk perjalanan ini.
stop_time_update StopTimeUpdate Wajib bersyarat Banyak Info terbaru StopTimes untuk perjalanan (keduanya di masa mendatang, yaitu, prediksi, dan di beberapa kasus, di masa lalu, yaitu yang telah terjadi). Info terbaru harus diurutkan berdasarkan stop_sequence, dan diterapkan untuk semua perhentian perjalanan berikut hingga stop_time_update berikutnya yang ditetapkan. Setidaknya satu stop_time_update harus diberikan untuk perjalanan tersebut, kecuali jika trip.schedule_relationship CANCELED - jika perjalanan dibatalkan, stop_time_updates tidak perlu diberikan.
timestamp uint64 Opsional Satu Momen saat pergerakan real-time kendaraan diukur. Dalam waktu POSIX (yaitu, jumlah detik sejak 1 Januari 1970 00:00:00 UTC).
delay int32 Opsional Satu Penyimpangan jadwal saat ini untuk perjalanan. delay hanya akan ditentukan saat prediksi diberikan, relatif terhadap jadwal tertentu yang ada di GTFS.
delay (dalam detik) dapat bernilai positif (artinya kendaraan terlambat) atau negatif (artinya kendaraan mendahului jadwal). delay 0 berarti kendaraan tepat waktu.
Informasi keterlambatan di StopTimeUpdates lebih diprioritaskan daripada informasi keterlambatan tingkat perjalanan, keterlambatan tingkat perjalanan tersebut hanya disebarkan sampai perhentian berikutnya di sepanjang perjalanan dengan nilai StopTimeUpdate delay ditetapkan.
Penyedia feed sangat dianjurkan untuk memberikan nilai TripUpdate.timestamp yang mengindikasikan kapan nilai delay terakhir diperbarui, untuk mengevaluasi keaktualan data.
Perhatian: kolom ini masih bersifat eksperimental, dan dapat berubah sewaktu-waktu. Kolom ini mungkin diadopsi secara formal di masa mendatang.

pesan StopTimeEvent

Informasi waktu untuk 1 peristiwa yang sudah diprediksi (kedatangan atau keberangkatan). Waktu terdiri dari keterlambatan dan/atau estimasi waktu, dan ketidakpastian.

  • delay harus digunakan saat prediksi diberikan relatif terhadap jadwal tertentu yang ada di GTFS.
  • time harus diberikan tanpa melihat apakah ada jadwal yang diprediksi atau tidak. Jika time dan delay ditetapkan, time akan diprioritaskan (meskipun biasanya, time, jika diberikan untuk perjalanan terjadwal, harus sama dengan waktu yang dijadwalkan di keterlambatan GTFS +).

Ketidakpastian berlaku sama untuk waktu dan keterlambatan. Ketidakpastian kurang lebih menentukan error yang diantisipasi dalam keterlambatan yang sebenarnya (tetapi perhatikan, makna statistik yang tepat belum didefinisikan). Ketidakpastian dapat berada di angka 0, misalnya untuk kereta yang dikemudikan dengan kontrol waktu komputer.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
delay int32 Wajib bersyarat Satu delay (dalam detik) dapat bersifat positif (artinya kendaraan terlambat) atau negatif (artinya kendaraan mendahului jadwal). delay 0 berarti kendaraan tepat waktu. delay atau time harus diberikan dalam StopTimeEvent - kedua kolom ini tidak boleh kosong.
time int64 Wajib bersyarat Satu Peristiwa sebagai waktu absolut. Dalam waktu POSIX (yaitu, jumlah detik sejak 1 Januari 1970 00:00:00 UTC). delay atau time harus diberikan dalam StopTimeEvent - kedua kolom ini tidak boleh kosong.
uncertainty int32 Opsional Satu Jika ketidakpastian dihapus, ini akan ditafsirkan sebagai tidak diketahui. Untuk menentukan prediksi yang benar-benar pasti, tetapkan ketidakpastian ke 0.

pesan StopTimeUpdate

Info terbaru realtime untuk peristiwa kedatangan dan/atau keberangkatan untuk perhentian tertentu dalam perjalanan. Lihat diskusi umum tentang update waktu perhentian dalam dokumentasi TripDescriptor dan entitas update perjalanan.

Info terbaru bisa diberikan untuk peristiwa masa lalu dan masa mendatang. Produser diizinkan, meskipun tidak diwajibkan, untuk mengabaikan peristiwa masa lalu. Update ditautkan ke perhentian spesifik melalui stop_sequence atau stop_id, jadi salah satu kolom ini harus ditetapkan. Jika stop_id yang sama dikunjungi beberapa kali dalam sebuah perjalanan, stop_sequence harus diberikan di semua StopTimeUpdates untuk stop_id tersebut dalam perjalanan tersebut.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
stop_sequence uint32 Wajib bersyarat Satu Harus sama seperti di stop_times.txt dalam feed GTFS yang sesuai. stop_sequence atau stop_id harus diberikan dalam StopTimeUpdate - kedua kolom ini tidak boleh kosong. stop_sequence diperlukan untuk perjalanan yang mengunjungi stop_id yang sama beberapa kali (mis., sebuah loop) untuk memperjelas perhentian mana yang dimaksud dalam prediksi.
stop_id string Wajib bersyarat Satu Harus sama seperti di stops.txt dalam feed GTFS yang sesuai. stop_sequence atau stop_id harus diberikan dalam StopTimeUpdate - kedua kolom ini tidak boleh kosong.
arrival StopTimeEvent Wajib bersyarat Satu Jika schedule_relationship kosong atau SCHEDULED, arrival atau departure harus diberikan dalam StopTimeUpdate - kedua kolom ini tidak boleh kosong. arrival dan departure boleh kosong jika schedule_relationship SKIPPED. Jika schedule_relationship adalah NO_DATA, arrival dan departure harus kosong.
departure StopTimeEvent Wajib bersyarat Satu Jika schedule_relationship kosong atau SCHEDULED, arrival atau departure harus diberikan dalam StopTimeUpdate - kedua kolom ini tidak boleh kosong. arrival dan departure boleh kosong jika schedule_relationship SKIPPED. Jika schedule_relationship adalah NO_DATA, arrival dan departure harus kosong.
schedule_relationship ScheduleRelationship Opsional Satu Hubungan default-nya adalah SCHEDULED.

enum ScheduleRelationship

Hubungan antara StopTime ini dan jadwal statis.

Nilai

Nilai Komentar
SCHEDULED Kendaraannya melaju sesuai jadwal perhentian statisnya, meskipun tidak otomatis sesuai dengan waktu dalam jadwal. Ini adalah perilaku default. Setidaknya satu arrival dan departure harus diberikan.
SKIPPED Perhentian dilewati, artinya, kendaraan tidak akan berhenti di perhentian ini. Kolom arrival dan departure bersifat opsional.
NO_DATA Tidak ada data yang diberikan untuk perhentian ini. Ini menunjukkan bahwa tidak ada informasi realtime. Jika ditetapkan, NO_DATA disebarluaskan ke perhentian berikutnya, jadi ini adalah cara yang direkomendasikan untuk menetapkan dari perhentian mana Anda tidak memiliki informasi realtime. Jika NO_DATA ditetapkan, arrival atau departure tidak akan diberikan.

pesan VehiclePosition

Informasi posisi realtime untuk kendaraan tertentu.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
trip TripDescriptor Opsional Satu Perjalanan yang digunakan kendaraan ini. Boleh kosong atau diisi sebagian jika kendaraan tidak dapat diidentifikasi dengan instance perjalanan yang diberikan.
vehicle VehicleDescriptor Opsional Satu Informasi tambahan tentang kendaraan untuk perjalanan ini. Setiap entri harus memiliki ID kendaraan unik.
position Position Opsional Satu Posisi kendaraan saat ini.
current_stop_sequence uint32 Opsional Satu Indeks urutan perhentian dari perhentian saat ini. Makna current_stop_sequence (yaitu, perhentian yang menjadi acuan) ditentukan oleh current_status. Jika current_status tidak ada, IN_TRANSIT_TO akan diasumsikan.
stop_id string Opsional Satu Mengidentifikasi perhentian saat ini. Nilai harus sama seperti di stops.txt dalam feed GTFS yang sesuai.
current_status VehicleStopStatus Opsional Satu Status presisi kendaraan terkait dengan perhentian saat ini. Diabaikan jika current_stop_sequence tidak ada.
timestamp uint64 Opsional Satu Momen saat posisi kendaraan diukur. Dalam waktu POSIX (yaitu, jumlah detik sejak 1 Januari 1970 00:00:00 UTC).
congestion_level CongestionLevel Opsional Satu
occupancy_status OccupancyStatus Opsional Satu Tingkat kepadatan penumpang kendaraan.
Perhatian: kolom ini masih bersifat eksperimental, dan dapat berubah sewaktu-waktu. Kolom ini mungkin diadopsi secara formal di masa mendatang.

enum VehicleStopStatus

Nilai

Nilai Komentar
INCOMING_AT Kendaraan baru akan tiba di perhentian (di tampilan perhentian, simbol kendaraan biasanya berkedip).
STOPPED_AT Kendaraan berhenti di perhentian.
IN_TRANSIT_TO Kendaraan telah meninggalkan perhentian sebelumnya dan sedang dalam perjalanan.

enum CongestionLevel

Tingkat kemacetan yang memengaruhi kendaraan ini.

Nilai

Nilai
UNKNOWN_CONGESTION_LEVEL
RUNNING_SMOOTHLY
STOP_AND_GO
CONGESTION
SEVERE_CONGESTION

enum OccupancyStatus

Tingkat kepadatan penumpang untuk kendaraan.

Perhatian: kolom ini masih bersifat eksperimental, dan dapat berubah sewaktu-waktu. Kolom ini mungkin diadopsi secara formal di masa mendatang.

Nilai

Nilai Komentar
EMPTY Kendaraan dianggap kosong oleh sebagian besar pengukuran, dan mengangkut sedikit penumpang atau tidak sama sekali, tetapi masih menerima penumpang.
MANY_SEATS_AVAILABLE Kendaraan atau gerbong memiliki persentase tempat duduk yang banyak. Jumlah tempat duduk kosong dari keseluruhan tempat duduk yang akan dianggap cukup banyak sehingga masuk ke dalam kategori ini ditentukan berdasarkan kebijaksanaan produsen.
FEW_SEATS_AVAILABLE Kendaraan atau gerbong memiliki persentase tempat duduk yang sedikit. Jumlah tempat duduk kosong dari keseluruhan tempat duduk yang akan dianggap sedikit sehingga masuk ke dalam kategori ini ditentukan berdasarkan kebijaksanaan produsen.
STANDING_ROOM_ONLY Kendaraan atau gerbong saat ini hanya dapat mengakomodasi penumpang yang berdiri.
CRUSHED_STANDING_ROOM_ONLY Kendaraan atau gerbong saat ini hanya dapat mengakomodasi penumpang yang berdiri dan memiliki ruang terbatas untuk mereka.
FULL Kendaraan dianggap penuh oleh sebagian besar pengukuran, tetapi masih dapat menerima penumpang.
NOT_ACCEPTING_PASSENGERS Kendaraan atau gerbong tidak menerima penumpang. Kendaraan atau gerbong biasanya menerima penumpang yang naik.
NO_DATA_AVAILABLE Kendaraan atau gerbong tidak memiliki data keterisian pada waktu tersebut.
NOT_BOARDABLE Kendaraan atau gerbong tidak dapat dinaiki dan tidak pernah menerima penumpang. Berguna untuk kendaraan atau gerbong khusus (mesin, gerbong pemeliharaan, dll.).

pesan Alert

Notifikasi, yang mengindikasikan beberapa insiden di jaringan transportasi umum.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
active_period TimeRange Opsional Banyak Waktu saat notifikasi akan ditampilkan kepada pengguna. Jika tidak ada, notifikasi akan ditampilkan selama ada dalam feed. Jika beberapa rentang diberikan, notifikasi akan ditampilkan selama semua rentang tersebut.
informed_entity EntitySelector Wajib Banyak Entitas yang penggunanya harus kami kirimkan notifikasi ini. Setidaknya satu informed_entity harus diberikan.
cause Cause Opsional Satu
effect Effect Opsional Satu
url TranslatedString Opsional Satu URL yang memberikan informasi tambahan tentang notifikasi.
header_text TranslatedString Wajib Satu Header untuk notifikasi. String teks biasa akan disorot, misalnya dengan cetak tebal.
description_text TranslatedString Wajib Satu Deskripsi untuk notifikasi. String teks biasa akan diformat sebagai isi notifikasi (atau ditampilkan pada permintaan "perluas" yang eksplisit oleh pengguna). Informasi dalam deskripsi harus ditambahkan ke informasi header.

enum Cause

Penyebab notifikasi ini.

Nilai

Nilai
UNKNOWN_CAUSE
OTHER_CAUSE
TECHNICAL_PROBLEM
STRIKE
DEMONSTRATION
ACCIDENT
HOLIDAY
WEATHER
MAINTENANCE
CONSTRUCTION
POLICE_ACTIVITY
MEDICAL_EMERGENCY

enum Effect

Efek dari masalah ini pada entitas yang terpengaruh.

Nilai

Nilai
NO_SERVICE
REDUCED_SERVICE
SIGNIFICANT_DELAYS
DETOUR
ADDITIONAL_SERVICE
MODIFIED_SERVICE
OTHER_EFFECT
UNKNOWN_EFFECT
STOP_MOVED

pesan TimeRange

Interval waktu. Interval dianggap aktif pada waktu t jika t lebih dari atau sama dengan waktu start dan kurang dari waktu end.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
start uint64 Wajib bersyarat Satu Waktu mulai dalam waktu POSIX (yaitu, jumlah detik sejak 1 Januari 1970 00:00:00 UTC). Jika tidak ada, interval dimulai pada minus tak terhingga. Jika TimeRange diberikan, start atau end harus diberikan - kedua kolom ini tidak boleh kosong.
end uint64 Wajib bersyarat Satu Waktu akhir, pada waktu POSIX (yaitu, jumlah detik sejak 1 Januari 1970 00:00:00 UTC). Jika tidak ada, interval berakhir pada plus tak terhingga. Jika TimeRange diberikan, start atau end harus diberikan - kedua kolom ini tidak boleh kosong.

pesan Position

Posisi geografis kendaraan.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
latitude float Wajib Satu Derajat Utara, dalam sistem koordinat WGS-84.
longitude float Wajib Satu Derajat Timur, dalam sistem koordinat WGS-84.
bearing float Opsional Satu Penjuru, dalam derajat, searah jarum jam dari True North, yaitu, 0 adalah Utara dan 90 adalah Timur. Ini bisa berupa penjuru kompas, atau arah ke perhentian berikutnya atau lokasi intermediate. Nilai ini tidak boleh disimpulkan dari urutan posisi sebelumnya yang dapat dikomputasi klien dari data sebelumnya.
odometer double Opsional Satu Nilai odometer, dalam meter.
speed float Opsional Satu Kecepatan sementara yang diukur oleh kendaraan, dalam meter per detik.

pesan TripDescriptor

Deskripsi yang mengidentifikasi satu instance perjalanan GTFS.

Untuk menentukan satu instance perjalanan, trip_id itu sendiri berfungsi dengan baik dalam banyak kasus. Namun, kasus berikut memerlukan informasi tambahan untuk di-resolve menjadi satu instance perjalanan:

  • Jika perjalanan ditetapkan dalam frequencies.txt, Anda harus menyertakan start_date dan start_time selain trip_id.
  • Jika perjalanan berlangsung lebih dari 24 jam, atau tertunda sehingga perjalanan tersebut berbenturan dengan perjalanan terjadwal pada hari berikutnya, berikan start_date dan trip_id.
  • Jika kolom trip_id tidak dapat diberikan, Anda harus memberikan kolom route_id, direction_id, start_date, dan start_time.

Dalam semua kasus, jika route_id dan trip_id diberikan, route_id harus cocok dengan kolom route_id yang ditetapkan ke perjalanan yang ditentukan dalam file trips.txt GTFS.

Kolom trip_id tidak dapat, dengan sendirinya atau bersama kolom TripDescriptor lainnya, digunakan untuk mengidentifikasi beberapa instance perjalanan. Jika TripDescriptor diselesaikan menjadi nol atau beberapa instance perjalanan, bukan satu, hal ini dianggap sebagai error. Entitas yang berisi TripDescriptor yang salah mungkin dihapus oleh konsumen.

Misalnya, saat perjalanan ditentukan dalam frequencies.txt GTFS dengan exact_times=0, TripDescriptor tidak boleh menentukan trip_id dengan sendirinya. Hal ini karena saat Anda menyelesaikan satu instance perjalanan yang dimulai pada waktu tertentu, Anda juga harus memberikan start_time.

Perhatikan bahwa jika trip_id tidak diketahui, ID urutan stasiun di TripUpdate tidak mencukupi, sehingga kolom stop_id juga harus diberikan. Selain itu, waktu kedatangan dan keberangkatan absolut harus diberikan.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
trip_id string Wajib bersyarat Satu trip_id dari data GTFS yang dirujuk oleh selektor ini. trip_id wajib ada bergantung pada jenis perjalanan:
Perjalanan bukan berbasis frekuensi: Kolom trip_id saja cukup untuk mengidentifikasi perjalanan ini secara unik. Perhatikan bahwa perjalanan bukan berbasis frekuensi tidak ditentukan di frequencies.txt GTFS.
Perjalanan berbasis frekuensi: Kolom trip_id, start_time, dan start_date wajib ada. Perjalanan berbasis frekuensi ditentukan dalam frequencies.txt GTFS.
Perjalanan berbasis jadwal: Kolom trip_id hanya dapat dihapus jika perjalanan dapat diidentifikasi secara unik dengan kombinasi kolom route_id, direction_id, start_time, dan start_date yang diberikan. Perhatikan bahwa perjalanan berbasis jadwal tidak ditentukan dalam frequencies.txt GTFS.
route_id string Wajib bersyarat Satu route_id dari data GTFS yang dirujuk oleh pemilih ini. Jika trip_id dihapus, route_id, direction_id, start_time, dan schedule_relationship=SCHEDULED harus ditetapkan untuk mengidentifikasi instance perjalanan.
direction_id uint32 Wajib bersyarat Satu direction_id dari file trips.txt data GTFS, yang menunjukkan arah perjalanan. Jika trip_id dihapus, direction_id harus diberikan.
Perhatian: Kolom ini masih bersifat eksperimental dan dapat berubah sewaktu-waktu. Kolom tersebut mungkin diadopsi secara formal di masa mendatang.
start_time string Wajib bersyarat Satu Waktu mulai yang dijadwalkan lebih dahulu untuk instance perjalanan ini. Jenis kolom Time menentukan format kolom ini, misalnya 11:15:35 atau 25:15:35. Wajib atau tidaknya kolom start_time bergantung pada jenis perjalanan:
trip_id sesuai dengan perjalanan yang tidak berbasis frekuensi: Kolom start_time harus dihapus atau sama dengan nilai departure_time di file stop_times.txt Data GTFS.
trip_id sesuai dengan perjalanan yang berbasis frekuensi: start_time selalu wajib ada dan harus ditentukan untuk info terbaru perjalanan dan posisi kendaraan. Perjalanan berbasis frekuensi ditentukan dalam frequencies.txt GTFS.
Jika perjalanan berbasis frekuensi sesuai dengan catatan GTFS exact_times=1: Kolom start_time harus berupa kelipatan, termasuk nol, dari headway_secs yang lebih lama dari frequencies.txt start_time untuk jangka waktu yang sesuai.
Jika perjalanan berbasis frekuensi sesuai dengan catatan GTFS exact_times=0: start_time dapat bersifat arbitrer, dan awalnya diharapkan menjadi keberangkatan pertama untuk perjalanan tersebut. Setelah tersusun, start_time dari perjalanan exact_times=0 berbasis frekuensi ini dianggap tidak dapat diubah, meskipun waktu keberangkatan pertama berubah. Sebagai gantinya, perubahan waktu selanjutnya dapat tercermin dalam pesan StopTimeUpdate.
trip_id dihapus: start_time harus diberikan.
start_date string Wajib bersyarat Satu Tanggal mulai instance perjalanan ini dalam format YYYYMMDD. Apakah start_date wajib ada atau tidak, bergantung pada jenis perjalanan:
Perjalanan terjadwal: start_date harus diberikan. Hal ini ditujukan untuk memperjelas perjalanan yang begitu terlambat sehingga berbenturan dengan perjalanan terjadwal pada hari berikutnya. Misalnya, sebuah kereta berangkat pukul 08.00 dan 20.00 setiap hari. Jika kereta tersebut terlambat 12 jam, maka akan ada dua perjalanan berbeda yang dijadwalkan untuk waktu yang sama.
Catatan: Kolom ini bersifat opsional untuk perjalanan terjadwal yang tidak memungkinkan terjadinya benturan tersebut. Misalnya, hal ini dapat terjadi jika layanan berjalan menurut jadwal per jam, dan kendaraan yang terlambat satu jam tidak lagi dianggap terkait dengan jadwal tersebut.
Perjalanan berbasis frekuensi: start_date harus diberikan. Perhatikan bahwa perjalanan berbasis frekuensi ditetapkan dalam file frequencies.txt GTFS, sedangkan perjalanan terjadwal tidak.
trip_id dihapus: start_date harus diberikan.
schedule_relationship ScheduleRelationship Opsional Satu Hubungan antara perjalanan ini dan jadwal statis. Jika TripDescriptor diberikan di Alert EntitySelector, kolom schedule_relationship diabaikan oleh konsumen saat mengidentifikasi instance perjalanan yang cocok.

enum ScheduleRelationship

Hubungan antara perjalanan ini dan jadwal statis. Jika perjalanan dilakukan sesuai dengan jadwal sementara, yang tidak tercermin dalam GTFS, perjalanan ini tidak boleh ditandai sebagai SCHEDULED, tetapi ditandai sebagai ADDED.

Nilai

Nilai Komentar
SCHEDULED Perjalanan yang berlangsung sesuai jadwal GTFS, atau cukup mendekati sehingga perjalanan terjadwal dapat dikaitkan dengan jadwal tersebut.
ADDED Perjalanan ekstra yang telah ditambahkan selain jadwal yang sedang berjalan, misalnya, untuk mengganti kendaraan yang rusak atau merespons beban penumpang yang tidak terduga.
UNSCHEDULED Perjalanan yang berlangsung tanpa jadwal yang dikaitkan - nilai ini digunakan untuk mengidentifikasi perjalanan yang ditentukan di frequencies.txt GTFS dengan exact_times = 0. Nilai ini tidak boleh digunakan untuk menjelaskan perjalanan yang tidak didefinisikan di frequencies.txt GTFS, atau perjalanan di frequencies.txt GTFS dengan exact_times = 1.
CANCELED Sebuah perjalanan yang ada dalam jadwal, tetapi telah dihapus.

pesan VehicleDescriptor

Informasi identifikasi untuk kendaraan yang melakukan perjalanan.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
id string Opsional Satu Identifikasi sistem internal dari kendaraan. Harus unik untuk setiap kendaraan, dan digunakan untuk melacak kendaraan saat melaju melalui sistem. ID ini tidak boleh terlihat oleh pengguna akhir; untuk itu, gunakan kolom label.
label string Opsional Satu Label yang terlihat oleh pengguna, yaitu, sesuatu yang harus ditampilkan kepada penumpang untuk membantu mengidentifikasi kendaraan yang benar.
license_plate string Opsional Satu Pelat nomor kendaraan.

pesan EntitySelector

Selektor untuk entitas dalam feed GTFS. Nilai kolom harus sesuai dengan kolom yang terkait dalam feed GTFS. Setidaknya satu penentu harus diberikan. Jika ada beberapa penentu yang diberikan, penentu tersebut harus dianggap sebagai gabungan dengan menambahkan operator logis AND. Selain itu, kombinasi penentu harus cocok dengan informasi yang sesuai dalam Data GTFS. Dengan kata lain, agar pemberitahuan diterapkan ke entitas di GTFS, pemberitahuan tersebut harus cocok dengan semua kolom EntitySelector yang disediakan. Misalnya, EntitySelector yang menyertakan kolom route_id: "5" dan route_type: "3" hanya berlaku untuk bus route_id: "5" dan tidak berlaku untuk rute route_type: "3" lainnya. Jika pembuat ingin pemberitahuan diterapkan untuk route_id: "5" dan route_type: "3", pembuat harus menyediakan dua kolom EntitySelector terpisah, satu kolom merujuk ke route_id: "5" dan satu lagi merujuk ke route_type: "3".

Setidaknya satu penentu harus diberikan - semua kolom di EntitySelector tidak boleh kosong.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
agency_id string Wajib bersyarat Satu agency_id dari data GTFS yang dirujuk oleh pemilih ini.
route_id string Wajib bersyarat Satu route_id dari GTFS yang dirujuk oleh pemilih ini. Jika direction_id diberikan, route_id juga harus diberikan.
route_type int32 Wajib bersyarat Satu route_type dari GTFS yang dirujuk oleh pemilih ini.
direction_id uint32 Wajib bersyarat Satu direction_id dari file trips.txt pada data GTFS, digunakan untuk memilih semua perjalanan dalam satu arah untuk sebuah rute, yang ditentukan oleh route_id. Jika direction_id diberikan, route_id juga harus diberikan.
trip TripDescriptor Wajib bersyarat Satu Instance perjalanan dari GTFS yang dirujuk oleh pemilih ini. TripDescriptor ini harus di-resolve menjadi satu instance perjalanan dalam data GTFS (misalnya, pembuat tidak dapat hanya memasukkan trip_id untuk perjalanan exact_times=0). Jika kolom ScheduleRelationship diisi dalam TripDescriptor ini, kolom ini akan diabaikan oleh konsumen saat mereka mencoba mengidentifikasi perjalanan GTFS.
stop_id string Wajib bersyarat Satu stop_id dari data GTFS yang dirujuk oleh pemilih ini.

pesan TranslatedString

Pesan internasional yang berisi versi per bahasa untuk cuplikan teks atau URL. Salah satu string dari pesan akan diambil. Solusinya adalah sebagai berikut: Jika bahasa UI sesuai dengan kode bahasa terjemahan, terjemahan pertama yang cocok akan diambil. Jika bahasa UI default (mis., bahasa Inggris) cocok dengan kode bahasa terjemahan, terjemahan pertama yang cocok diambil. Jika terjemahan tertentu memiliki kode bahasa yang tidak ditentukan, terjemahan tersebut diambil.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
translation Translation Wajib Banyak Setidaknya 1 terjemahan harus diberikan.

pesan Translation

String lokal dipetakan ke sebuah bahasa.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
text string Wajib Satu String UTF-8 yang berisi pesan.
language string Wajib bersyarat Satu Kode bahasa BCP-47. Dapat dihapus jika bahasa tidak diketahui atau jika internasionalisasi tidak dilakukan sama sekali untuk feed. Maksimal satu terjemahan diizinkan memiliki tag bahasa yang belum ditetapkan. Jika ada lebih dari satu terjemahan, bahasanya harus diberikan.