בדף הזה מוגדר קבוצת משנה של מפרט GTFS-Ticketing, שנמצא בשלב ההצעה במהלך יצירת המסמך הזה. הדף הזה כולל גם כמה הגבלות נוספות מ-Google.
דרישות
השדה departure_time
ב-stop_times.txt
הוא חובה.
סוגי שדות נוספים
בקטע הזה מפורטים סוגי השדות הנוספים והשדות עם התוספים של Google. בשדות מסוימים צריך להזין ערכים בצורת URI.
- URI: מזהה משאב אחיד (URI) מלא שכולל את הסכימה. כל התווים המיוחדים ב-URI צריכים להיות מסומנים בתווי בריחה (escape) בצורה תקינה. תיאור של יצירת ערכים של מזהי URI מוגדרים במלואם זמין במאמר RFC 3986 Uniform Resource Identifier (URI): Generic Syntax.
סיומות או תוספים של קבצים
קובצי הטקסט עם המצב Extension הם קבצים שכבר קיימים וצריכים להרחיב אותם. צריך להוסיף את השדות החדשים שאנחנו מגדירים בטבלה הבאה.
קובצי הטקסט עם המצב Addition הם קבצים חדשים שהוצגו על ידי התוספים של Google לתיקוף כרטיסים בתחבורה ציבורית. צריך ליצור את הקבצים האלה בהתאם להגדרות השדות שמפורטות אחרי הטבלה הבאה. הקפידו לכלול את הקבצים האלה בפיד.
שם הקובץ | מדינה | הגדרה |
---|---|---|
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 |
חובה | (מזהה) מגדיר מזהה ברירת מחדל לכרטיסים של התחנה הזו עבור החברה הזו. |
stop_id |
חובה | (מזהה מ-stops.txt ) התחנה שבה מוגדרת ברירת המחדל ticketing_stop_id . |
agency_id |
חובה | (מזהה מ-agency.txt ) הסוכנות של התחנה שבה מוגדר ticketing_stop_id כברירת מחדל. |
ticketing_deep_links.txt
(הקובץ נוסף)
שם השדה | נוכחות | פרטים |
---|---|---|
ticketing_deep_link_id |
חובה | (מזהה) הגדרת מזהה של קישור העומק. |
web_url |
אופציונלי |
(כתובת URL) כתובת ה-URL שצריך להיכנס אליה כדי לבצע קישור עומק. אי אפשר לתרגם את השדה הזה דרך |
android_intent_uri |
אופציונלי |
(URI) ה-URI שצריך להעביר לאפליקציה מקורית ל-Android עם אם השדה ריק, המשמעות היא שלא ניתן ליצור קישור עומק לאפליקציה מקורית ל-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, הקריאה הבאה היא ל-web:
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. |