مرجع GTFS في الوقت الفعلي

تتيح خلاصة GTFS لمؤسسات النقل العام تزويد المستهلكين بمعلومات في الوقت الفعلي عن حالات انقطاع الخدمة (المحطات المغلقة، والخطوط المتوقّفة، والتأخيرات المهمة، وغيرها) وأوقات الوصول المتوقّعة.

تتم مناقشة الإصدار 2.0 من مواصفات الخلاصة وتوثيقها على هذا الموقع.

تعريفات المصطلحات

مطلوبة

في الإصدار 2.0 من GTFS-realtime أو الإصدارات الأحدث، يصف العمود مطلوب الحقول التي يجب أن يوفّرها المنتِج كي تكون بيانات النقل صالحة ومفهومة لتطبيق مستخدم.

يتم استخدام القيم التالية في الحقل مطلوب:

  • مطلوب: يجب توفير هذا الحقل من خلال منتج خلاصة في الوقت الفعلي من خلال GTFS.
  • مطلوب وفقًا لشروط: يجب توفير هذا الحقل بموجب شروط معيّنة موضّحة في حقل الوصف. وبصرف النظر عن هذه الشروط، يُعد الحقل اختياريًا.
  • اختياري: هذا الحقل اختياري وليس مطلوبًا تنفيذه من قِبل المنتجين. ومع ذلك، إذا كانت البيانات متاحة في أنظمة تحديد الموقع الجغرافي التلقائية للمركبة (على سبيل المثال، VehiclePosition timestamp) ننصح بأن يوفّر المنتجون هذه الحقول الاختيارية إن أمكن.

يُرجى العِلم أنّه لم يتم تحديد المتطلبات الدلالية في الإصدار 1.0 من GTFS، وبالتالي قد لا تستوفي الخلاصات التي تتضمّن gtfs_realtime_version بقيمة 1 هذه المتطلبات (يمكنك الاطّلاع على اقتراح المتطلبات الدلالية للحصول على التفاصيل).

عدد العناصر في الحقل

تمثّل Cardinality (العلاقة الأساسية) عدد العناصر التي يمكن توفيرها لحقل معين، مع القيم التالية:

أشِر دائمًا إلى الحقلين مطلوب والوصف لمعرفة ما إذا كان الحقل مطلوبًا أو مطلوبًا بشروط أو اختياري. يُرجى الرجوع إلى gtfs-realtime.proto للاطّلاع على عدد القيم الفريدة للسمة في المخزن المؤقت للبروتوكولات.

أنواع بيانات مخزن البروتوكول المؤقت

يتم استخدام أنواع بيانات المخزن المؤقت للبروتوكولات التالية لوصف عناصر الخلاصة:

  • الرسالة: نوع معقّد
  • enum: قائمة القيم الثابتة

الحقول التجريبية

إنّ الحقول التي تحمل التصنيف تجريبي عرضة للتغيير، ولم يتم اعتمادها رسميًا ضمن المواصفات. قد يتمّ اعتماد حقل تجريبي رسميًا في المستقبل.

فهرس العنصر

العناصر

رسالة FeedMessage الرسالة

محتوى رسالة الخلاصة. يتم الحصول على كل رسالة في ساحة المشاركات كاستجابة لطلب HTTP GET مناسب. ويتم دائمًا تحديد خلاصة الوقت الفعلي في ما يتعلّق بخلاصة GTFS حالية. يتمّ التعامل بشكل نهائي مع جميع أرقام تعريف الكيانات في ما يتعلّق بخلاصة GTFS.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
header FeedHeader مطلوبة واحد البيانات الوصفية حول هذه الخلاصة ورسالة الخلاصة
entity FeedEntity مطلوب بشروط عدد كبير محتوى الخلاصة. إذا توفّرت معلومات في الوقت الفعلي لشركة النقل العام، يجب تقديم هذا الحقل. إذا كان هذا الحقل فارغًا، يجب أن يفترض المستهلكون أنّه لا تتوفّر معلومات في الوقت الفعلي للنظام.

عنوان خلاصة الرسالة

البيانات الوصفية حول الخلاصة المضمّنة في رسائل الخلاصة.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
gtfs_realtime_version string مطلوبة واحد تمثّل هذه السمة إصدار مواصفات الخلاصة. الإصدار الحالي هو 2.0.
incrementality Incrementality مطلوبة واحد
timestamp uint64 مطلوبة واحد يحدّد هذا الطابع الزمني اللحظة التي تم فيها إنشاء محتوى هذه الخلاصة (بتوقيت الخادم). بتوقيت POSIX (أي عدد الثواني منذ 1 كانون الثاني (يناير) 1970 في الساعة 00:00:00 بالتوقيت العالمي المنسق). لتجنُّب أي فاصل زمني بين الأنظمة التي تنتج المعلومات في الوقت الفعلي وتستهلكها، يُنصح بشدة باستنتاج timestamp من خادم الوقت. ومن المقبول تمامًا استخدام خوادم Stratum 3 أو حتى خوادم ذات طبقات أدنى نظرًا لأن الفروق الزمنية التي تصل إلى بضع ثوانٍ أمر مقبولة.

التزايد في enum

