בדף הזה מוגדרת קבוצת משנה של מפרט GTFS-Ticketing, שנמצא בשלב ההצעה במהלך יצירת המסמך הזה. הדף הזה כולל גם כמה הגבלות נוספות מאת Google.
דרישות
השדה departure_time
ב-stop_times.txt
הוא חובה.
סוגי שדות נוספים
בקטע הזה מתוארים סוגי השדות הנוספים וסוגי השדות עם תוספים מ-Google. במידה מסוימת נדרשים ערכים בצורת URI.
- URI: מזהה משאבים אחיד (URI) שמוגדר במלואו שכולל את הסכמה. כלשהו בתווים המיוחדים ב-URI חייבים להשתמש בתו בריחה (escape) הנכונים. לתיאור של אופן היצירה כל ערכי ה-URI הנכונים. מידע נוסף זמין בכתובת RFC 3986 Uniform Resource Identifier (URI): גנרי תחביר.
סיומות או תוספות של קבצים
קובצי הטקסט עם תוסף המצב הם קבצים שכבר קיימים ועליך להאריך. עליכם להוסיף את השדות החדשים שאנחנו מגדירים בטבלה הבאה.
קובצי הטקסט עם המדינה הוספה הם קבצים חדשים שנוספו על ידי Google Transit תוספי מכירת כרטיסים. צריך ליצור את הקבצים האלה בהתאם הגדרות השדות שמופיעות אחרי הטבלה הבאה. חשוב כוללים את הקבצים האלה בפיד.
שם הקובץ | מדינה | הגדרות |
---|---|---|
agency.txt |
Extension | הוספה של agency.ticketing_deep_link_id . |
routes.txt |
Extension | הוספה של routes.ticketing_deep_link_id . |
trips.txt |
Extension | הוספה של trips.ticketing_trip_id ושל trips.ticketing_type . |
stop_times.txt |
Extension | הוספה של stop_times.ticketing_type . |
ticketing_identifiers.txt |
תוספת | קובץ חדש. מידע נוסף זמין במאמר הגדרות שדות. |
ticketing_deep_links.txt |
תוספת | קובץ חדש. מידע נוסף זמין במאמר הגדרות שדות. |
הגדרות של שדות
agency.txt
(הקובץ הוארך)
שם השדה | נוכחות | פרטים |
---|---|---|
ticketing_deep_link_id |
אופציונלי |
(מזהה מ- |
routes.txt
(הקובץ הוארך)
שם השדה | נוכחות | פרטים |
---|---|---|
ticketing_deep_link_id |
אופציונלי | (מזהה מ-ticketing_deep_links.txt ) מגדיר את קישור העומק שישמש לפעולה הזו
מסלול. אם השדה קיים, האפשרות הזו תחליף את השדה ב-agency.txt . |
trips.txt
(הקובץ הוארך)
שם השדה | נוכחות | פרטים |
---|---|---|
ticketing_trip_id |
אופציונלי |
(מזהה) מזהה שצריך להעביר בקישור העומק. לא חייבת להיות ייחודית. אם השדה |
ticketing_type |
אופציונלי |
(Enum) מגדירים אם אפשר לרכוש כרטיסים באמצעות קישור עומק בנסיעה הזו:
|
stop_times.txt
(הקובץ הוארך)
שם השדה | נוכחות | פרטים |
---|---|---|
ticketing_type |
אופציונלי |
(Enum) מגדיר אם מכירת כרטיסים באמצעות קישור עומק זמין בזמן העצירה הזה. אם המיקום
שמגדירים את
|
ticketing_identifiers.txt
(הקובץ נוסף)
המקרה הנפוץ ביותר של מכירת כרטיסים הוא שלכל עצירה יש מזהה לעיבוד החיוב. סוכנויות שונות עשויות להשתמש באותו מזהה לכל עצירה נתונה. כשמספר סוכנויות מציגות מודעות באותה עצירה, חוזרים על המיפוי עבור כל סוכנות.
שם השדה | נוכחות | פרטים |
---|---|---|
ticketing_stop_id |
חובה | (ID) מגדיר מזהה ברירת מחדל של מכירת כרטיסים עבור התחנה הזו. |
stop_id |
חובה | (מזהה מ-stops.txt ) התחנה שבה מוגדרת ברירת המחדל
ticketing_stop_id מוגדר. |
agency_id |
חובה | (מזהה מ-agency.txt ) הסוכנות של התחנה שעבורה ברירת המחדל
ticketing_stop_id מוגדר. |
ticketing_deep_links.txt
(הקובץ נוסף)
שם השדה | נוכחות | פרטים |
---|---|---|
ticketing_deep_link_id |
חובה | (ID) מגדיר מזהה לקישור העומק. |
web_url |
אופציונלי |
(כתובת URL) כתובת ה-URL שצריך להיכנס אליה עבור קישורי עומק. אי אפשר לתרגם את השדה הזה דרך |
android_intent_uri |
אופציונלי |
(URI) ה-URI להעברה לאפליקציה מקורית ל-Android עם
Intent מסוג אם היא ריקה, אי אפשר לבצע קישור עומק לאפליקציה מקורית ל-Android. למידע נוסף על קישורי עומק ב-Android, אפשר לעיין במאמר יצירת קישורי עומק אל תוכן האפליקציה. אי אפשר לתרגם את השדה הזה דרך |
ios_universal_link_url |
אופציונלי |
(כתובת URL) כתובת ה-URL של הקישור האוניברסלי להפעלה ב-iOS. אם השדה ריק, קישורי העומק לא יוצגו ב-iOS. מידע נוסף זמין במאמר קישורים אוניברסליים ב-iOS. אי אפשר לתרגם את השדה הזה דרך |
placeholders של שדות בקריאה ל-API
Google קוראת לכתובות ה-URL שהוגדרו ב-ticketing_deep_links.txt
כך
:
שם השדה | פרטים |
---|---|
service_date |
(תאריך, ניתן לחזרה) יום השירות של הנסיעה. אפשר להשתמש בשדה הזה לציון התאריך שבו הנסיעה יוצאת מהתחנה הראשונה שלה. השדה הזה מעוצב כמערך JSON. |
ticketing_trip_id |
(מזהה מ- השדה הזה מעוצב כמערך JSON. |
from_ticketing_stop_time_id |
(ניתן לחזרה) מזהה של במקרה של זמן עצירה ספציפי, הערך הוא:
השדה הזה מעוצב כמערך JSON. |
|
(ניתן לחזרה) מזהה של להסבר על הנגזרת של הערך, ראו
השדה הזה מעוצב כמערך JSON. |
boarding_time |
(ISO 8601, ניתן לחזרה) שעת היציאה, בשדה הזה מזינים את התאריך והשעה בפועל שבהם הנוסע עולה על הרכב. ערך הזמן בשדה הזה תואם ל- ISO 8601 עם פורמט המחרוזת הבא:
כל התאריכים הבאים זהים, באזורי זמן שונים:
השדה הזה מעוצב כמערך JSON. |
arrival_time |
(ISO 8601, ניתן לחזרה) - זמן ההגעה, arrival_time ב-stop_time שבו המקטע מסתיים. ערך הזמן בשדה זה תואם ל- ISO 8601 בפורמט המחרוזת הבא:
כל התאריכים הבאים זהים, באזורי זמן שונים:
השדה הזה מעוצב כמערך JSON. |
דוגמאות
בדוגמה הזו, אלה שלבי המסע של הנוסע:
- בתאריך השירות
20190716
, מזהה כרטיס הנסיעהti1
מתחיל מהעצירה מזהה מכירת כרטיסים השעה11
כדי להפסיק את זמן מכירת הכרטיסים12
. הנוסע/ת עלייה למטוס בשעה 14:00 (שעון UTC) והגעה בשעה 14:50 (שעון UTC). - בתאריך השירות
20190716
, מזהה כרטיס הנסיעהti2
מתחיל מהעצירה מזהה מכירת כרטיסים השעה21
כדי להפסיק את זמן מכירת הכרטיסים22
. הנוסע/ת עלייה למטוס בשעה 15:00 (UTC) והגעה בשעה 15:50 (UTC).
בדוגמה הזו, הערך web_url
הוא https://examplepetstore.com
.
לאור כל המידע הזה, צריך להשתמש בערכים הבאים לפרמטרים של הפיד. נסיעה:
שם השדה | פרטים |
---|---|
service_date |
["20190716" , "20190716"] |
ticketing_trip_id |
["ti1" , "ti2"] |
from_ticketing_stop_time_id |
["11" , "21"] |
to_ticketing_stop_time_id |
["12" , "22"] |
boarding_time |
["2019-07-16T14:00:00+00:00" , "2019-07-16T15:00:00+00:00"] |
arrival_time |
["2019-07-16T14:50:00+00:00" , "2019-07-16T15:50:00+00:00"] |
זהו ה-URI הסופי לאחר הקידוד:
https://examplepetstore.com?service_date=%5B%2220190716%22,%2220190716%22%5D
&ticketing_trip_id=%5B%22ti1%22,%22ti2%22%5D&from_ticketing_stop_time_id=%5B%2211%22,%2221%22%5D
&to_ticketing_stop_time_id=%5B%2212%22,%2222%22%5D&boarding_time=%5B%222019-07-16T14:00:00%2B00:00
%22,%222019-07-16T15:00:00%2B00:00%22%5D&arrival_time=%5B%222019-07-16T14:50:00%2B00:00 %22,%222019-07-16T15:50:00%2B00:00%22%5D
דוגמאות להבדלים
ticketing_stop_id
ערכים
לעצירות יש מזהים שונים שישמשו למכירת כרטיסים באמצעות
שדה ticketing_identifiers.txt
. הערכים המודגשים הם אלה שמופיעים בשיחת האינטרנט
שמתואר אחרי הקבצים.
stop.txt |
---|
|
routes.txt |
---|
|
trips.txt |
---|
ti1,everyday,ri1,"TGV INOUI 6603",FR_SNCF_6603 ti2,everyday,ri1,"TGV INOUI 6681",FR_SNCF_6681 ti3,everyday,ri1,"TGV INOUI 6607",FR_SNCF_6607 |
stop_times.txt |
---|
ti1,1,si1,06:59:00,06:59:00 ti1,2,si2,08:56:00,08:56:00 ti2,1,si1,07:53:00,07:53:00 ti2,2,si2,10:00:00,10:00:00 ti3,1,si1,08:59:00,08:59:00 ti3,2,si2,10:56:00,10:56:00 |
ticketing_identifiers.txt |
---|
si1,agency1,4924 si2,agency1,4676 |
ticketing_deep_links.txt |
---|
tdl1, https://examplepetstore.com/api/gtfs/web, https://examplepetstore.com/api/gtfs/android, https://examplepetstore.com/api/gtfs/ios |
אם הבקשה נשלחת ב-19 ביולי 2019 ומועדי הזמינות של GTFS הם באזור הזמן UTC+1, הערך של היא הקריאה לאינטרנט:
https://examplepetstore.com/api/gtfs/web?service_date=%5B%2220190719%22%5D&ticketing_trip_id=
%5B%22FR_SNCF_6603%22%5D&from_ticketing_stop_time_id=%5B%224924%22%5D&to_ticketing_stop_time_id=
%5B%224676%22%5D&boarding_time=%5B%222019-07-19T05:59:00%2B00:00%22%5&arrival_time=%5B%222019-07-19T07:56:00%2B00:00%22%5D
שיטות מומלצות
כדי להטמיע תוספים למכירת כרטיסים של Google Transit:
הנחיות | |
---|---|
כדאי לשתף קישורי עומק בין סוכנויות או מסלולים ככל האפשר. |
בפיד הסטטי, בכל פעם שכמה סוכנויות או מסלולים כוללים את אותן כתובות URL של קישורי עומק,
הם צריכים לשתף ערך יחיד בשדה |
צריך להגדיר ערכים עקביים עבור ticketing_type . |
הערך |
מיפוי ticketing_stop_id עבור תחנות הורה ותחנות צאצא. |
מבצעים את המיפוי של כל העצירות של ההורה והילד שמחייבות מכירת כרטיסים. ב
קובץ ticketing_identifiers.txt , ערכי ticketing_stop_id לא
לעבור בין עצירה הורה לבין הצאצאים שלה. |
צריך למפות את ticketing_stop_id לכל סוכנות שמשתמשת באותה עצירה
שבפיד. |
בפיד הסטטי, אם כמה סוכנויות שמאפשרות מכירת כרטיסים חולקות את אותה תחנה, נדרש מיפוי לכל אחת מהסוכנויות. פרטים נוספים זמינים בקטע הגדרות שדות.
עבור |
משתמשים בקישורים לאפליקציות ל-Android כשנדרש קישור עומק לאפליקציה ל-Android. |
אם השותף רוצה לפתוח אפליקציה ל-Android מקישור עומק, יש להגדיר את קישור העומק בתור קישור לאפליקציה ל-Android. |
משתמשים בקישורים אוניברסליים ל-iOS כשנדרש קישור עומק לאפליקציה ל-iOS. | אם השותף רוצה לפתוח אפליקציה ל-iOS מקישור עומק, צריך להגדיר את קישור העומק בתור קישור אוניברסלי ל-iOS. |