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 penting, dsb.), lokasi kendaraan mereka, 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 menggunakan.

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., timestamp VehiclePosition), 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 (lihat proposal untuk persyaratan semantik untuk mendapatkan detailnya).

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 Protocol Buffer.

Jenis data Protocol Buffer

Jenis data protocol buffer berikut digunakan untuk menggambarkan elemen feed:

  • pesan: Jenis kompleks
  • enum: Daftar nilai tetap

Kolom eksperimen

Kolom yang diberi label sebagai eksperimental dapat diubah 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 diperoleh sebagai respons terhadap permintaan HTTP GET yang sesuai. Feed realtime selalu ditentukan dalam kaitannya dengan feed GTFS yang ada. Semua id entitas ditangani berdasarkan feed 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 transit, 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 mengidentifikasi momen saat konten feed ini telah dibuat (pada 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 stempel waktu dari server waktu. Tidak menjadi masalah sama sekali menggunakan Stratum 3 atau bahkan server strata yang lebih rendah karena perbedaan waktu hingga beberapa detik masih dapat diterima.

enum Incrementality

Menentukan apakah fetch saat ini bersifat inkremental.

  • FULL_DATASET: update feed ini akan menimpa semua informasi realtime sebelumnya untuk feed. Kemudian, update ini diharapkan memberikan ringkasan lengkap dari semua informasi realtime yang diketahui.
  • DIFFERENTIAL: saat ini, 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 update) entitas di feed transit. Jika entitas tidak dihapus, tepat 1 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 penundaan keberangkatan realtime dari sebuah perjalanan. Setidaknya 1 kolom trip_update, vehicle, atau alert harus diisi - semua kolom tersebut tidak boleh kosong.
vehicle VehiclePosition Wajib bersyarat Satu Data tentang posisi realtime kendaraan. Setidaknya 1 kolom trip_update, vehicle, atau alert harus diisi - semua kolom tersebut tidak boleh kosong.
alert Alert Wajib bersyarat Satu Data tentang notifikasi realtime. Setidaknya 1 kolom trip_update, vehicle, atau alert harus diisi - semua kolom tersebut tidak boleh kosong.

pesan TripUpdate

Update realtime tentang pergerakan kendaraan di sepanjang perjalanan. Silakan lihat diskusi umum tentang entitas update perjalanan.

Bergantung pada nilai ScheduleRelationship, TripUpdate dapat menentukan:

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

Update 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 kemungkinan ada kasus ketika hal ini tidak dapat diterapkan, Anda dapat memiliki nilai ketidakpastian bukan 0 untuk peristiwa masa lalu. Jika ketidakpastian update bukan 0, berarti update tersebut merupakan perkiraan prediksi untuk perjalanan yang belum selesai atau pengukurannya tidak tepat atau update-nya merupakan prediksi untuk masa lalu yang belum diverifikasi setelah peristiwa terjadi.