تحدِّد هذه السياسة ما إذا كان الجلب الحالي تزايديًا أم لا.

  • FULL_DATASET: سيؤدي تعديل الخلاصة هذا إلى استبدال جميع معلومات الخلاصة السابقة في الوقت الفعلي. وبالتالي، من المتوقّع أن يقدّم هذا التحديث نبذة كاملة عن جميع المعلومات المعروفة في الوقت الفعلي.
  • DIFFERENTIAL: هذا الوضع غير متاح حاليًا والسلوك غير محدّد للخلاصات التي تستخدم هذا الوضع. هناك مناقشات على القائمة البريدية لـ GTFS في الوقت الفعلي حول التحديد الكامل لسلوك وضع DIFFERENTIAL وسيتم تعديل المستندات عند انتهاء هذه المناقشات.

القيم

القيمة
FULL_DATASET
DIFFERENTIAL

عنصر خلاصة الرسائل

تعريف (أو تعديل) لكيان في خلاصة النقل العام. إذا لم يتم حذف الكيان، يجب تعبئة حقل واحد من حقول trip_update وvehicle وalert بالضبط.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
id string مطلوبة واحد المعرّف الفريد للخلاصة لهذا الكيان. لا تُستخدَم أرقام التعريف إلا لتوفير ميزة التزايد. يجب أن يتم تحديد الكيانات الفعلية المُشار إليها في الخلاصة باستخدام أدوات اختيار صريحة (يمكنك الاطّلاع على EntitySelector أدناه للحصول على مزيد من المعلومات).
is_deleted bool إجراء اختياري واحد لتحديد ما إذا كان سيتم حذف هذا الكيان. يجب عدم توفير هذا الحقل إلّا للخلاصات التي تحتوي على Incrementality من DIFFERENTIAL، ولا يمكن تقديم هذا الحقل للخلاصات التي تتضمّن Incrementality من FULL_DATASET.
trip_update TripUpdate مطلوب بشروط واحد بيانات عن تأخيرات مغادرة الرحلة في الوقت الفعلي. يجب تقديم حقل واحد على الأقل من الحقول trip_update أو vehicle أو alert، ولا يمكن أن تكون جميع هذه الحقول فارغة.
vehicle VehiclePosition مطلوب بشروط واحد بيانات عن الموضع في الوقت الفعلي للمركبة يجب تقديم حقل واحد على الأقل من الحقول trip_update أو vehicle أو alert، ولا يمكن أن تكون جميع هذه الحقول فارغة.
alert Alert مطلوب بشروط واحد بيانات عن التنبيه في الوقت الفعلي. يجب تقديم حقل واحد على الأقل من الحقول trip_update أو vehicle أو alert، ولا يمكن أن تكون جميع هذه الحقول فارغة.

رسالة تحديث الرحلة

هو إشعار في الوقت الفعلي بشأن مستوى تقدّم مركبة على طول الرحلة. يُرجى أيضًا الرجوع إلى المناقشة العامة لعناصر تحديثات الرحلات.

استنادًا إلى قيمة ScheduleRelationship، يمكن لـ TripUpdate تحديد ما يلي:

  • رحلة تتم على طول الجدول الزمني.
  • رحلة تتم على طول المسار ولكن ليس لها جدول زمني ثابت.
  • رحلة تمت إضافتها أو إزالتها وفقًا للجدول الزمني.

ويمكن أن تكون التعديلات متعلقة بأحداث مستقبلية متوقّعة للوصول/المغادرة، أو لأحداث سابقة سبق أن حدثت. في معظم الحالات، تكون المعلومات المتعلّقة بالأحداث السابقة قيمة تم قياسها، لذا يُنصَح بأن تكون قيمة عدم التأكّد لديك 0. على الرغم من أنّه قد تكون هناك حالات لا تنطبق فيها هذه الحالة، يجب أن تكون قيمة عدم التأكّد مختلفة عن قيمة 0 للأحداث السابقة. إذا كانت نسبة عدم التأكّد من التحديث هي 0، يعني ذلك أنّ التحديث هو توقّع تقريبي لرحلة لم تكتمل أو أنّ القياس غير دقيق أو أنّ التحديث كان توقّعًا في الماضي ولم يتم تأكيده بعد وقوع الحدث.

