تتيح خلاصة GTFS لمؤسسات النقل العام تزويد المستهلكين بمعلومات في الوقت الفعلي عن حالات انقطاع الخدمة (المحطات المغلقة، والخطوط المتوقّفة، والتأخيرات المهمة، وغيرها) وأوقات الوصول المتوقّعة.
تتم مناقشة الإصدار 2.0 من مواصفات الخلاصة وتوثيقها على هذا الموقع.
تعريفات المصطلحات
مطلوبة
في الإصدار 2.0 من GTFS-realtime أو الإصدارات الأحدث، يصف العمود مطلوب الحقول التي يجب أن يوفّرها المنتِج كي تكون بيانات النقل صالحة ومفهومة لتطبيق مستخدم.
يتم استخدام القيم التالية في الحقل مطلوب:
- مطلوب: يجب توفير هذا الحقل من خلال منتج خلاصة في الوقت الفعلي من خلال GTFS.
- مطلوب وفقًا لشروط: يجب توفير هذا الحقل بموجب شروط معيّنة موضّحة في حقل الوصف. وبصرف النظر عن هذه الشروط، يُعد الحقل اختياريًا.
- اختياري: هذا الحقل اختياري وليس مطلوبًا تنفيذه من قِبل المنتجين. ومع ذلك، إذا كانت البيانات متاحة في أنظمة تحديد الموقع الجغرافي التلقائية للمركبة (على سبيل المثال،
VehiclePosition
timestamp
) ننصح بأن يوفّر المنتجون هذه الحقول الاختيارية إن أمكن.
يُرجى العِلم أنّه لم يتم تحديد المتطلبات الدلالية في الإصدار 1.0 من GTFS، وبالتالي قد لا تستوفي الخلاصات التي تتضمّن gtfs_realtime_version
بقيمة 1
هذه المتطلبات (يمكنك الاطّلاع على اقتراح المتطلبات الدلالية للحصول على التفاصيل).
عدد العناصر في الحقل
تمثّل Cardinality (العلاقة الأساسية) عدد العناصر التي يمكن توفيرها لحقل معين، مع القيم التالية:
- واحد - قد يتم توفير عنصر واحد لهذا الحقل. يؤدي هذا إلى الربط بين القيم الأساسية لمخزن البروتوكولات المؤقت المطلوبة والاختيارية.
- متعدد: يمكن توفير العديد من العناصر (0 أو 1 أو أكثر) لهذا الحقل. يؤدي ذلك إلى الربط بين عدد العناصر في الحقل المتكرّر للبروتوكول المؤقت.
أشِر دائمًا إلى الحقلين مطلوب والوصف لمعرفة ما إذا كان الحقل مطلوبًا أو مطلوبًا بشروط أو اختياري. يُرجى الرجوع إلى 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 ويمكن عدم تضمينها إذا كانت اللغة غير معروفة أو إذا لم تتم ترجمة الخلاصة على الإطلاق. يُسمح بتضمين علامة لغة غير محدّدة في ترجمة واحدة على الأكثر، ويجب تقديم اللغة في حال توفّر أكثر من ترجمة. |