Perhatikan bahwa update dapat mendeskripsikan perjalanan yang telah selesai. Oleh karenanya, cukup berikan update untuk perhentian terakhir perjalanan tersebut. Jika waktu kedatangan di perhentian terakhir adalah di masa lalu, klien akan menyimpulkan bahwa keseluruhan perjalanan berlangsung di masa lalu (update untuk perhentian sebelumnya dapat juga diberikan, meskipun tidak penting). Opsi ini paling relevan untuk perjalanan yang telah selesai lebih awal dari jadwal, namun menurut jadwal, perjalanan masih berlangsung saat ini. Menghapus update untuk perjalanan ini dapat membuat klien beranggapan bahwa perjalanan tersebut masih berlangsung. Perhatikan bahwa penyedia feed diizinkan, namun tidak diwajibkan, untuk menghapus update di masa lalu - ini adalah 1 kasus yang menerima manfaat efektif dari langkah ini.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
trip TripDescriptor Wajib Satu Perjalanan yang memberlakukan pesan ini. Mungkin saja ada maksimal 1 entitas TripUpdate untuk setiap instance perjalanan aktual. Jika tidak ada sama sekali, berarti tidak ada informasi prediksi yang tersedia. Ini bukan berarti bahwa perjalanan masih berlangsung sesuai jadwal.
vehicle VehicleDescriptor Opsional Satu Informasi tambahan tentang kendaraan untuk perjalanan ini.
stop_time_update StopTimeUpdate Wajib bersyarat Banyak Update StopTimes untuk perjalanan (keduanya di masa mendatang, yaitu, prediksi, dan di beberapa kasus, di masa lalu, yaitu yang telah terjadi). Update harus diurutkan berdasarkan stop_sequence, dan diterapkan untuk semua perhentian perjalanan berikut hingga stop_time_update berikutnya yang ditetapkan. Setidaknya 1 stop_time_update harus diberikan untuk perjalanan tersebut, kecuali jika trip.schedule_relationship DIBATALKAN - 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. Keterlambatan hanya akan ditentukan saat prediksi diberikan, relatif terhadap jadwal tertentu yang ada di GTFS.
Keterlambatan (dalam detik) dapat bersifat positif (artinya kendaraan terlambat) atau negatif (artinya kendaraan mendahului jadwal). Keterlambatan 0 berarti kendaraan tepat waktu.
Informasi keterlambatan di StopTimeUpdates lebih diprioritaskan daripada informasi keterlambatan tingkat perjalanan, keterlambatan tingkat perjalanan tersebut hanya disiarkan sampai perhentian berikutnya di sepanjang perjalanan dengan nilai keterlambatan StopTimeUpdate ditetapkan.
Penyedia feed sangat dianjurkan untuk memberikan nilai TripUpdate.timestamp yang mengindikasikan kapan nilai keterlambatan diupdate, 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.

  • keterlambatan harus digunakan saat prediksi diberikan relatif terhadap jadwal tertentu yang ada di GTFS.
  • waktu harus diberikan tanpa melihat apakah ada jadwal yang diprediksi atau tidak. Jika waktu dan keterlambatan ditetapkan, waktu akan diprioritaskan (meskipun biasanya, waktu, 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 (namun 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 Keterlambatan (dalam detik) dapat bersifat positif (artinya kendaraan terlambat) atau negatif (artinya kendaraan mendahului jadwal). Keterlambatan 0 berarti kendaraan tepat waktu. Keterlambatan atau waktu harus diberikan dalam StopTimeEvent - kedua kolom 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). Keterlambatan atau waktu harus diberikan dalam StopTimeEvent - kedua kolom 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

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

Update dapat 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 1 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. Nilai 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 stop.txt pada feed GTFS yang sesuai. Nilai 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, kedatangan atau keberangkatan harus diberikan dalam StopTimeUpdate - kedua kolom tidak boleh kosong. Kedatangan atau keberangkatan dapat kosong jika schedule_relationship SKIPPED. Jika schedule_relationship adalah NO_DATA, kedatangan dan keberangkatan harus kosong.
departure StopTimeEvent Wajib bersyarat Satu Jika schedule_relationship kosong atau SCHEDULED, kedatangan atau keberangkatan harus diberikan dalam StopTimeUpdate - kedua kolom tidak boleh kosong. Kedatangan atau keberangkatan dapat kosong jika schedule_relationship SKIPPED. Jika schedule_relationship adalah NO_DATA, kedatangan dan keberangkatan 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 kedatangan dan keberangkatan harus diberikan.
SKIPPED Perhentian dilewati, artinya, kendaraan tidak akan berhenti di perhentian ini. Kedatangan dan keberangkatan 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, kedatangan atau keberangkatan 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 stop.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 tersebut dianggap kosong oleh sebagian besar pengukuran, dan mengangkut sedikit penumpang atau tidak sama sekali, namun masih menerima penumpang.
MANY_SEATS_AVAILABLE Kendaraan memiliki persentase tempat duduk yang tersedia cukup banyak. Berapa persentase tempat duduk kosong dari keseluruhan tempat duduk yang akan dianggap cukup banyak sehingga masuk ke dalam kategori ini ditentukan berdasarkan kebijakan produsen.
FEW_SEATS_AVAILABLE Kendaraan memiliki persentase tempat duduk yang sedikit. Berapa persentase tempat duduk kosong dari keseluruhan tempat duduk yang akan dianggap sedikit sehingga masuk ke dalam kategori ini ditentukan berdasarkan kebijakan produsen.
STANDING_ROOM_ONLY Kendaraan saat ini hanya dapat mengakomodasi penumpang yang berdiri.
CRUSHED_STANDING_ROOM_ONLY Kendaraan saat ini hanya dapat mengakomodasi penumpang berdiri dan memiliki ruang terbatas untuk mereka.
FULL Kendaraan dianggap penuh oleh sebagian besar pengukuran, namun masih dapat menerima penumpang.
NOT_ACCEPTING_PASSENGERS Kendaraan tidak bisa menerima penumpang.

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 beritahukan tentang notifikasi ini. Setidaknya 1 informed_entity yang 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 mulai dan kurang dari waktu akhir.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
start uint64 Wajib bersyarat Satu Waktu start, 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 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 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. Hal ini dapat berupa penjuru kompas, atau arah ke perhentian berikutnya atau lokasi perantara. 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 diselesaikan menjadi satu instance perjalanan:

  • Jika perjalanan ditetapkan dalam frequencies.txt, start_date dan start_time wajib ada 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 feed GTFS yang dirujuk oleh selektor 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 terlebih dahulu untuk instance perjalanan ini. Jenis kolom Waktu menentukan format kolom ini, misalnya 11:15:35 atau 25:15:35. Apakah kolom start_time wajib ada atau tidak, bergantung pada jenis perjalanan:
trip_id sesuai dengan perjalanan bukan 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 berbasis frekuensi: start_time selalu wajib ada dan harus ditentukan untuk update 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 start_time di frequencies.txt 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, namun 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. 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, namun 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 1 penentu harus diberikan. Jika ada beberapa, pencocokannya harus diterapkan ke semua penentu yang diberikan.

Kolom

Nama Kolom Jenis Wajib Kardinalitas Deskripsi
agency_id string Wajib bersyarat Satu Setidaknya 1 penentu harus diberikan - semua kolom di EntitySelector tidak boleh kosong.
route_id string Wajib bersyarat Satu Setidaknya 1 penentu harus diberikan - semua kolom di EntitySelector tidak boleh kosong.
route_type int32 Wajib bersyarat Satu Setidaknya 1 penentu harus diberikan - semua kolom di EntitySelector tidak boleh kosong.
trip TripDescriptor Wajib bersyarat Satu Setidaknya 1 penentu harus diberikan - semua kolom di EntitySelector tidak boleh kosong.
stop_id string Wajib bersyarat Satu Setidaknya 1 penentu harus diberikan - semua kolom di EntitySelector tidak boleh kosong.

pesan TranslatedString

Pesan internasional yang berisi versi per bahasa dari 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.