يُرجى العِلم أنّ التعديل يمكن أن يصف رحلة سبق أن اكتملت.ولتحقيق هذه الغاية، يكفي توفير تعديل بشأن آخر محطة في الرحلة. إذا كان وقت الوصول في آخر محطة في الماضي، فسوف يستنتج العميل أن الرحلة بأكملها قد انتهت (من الممكن أيضًا توفير تحديثات بشأن المحطات السابقة، على الرغم من كون ذلك غير هام). وهذا الخيار هو الأكثر ملاءمةً للرحلة التي اكتملت قبل الموعد المحدد، ولكن وفقًا للجدول الزمني، لا تزال الرحلة تتم في الوقت الحالي. قد تؤدي إزالة التعديلات المتعلّقة بهذه الرحلة إلى افتراض العميل أنّ الرحلة لا تزال جارية. يُرجى العلم أنّه يُسمح لموفّر الخلاصة بإزالة التعديلات السابقة نهائيًا، ولكن ليس إلزاميًا. هذه إحدى الحالات التي يكون فيها ذلك مفيدًا من الناحية العملية.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
trip TripDescriptor مطلوبة واحد الرحلة التي تنطبق عليها هذه الرسالة. ويمكن إدراج كيان TripUpdate واحد على الأكثر لكل مثيل رحلة فعلية. وإذا لم تكن هناك بيانات متوقعة، فهذا يعني أنه لا تتوفر معلومات حول التنبؤ. ولا يعني ذلك أنّ الرحلة تسير وفقًا للجدول الزمني.
vehicle VehicleDescriptor إجراء اختياري واحد معلومات إضافية حول المركبة التي تقدّم هذه الرحلة
stop_time_update StopTimeUpdate مطلوب بشروط عدد كبير التعديلات على StopTimes الخاصة بالرحلة (سواء التوقّعات المستقبلية، أو التوقّعات في بعض الحالات السابقة، أي تلك التي سبق أن حدثت) يجب ترتيب التعديلات حسب stop_sequence وتطبيقها على كل محطات الرحلة التالية وصولاً إلى stop_time_update المحدّدة التالية. يجب توفير stop_time_update واحد على الأقل للرحلة ما لم تكن trip.schedule_relationship CANCELED. وإذا تم إلغاء الرحلة، لا حاجة إلى تقديم stop_time_updates.
timestamp uint64 إجراء اختياري واحد اللحظة التي تم فيها قياس مستوى تقدُّم المركبة في الوقت الفعلي بتوقيت POSIX (أي عدد الثواني منذ 1 كانون الثاني (يناير) 1970 في الساعة 00:00:00 بالتوقيت العالمي المنسق).
delay int32 إجراء اختياري واحد انحراف الجدول الزمني الحالي للرحلة. يجب تحديد delay فقط عند تقديم التوقّعات استنادًا إلى بعض الجداول الزمنية الحالية في GTFS.
يمكن أن تكون قيمة delay (بالثواني) موجبة (بمعنى أنّ المركبة متأخرة) أو سالبة (ما يعني أنّ المركبة متأخرة عن الموعد المحدد). تعني delay بقيمة 0 أنّ المركبة في الموعد المحدَّد.
إنّ معلومات التأخير في StopTimeUpdates تسبق معلومات التأخير على مستوى الرحلة، بحيث يتم نشر معلومات التأخير على مستوى الرحلة فقط حتى المحطة التالية على طول الرحلة مع تحديد قيمة delay في StopTimeUpdate.
ننصح مقدّمي الخلاصات بشدة بتوفير قيمة TripUpdate.timestamp تشير إلى آخر تعديل للقيمة delay، وذلك لتقييم مدى حداثة البيانات.
لا يزال هذا الحقل قيد التجربة. ويمكن اعتماده رسميًا في المستقبل.

message StopTimeEvent

معلومات التوقيت لحدث واحد متوقّع (إما الوصول أو المغادرة). يتكون الوقت من تأخير و/أو وقت تقديري وعدم يقين.

  • يجب استخدام delay عند تقديم توقّع مقارنةً ببعض الجداول الزمنية الحالية في GTFS.
  • time يجب ذكر ما إذا كان هناك جدول زمني متوقع أم لا. إذا تم تحديد كل من time وdelay، ستكون الأولوية للنوع time (علمًا أنّ السمة time، إذا تم تحديدها لرحلة مُجدوَلة، يجب أن تكون مساوية للوقت المجدوَل في GTFS + مدة التأخير).

ينطبق عدم اليقين بالتساوي على كل من الوقت والتأخير. يحدد عدم اليقين بشكل تقريبي الخطأ المتوقع في التأخير الحقيقي (لكن لاحظ، أننا لم نحدد بعد معناه الإحصائي الدقيق). من المحتمل أن تكون حالة عدم التأكّد 0، على سبيل المثال، في القطارات التي تتم قيادتها من خلال التحكّم في توقيتها على الكمبيوتر.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
delay int32 مطلوب بشروط واحد يمكن أن يكون الحقل delay (بالثانية) موجبًا (مما يعني أن المركبة متأخرة) أو سالبًا (أي أن المركبة تسبق الموعد المحدد). تشير السمة delay للسمة 0 إلى أنّ المركبة في الموعد المحدّد. يجب توفير delay أو time ضمن StopTimeEvent، ولا يمكن أن يكون كلا الحقلين فارغين.
time int64 مطلوب بشروط واحد الحدث كوقت مطلق. بتوقيت POSIX (أي عدد الثواني منذ 1 كانون الثاني (يناير) 1970 في الساعة 00:00:00 بالتوقيت العالمي المنسق). يجب توفير delay أو time ضمن StopTimeEvent، ولا يمكن أن يكون كلا الحقلين فارغين.
uncertainty int32 إجراء اختياري واحد إذا تم حذف عدم اليقين، يتم تفسيره على أنه غير معروف. لتحديد توقّع معيّن تمامًا، عليك ضبط درجة عدم التأكّد على 0.

message StopTimeUpdate

تعرض هذه البيانات معلومات في الوقت الفعلي عن أحداث الوصول و/أو المغادرة لمحطة معيّنة في إحدى الرحلات. يُرجى أيضًا الاطّلاع على المناقشة العامة لتعديلات وقت التوقف في مستندات TripDescriptor وكيانات تعديلات الرحلات.

