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:
- Satu - Satu elemen tunggal dapat diberikan untuk kolom ini. Elemen ini dipetakan ke kardinalitas wajib dan opsional Buffering Protokol.
- Banyak - Banyak elemen (0, 1, atau lainnya) dapat diberikan untuk kolom ini. Nilai ini dipetakan ke kardinalitas berulang Buffering Protokol.
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 modeDIFFERENTIAL
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. Jikatime
dandelay
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 menyertakanstart_date
danstart_time
selaintrip_id
. - Jika perjalanan berlangsung lebih dari 24 jam, atau tertunda sehingga perjalanan tersebut berbenturan dengan perjalanan terjadwal pada hari berikutnya, berikan
start_date
dantrip_id
. - Jika kolom
trip_id
tidak dapat diberikan, Anda harus memberikan kolomroute_id
,direction_id
,start_date
, danstart_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. |