يمكن تقديم التعديلات لكل من الأحداث السابقة والمستقبلية. يُسمح للمنتِج باستبعاد الأحداث السابقة، وإن لم يكن ذلك مطلوبًا. ويرتبط التعديل بمحطة معيّنة إمّا من خلال stop_sequence أو stop_id، لذا يجب بالضرورة ضبط أحد هذه الحقول. في حال زيارة stop_id نفسها أكثر من مرة في رحلة، يجب تقديم stop_sequence في StopTimeUpdates بالكامل لهذه stop_id في تلك الرحلة.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
stop_sequence uint32 مطلوب بشروط واحد يجب أن يكون العنوان مطابقًا للسمة stop_times.txt في خلاصة GTFS المقابلة. يجب توفير stop_sequence أو stop_id ضمن StopTimeUpdate، ولا يمكن أن يكون كلا الحقلين فارغين. إنّ السمة stop_sequence مطلوبة للرحلات التي تزور stop_id نفسه أكثر من مرة (مثل التكرار الحلقي) لتحديد سبب إيقاف التوقع.
stop_id string مطلوب بشروط واحد يجب أن يكون العنوان مطابقًا للسمة stops.txt في خلاصة GTFS المقابلة. يجب توفير stop_sequence أو stop_id ضمن StopTimeUpdate، ولا يمكن أن يكون كلا الحقلين فارغين.
arrival StopTimeEvent مطلوب بشروط واحد إذا كان schedule_relationship فارغًا أو SCHEDULED، يجب تقديم arrival أو departure ضمن StopTimeUpdate، ولا يمكن أن يكون كلا الحقلَين فارغَين. قد تكون قيمة الحقل "arrival" و"departure" فارغة عندما تكون قيمة "schedule_relationship" هي "SKIPPED". إذا كانت قيمة الحقل "schedule_relationship" هي "NO_DATA"، يجب أن يكون الحقلان "arrival" و"departure" فارغَين.
departure StopTimeEvent مطلوب بشروط واحد إذا كان schedule_relationship فارغًا أو SCHEDULED، يجب تقديم arrival أو departure ضمن StopTimeUpdate، ولا يمكن أن يكون كلا الحقلَين فارغَين. قد تكون قيمة الحقل "arrival" و"departure" فارغة عندما تكون قيمة "schedule_relationship" هي "SKIPPED". إذا كانت قيمة الحقل "schedule_relationship" هي "NO_DATA"، يجب أن يكون الحقلان "arrival" و"departure" فارغَين.
schedule_relationship ScheduleRelationship إجراء اختياري واحد العلاقة التلقائية هي SCHEDULED.

enum (العلاقة) المجدولة

تمثّل هذه السمة العلاقة بين سمة StopTime والجدول الزمني الثابت.

القيم

القيمة التعليق
SCHEDULED تسير السيارة وفقًا للجدول الزمني الثابت للتوقفات، وليس بالضرورة وفقًا لأوقات الجدول الزمني. وهذا هو السلوك التلقائي. يجب تقديم سمة واحدة على الأقل من arrival وdeparture.
SKIPPED يتم تخطّي المحطة، أي أنّ المركبة لن تتوقف عندها. الحقلان arrival وdeparture اختياريان.
NO_DATA لم يتم تقديم أي بيانات لهذه المحطة. يشير ذلك إلى عدم توفُّر معلومات في الوقت الفعلي. عند نشر المجموعة NO_DATA، يتم نشرها من خلال محطات لاحقة، لذا هذه هي الطريقة الموصى بها لتحديد المحطة التي ليس لديك معلومات في الوقت الفعلي عنها. عند ضبط NO_DATA، لا يجب تقديم arrival أو departure.

message موضع المركبة

معلومات تحديد الموقع في الوقت الفعلي لمركبة معيّنة

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
trip TripDescriptor إجراء اختياري واحد الرحلة التي تقدّمها هذه المركبة. يمكن أن تكون فارغة أو جزئية إذا تعذّر التعرّف على المركبة من خلال مثيل رحلة معيّن.
vehicle VehicleDescriptor إجراء اختياري واحد معلومات إضافية حول المركبة التي تقدّم هذه الرحلة يجب أن يكون لكل إدخال رقم تعريف مركبة فريد.
position Position إجراء اختياري واحد الوضع الحالي لهذه المركبة
current_stop_sequence uint32 إجراء اختياري واحد فهرس تسلسل التوقف للمحطة الحالية. وتحدِّد السمة current_status معنى current_stop_sequence (أي نقطة التوقّف التي تشير إليها). ويتم افتراض القيمة IN_TRANSIT_TO في حال عدم توفّر السمة current_status.
stop_id string إجراء اختياري واحد لتحديد المحطة الحالية. يجب أن تكون القيمة هي نفسها القيمة في stops.txt ضمن خلاصة GTFS المقابلة.
current_status VehicleStopStatus إجراء اختياري واحد الحالة الدقيقة للمركبة في ما يتعلق بالمحطة الحالية يتم تجاهل السياسة في حال عدم توفّر current_stop_sequence.
timestamp uint64 إجراء اختياري واحد اللحظة التي تم فيها قياس موضع المركبة بتوقيت POSIX (أي عدد الثواني منذ 1 كانون الثاني (يناير) 1970 في الساعة 00:00:00 بالتوقيت العالمي المنسق).
congestion_level CongestionLevel إجراء اختياري واحد
occupancy_status OccupancyStatus إجراء اختياري واحد درجة إشغال المركبة.
تنبيه: لا يزال هذا الحقل تجريبيًا وخاضعًا للتغيير. ويمكن اعتماده رسميًا في المستقبل.

التعداد تفاصيل حالة المركبة

القيم

القيمة التعليق
INCOMING_AT تكون المركبة على وشك الوصول إلى المحطة (عادةً ما يومض رمز المركبة على شاشة التوقف).
STOPPED_AT المركبة تقف في المحطة.
IN_TRANSIT_TO غادرت المركبة المحطة السابقة ويتم نقلها حاليًا.

enum CongestionLevel

مستوى الازدحام الذي يؤثر في هذه المركبة

القيم

القيمة
UNKNOWN_CONGESTION_LEVEL
RUNNING_SMOOTHLY
STOP_AND_GO
CONGESTION
SEVERE_CONGESTION

enum (حالة الإشغال)

درجة إشغال ركّاب المركبة.

تنبيه: لا يزال هذا الحقل تجريبيًا وخاضعًا للتغيير. ويمكن اعتماده رسميًا في المستقبل.

القيم

القيمة التعليق
EMPTY تُعتبر المركبة فارغة وفقًا لمعظم المقاييس، ويتوفّر فيها عدد قليل من الركاب أو لا يوجد على متنها، ولكنها لا تزال تقبل الركاب.
MANY_SEATS_AVAILABLE تتوفر نسبة كبيرة من المقاعد في السيارة أو العربة. إنّ عدد تراخيص المستخدمين المجانية من بين إجمالي عدد تراخيص المستخدمين المتاح يُعتبر كبيرًا بما يكفي لتصنيفه ضمن هذه الفئة وفقًا لتقدير المنتج.
FEW_SEATS_AVAILABLE تتوفّر نسبة قليلة من المقاعد في المركبة أو العربة. يتم تحديد عدد المقاعد المجانية من بين إجمالي عدد تراخيص المستخدمين المتوفرة لتُعتبر صغيرة بما يكفي للتصنيف ضمن هذه الفئة وفقًا لتقدير المنتج.
STANDING_ROOM_ONLY لا يمكن حاليًا سوى للركّاب الوقوف في المركبة أو العربة.
CRUSHED_STANDING_ROOM_ONLY حاليًا، يمكن للمركبة أو العربة استيعاب الركّاب الوقوف فقط وتكون المساحة محدودة لهم.
FULL تُعتبر المركبة كاملة وفقًا لمعظم المقاييس، ولكن قد تستمر في السماح للركاب بصعودها.
NOT_ACCEPTING_PASSENGERS لا تستقبل المركبة أو العربة الركاب. عادةً ما تستقبل المركبة أو العربة الركاب للصعود إلى الطائرة.
NO_DATA_AVAILABLE لَا تَتَوَفَّرْ أَيّْ بَيَانَاتْ عَنِ الرُّكَّابْ فِي الْمَرْكَبَة أَوْ العربةْ فِي الْوَقْتِ الْحَالِي.
NOT_BOARDABLE لا يمكن الصعود إلى الطائرة أو العربة ولا تستقبل الركّاب أبدًا. يُستخدَم هذا النوع من المركبات للمركبات أو العربات الخاصة (مثل المحرّك أو عربة الصيانة أو غير ذلك).

تنبيه message

تنبيه يشير إلى نوع من الحوادث في شبكة النقل العام.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
active_period TimeRange إجراء اختياري عدد كبير الوقت الذي يجب أن يظهر فيه التنبيه للمستخدم. وفي حال عدم توفّر التنبيه، سيتم عرضه طوال مدة ظهوره في الخلاصة. إذا تم توفير عدة نطاقات، سيظهر التنبيه خلال جميع النطاقات.
informed_entity EntitySelector مطلوبة عدد كبير الكيانات التي يجب إشعار مستخدميها بهذا التنبيه. يجب توفير informed_entity واحد على الأقل.
cause Cause إجراء اختياري واحد
effect Effect إجراء اختياري واحد
url TranslatedString إجراء اختياري واحد عنوان URL الذي يوفّر معلومات إضافية حول التنبيه
header_text TranslatedString مطلوبة واحد عنوان التنبيه. سيتم تمييز هذه السلسلة النصية العادية، مثلاً بالخط الغامق.
description_text TranslatedString مطلوبة واحد وصف التنبيه. وسيتم تنسيق هذه السلسلة ذات النص العادي كنص للتنبيه (أو سيتم عرضها عند طلب "توسيع" صريح من المستخدم). يجب أن تضيف المعلومات الواردة في الوصف إلى معلومات رأس الصفحة.

السبب enum

سبب هذا التنبيه.

القيم

القيمة
UNKNOWN_CAUSE
OTHER_CAUSE
TECHNICAL_PROBLEM
STRIKE
DEMONSTRATION
ACCIDENT
HOLIDAY
WEATHER
MAINTENANCE
CONSTRUCTION
POLICE_ACTIVITY
MEDICAL_EMERGENCY

تأثير enum

تأثير هذه المشكلة على الكيان المتأثر.

القيم

القيمة
NO_SERVICE
REDUCED_SERVICE
SIGNIFICANT_DELAYS
DETOUR
ADDITIONAL_SERVICE
MODIFIED_SERVICE
OTHER_EFFECT
UNKNOWN_EFFECT
STOP_MOVED

النطاق الزمني لـ message

فاصل زمني. يُعتبر الفاصل الزمني نشطًا في الوقت t إذا كان t أكبر من أو يساوي وقت start وأقل من وقت end.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
start uint64 مطلوب بشروط واحد وقت البدء، بتوقيت POSIX (أي عدد الثواني منذ 1 كانون الثاني (يناير) 1970 في الساعة 00:00:00 بالتوقيت العالمي المنسق) في حالة عدم وجوده، يبدأ الفاصل الزمني عند سالب لانهائي. إذا تم توفير TimeRange، يجب تقديم start أو end، ولا يمكن أن يكون كلا الحقلين فارغين.
end uint64 مطلوب بشروط واحد وقت الانتهاء، بتوقيت POSIX (أي عدد الثواني منذ 1 كانون الثاني (يناير) 1970 في الساعة 00:00:00 بالتوقيت العالمي المنسق) في حالة عدم وجوده، ينتهي الفاصل الزمني عند علامة زائد. إذا تم توفير TimeRange، يجب تقديم start أو end، ولا يمكن أن يكون كلا الحقلين فارغين.

موضع الرسالة

تمثّل هذه السمة الموقع الجغرافي للمركبة.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
latitude float مطلوبة واحد درجات الشمال، في نظام الإحداثيات WGS-84.
longitude float مطلوبة واحد درجات شرقية، في نظام الإحداثيات WGS-84.
bearing float إجراء اختياري واحد الاتجاه، بالدرجات، في اتجاه عقارب الساعة من صواب الشمال، أي 0 شمال و90 شرق. قد يكون هذا اتجاه البوصلة أو الاتجاه نحو المحطة التالية أو الموقع المتوسط. لا ينبغي استنتاج ذلك من تسلسل المواضع السابقة، والتي يمكن للعملاء حسابها من البيانات السابقة.
odometer double إجراء اختياري واحد قيمة عدّاد المسافة بالمتر
speed float إجراء اختياري واحد السرعة اللحظية التي تم قياسها بالمتر بالمتر في الثانية

رسالة TripDescriptor

عبارة عن واصف يحدد مثيلاً واحدًا لرحلة GTFS.

لتحديد مثيل رحلة واحد، تعمل السمة trip_id وحدها بشكل جيد في العديد من الحالات. ومع ذلك، تتطلب الحالات التالية معلومات إضافية لحلها إلى مثيل رحلة واحدة:

  • إذا تم تحديد الرحلة في frequencies.txt، يجب تضمين start_date وstart_time بالإضافة إلى trip_id.
  • إذا استمرت الرحلة أكثر من 24 ساعة أو تأخرت بحيث قد تتعارض مع رحلة محدّدة في اليوم التالي، يجب تقديم start_date وtrip_id معًا.
  • إذا تعذّر تقديم الحقل trip_id، يجب تقديم الحقول route_id وdirection_id وstart_date وstart_time.

في جميع الحالات، إذا تم توفير كل من route_id وtrip_id، يجب أن يتطابق route_id مع الحقل route_id المخصّص للرحلة المحددة في ملف GTFS trips.txt.

لا يمكن استخدام الحقل trip_id وحده أو مع حقول TripDescriptor أخرى لتحديد حالات الرحلة المتعددة. إذا تمّ حلّ مشكلة TripDescriptor في صفر أو عدة حالات رحلة، وليس في حالة واحدة، يعدّ ذلك خطأً. وقد يتجاهل المستهلكون الكيان الذي يحتوي على سمة TripDescriptor غير الصحيحة.

على سبيل المثال، عندما يتم تحديد رحلة في frequencies.txt GTFS باستخدام exact_times=0، يجب ألا تحدّد TripDescriptor مطلقًا trip_id وحدها. وذلك لأنّه عند حلّ مشكلة واحدة من الرحلة تبدأ في وقت محدّد من اليوم، عليك أيضًا تقديم السمة start_time.

تجدر الإشارة إلى أنّه إذا لم يكن trip_id معروفًا، لن تكون أرقام تعريف تسلسل المحطات في TripUpdate كافية، ويجب تقديم حقول stop_id أيضًا. بالإضافة إلى ذلك، يجب توفير أوقات الوصول والمغادرة المطلقة.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
trip_id string مطلوب بشروط واحد تمثّل هذه السمة trip_id من خلاصة GTFS التي تشير إليها أداة الاختيار هذه. ويتم تحديد ما إذا كانت رحلة trip_id مطلوبة استنادًا إلى نوع الرحلة:
الرحلات التي لا تعتمد على معدّل التكرار: يكفي حقل trip_id وحده لتحديد هذه الرحلات بشكل فريد. يُرجى العلم أنّه لا يتم تحديد الرحلات التي لا تعتمد على معدّل التكرار في frequencies.txt GTFS.
الرحلات المستندة إلى معدّل التكرار: يجب ملء الحقول trip_id وstart_time وstart_date. يتم تحديد الرحلات المستندة إلى معدّل التكرار في frequencies.txt GTFS.
الرحلات المستندة إلى جدول زمني: لا يمكن حذف الحقل trip_id إلا إذا كان من الممكن تحديد الرحلة بشكل فريد من خلال مجموعة من الحقول route_id وdirection_id وstart_time وstart_date المتاحة. يُرجى العلم أنّه لا يتم تحديد الرحلات المستندة إلى جدول زمني في frequencies.txt GTFS.
route_id string مطلوب بشروط واحد تمثّل هذه السمة route_id من خلاصة GTFS التي تشير إليها أداة الاختيار هذه. إذا تم حذف trip_id، يجب ضبط route_id وdirection_id وstart_time وschedule_relationship=SCHEDULED لتحديد مثيل الرحلة.
direction_id uint32 مطلوب بشروط واحد تمثّل هذه السمة direction_id من ملف trips.txt لخلاصة GTFS، والذي يشير إلى اتجاه الرحلة. إذا تم حذف trip_id، يجب تقديم direction_id.
تنبيه: لا يزال هذا الحقل تجريبيًا وخاضعًا للتغيير. وقد يتم اعتماده رسميًا في المستقبل.
start_time string مطلوب بشروط واحد وقت البدء المحدد في البداية لمثيل الرحلة هذا. يحدّد نوع الحقل Time تنسيق هذا الحقل، على سبيل المثال 11:15:35 أو 25:15:35. يعتمد ما إذا كان الحقل start_time مطلوبًا على نوع الرحلة:
تشير السمة trip_id إلى رحلة لا تعتمد على معدّل التكرار: يجب حذف الحقل start_time أو أن يكون مساويًا لقيمة departure_time في ملف stop_times.txt الخاص بخلاصة GTFS.
يشير trip_id إلى رحلة استنادًا إلى معدّل تكرار الرحلة: إنّ start_time مطلوبة دائمًا ويجب تحديدها للحصول على آخر المعلومات المتعلقة بالرحلة ومواضع المركبة. يتم تحديد الرحلات المستندة إلى معدّل التكرار في frequencies.txt GTFS.
إذا كانت الرحلة المستندة إلى التكرار تتوافق مع سجلّ exact_times=1 GTFS: يجب أن يكون الحقل start_time عدة مرات، بما في ذلك صفر، بقيمة headway_secs بعد تاريخ frequencies.txt start_time للفترة الزمنية المقابلة.
إذا كانت الرحلة المستندة إلى معدّل التكرار تتوافق مع سجلّ exact_times=0 GTFS: قد يكون start_time عشوائيًا، ومن المتوقع أن يكون أول مغادرة للرحلة. بعد إنشاء رحلة exact_times=0 المستندة إلى معدّل التكرار، تُعدّ start_time غير قابلة للتغيير، حتى في حال تغيّر وقت المغادرة الأول. وبدلاً من ذلك، يمكن أن تظهر أي تغييرات لاحقة في رسالة StopTimeUpdate.
تم حذف trip_id: يجب تقديم start_time.
start_date string مطلوب بشروط واحد تاريخ بدء حدث الرحلة هذا بالتنسيق YYYYMMDD. يعتمد ما إذا كانت السمة "start_date" على نوع الرحلة:
الرحلات المجدولة: يجب توفير start_date. وذلك لتوضيح الرحلات المتأخرة جدًا لدرجة أنها تتعارض مع رحلة مجدولة في اليوم التالي. على سبيل المثال، لنفترض أن قطارًا يغادر الساعة 8:00 و20:00 كل يوم. إذا تأخر القطار لمدة 12 ساعة، فستكون هناك رحلتان مختلفتان مجدولتان في نفس الوقت.
ملاحظة: هذا الحقل اختياري للرحلات المُجدوَلة التي يستحيل فيها إكمال مثل هذه التصادمات. على سبيل المثال، يمكن أن يحدث ذلك إذا كانت الخدمة تعمل وفقًا لجدول زمني كل ساعة، ولم تعد المركبة التي تتأخر ساعة واحدة غير ذات صلة بالجدول الزمني بعد الآن.
الرحلات المستندة إلى معدل التكرار: يجب توفير start_date. يُرجى العلم أنّه يتم تحديد الرحلات المستندة إلى معدّل التكرار في ملف frequencies.txt GTFS، ولكن لا يتم تحديد الرحلات المجدولة.
تم حذف trip_id: يجب تقديم start_date.
schedule_relationship ScheduleRelationship إجراء اختياري واحد العلاقة بين هذه الرحلة والجدول الزمني الثابت. إذا تم توفير TripDescriptor في Alert EntitySelector، يتجاهل المستهلكون الحقل schedule_relationship عند تحديدهم للرحلة المطابقة.

enum (العلاقة) المجدولة

العلاقة بين هذه الرحلة والجدول الزمني الثابت. إذا تمت الرحلة وفقًا للجدول الزمني المؤقت، ولا تظهر في GTFS، يجب ألّا يتم وضع علامة SCHEDULED على الرحلة، ولكن مع الإشارة إلى أنّها ADDED.

القيم

القيمة التعليق
SCHEDULED الرحلة التي تعمل وفقًا للجدول الزمني لـ GTFS أو قريبة من الرحلة المحدَّدة بما يكفي لربطها بها
ADDED رحلة إضافية تمت إضافتها بالإضافة إلى جدول زمني للجري، على سبيل المثال، لاستبدال مركبة معطلة أو للاستجابة لحمولة الركّاب المفاجئة.
UNSCHEDULED رحلة يتم تنفيذها بدون جدول زمني مرتبط بها. تُستخدَم هذه القيمة لتحديد الرحلات التي تم تحديدها في frequencies.txt GTFS باستخدام exact_times = 0. يجب عدم استخدام هذه السمة لوصف الرحلات التي لم يتم تعريفها في GTFS frequencies.txt أو الرحلات في GTFS frequencies.txt مع exact_times = 1.
CANCELED رحلة كانت مضمّنة في الجدول الزمني ولكن تمّت إزالتها

واصف المركبة message

معلومات تحديد الهوية للمركبة التي تنفّذ الرحلة

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
id string إجراء اختياري واحد تعريف النظام الداخلي للمركبة يجب أن تكون المركبة فريدة لكل مركبة، وتُستخدم لتتبُّع المركبة أثناء سير العمل في النظام. يجب عدم عرض هذا المعرّف للمستخدم النهائي، لذا استخدِم الحقل label لهذا الغرض.
label string إجراء اختياري واحد تمثّل هذه السمة تصنيفًا مرئيًا للمستخدم، أي أنّه يجب عرضه للراكب للمساعدة في تحديد المركبة الصحيحة.
license_plate string إجراء اختياري واحد لوحة ترخيص المركبة

أداة اختيار العناصر للرسالة

أداة اختيار لعنصر في خلاصة GTFS ويجب أن تتوافق قيم الحقول مع الحقول المناسبة في خلاصة GTFS. يجب تقديم محدد واحد على الأقل. وفي حال تقديم العديد من هذه القيم، يجب تفسيرها على أنّها مرتبطة بها عامل التشغيل AND المنطقي. بالإضافة إلى ذلك، يجب أن تتطابق مجموعة المُحدِّدات مع المعلومات المقابلة في خلاصة GTFS. بمعنى آخر، يجب أن يتطابق التنبيه مع جميع حقول EntitySelector المقدّمة لكي يتم تطبيقه على كيان في GTFS. على سبيل المثال، لا يسري EntitySelector الذي يتضمّن الحقلَين route_id: "5" وroute_type: "3" إلا على حافلة route_id: "5"، ولا ينطبق على أي مسارات أخرى في route_type: "3". إذا أراد أحد المنتجات تطبيق تنبيه على route_id: "5" بالإضافة إلى route_type: "3"، يجب أن يقدّم حقلَي EntitySelector منفصلَين، أحدهما يشير إلى route_id: "5" والآخر يشير إلى route_type: "3".

يجب تقديم مُحدِّد واحد على الأقل، ولا يمكن أن تكون جميع الحقول في EntitySelector فارغة.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
agency_id string مطلوب بشروط واحد تمثّل هذه السمة agency_id من خلاصة GTFS التي تشير إليها أداة الاختيار هذه.
route_id string مطلوب بشروط واحد تمثّل هذه السمة route_id من GTFS الذي تشير إليه أداة الاختيار. إذا تم توفير direction_id، يجب أيضًا تقديم route_id.
route_type int32 مطلوب بشروط واحد تمثّل هذه السمة route_type من GTFS الذي تشير إليه أداة الاختيار.
direction_id uint32 مطلوب بشروط واحد يُستخدم direction_id من ملف trips.txt لخلاصة GTFS لاختيار جميع الرحلات في اتجاه واحد لمسار ما، كما يتم تحديده في route_id. إذا تم توفير direction_id، يجب أيضًا تقديم route_id.
trip TripDescriptor مطلوب بشروط واحد مثيل الرحلة من GTFS الذي يشير إليه أداة الاختيار هذه. يجب أن يتم تحويل TripDescriptor إلى مثيل رحلة واحد في بيانات GTFS (على سبيل المثال، لا يمكن للمُنتِج توفير trip_id فقط لرحلات exact_times=0). وإذا تمت تعبئة الحقل ScheduleRelationship في TripDescriptor، سيتجاهله المستهلكون عند محاولة التعرّف على رحلة GTFS.
stop_id string مطلوب بشروط واحد تمثّل هذه السمة stop_id من خلاصة GTFS التي تشير إليها أداة الاختيار هذه.

message TranslatedString

رسالة دولية تحتوي على نُسخ لكل لغة من مقتطف نصي أو عنوان URL. سيتم اختيار إحدى السلاسل من الرسالة. وتتم معالجة الدقة على النحو التالي: إذا كانت لغة واجهة المستخدم تتطابق مع رمز اللغة الخاص بالترجمة، يتم اختيار الترجمة المطابقة الأولى. إذا تم استخدام لغة افتراضية لواجهة المستخدم (على سبيل المثال، الإنجليزية) مع رمز اللغة لإحدى الترجمات، يتم اختيار الترجمة المطابقة الأولى. في حال توفّر رمز لغة غير محدَّد، سيتم اختيار هذه الترجمة.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
translation Translation مطلوبة عدد كبير يجب تقديم ترجمة واحدة على الأقل.

ترجمة الرسائل

سلسلة مترجمة تم ربطها بإحدى اللغات.

الحقول

اسم الحقل النوع مطلوب عدد القيم الفريدة للسمة الوصف
text string مطلوبة واحد سلسلة UTF-8 تحتوي على الرسالة
language string مطلوب بشروط واحد رمز اللغة BCP-47 ويمكن عدم تضمينها إذا كانت اللغة غير معروفة أو إذا لم تتم ترجمة الخلاصة على الإطلاق. يُسمح بتضمين علامة لغة غير محدّدة في ترجمة واحدة على الأكثر، ويجب تقديم اللغة في حال توفّر أكثر من ترجمة.