หน้านี้กำหนดชุดย่อยของข้อกำหนด GTFS-Ticketing ซึ่งอยู่ในขั้นเสนอในระหว่างการสร้างเอกสารนี้ หน้านี้ยังมีข้อจํากัดเพิ่มเติมอีกหลายประการจาก Google ด้วย
ข้อกำหนด
ต้องกรอกข้อมูลในช่อง departure_time
ใน stop_times.txt
ประเภทฟิลด์เพิ่มเติม
ส่วนนี้จะอธิบายประเภทช่องเพิ่มเติมและช่องที่มีส่วนขยายจาก Google ช่องบางช่องกำหนดให้ค่าอยู่ในรูปแบบ URI
- URI: Uniform Resource Identifier (URI) ที่สมบูรณ์ซึ่งมีรูปแบบ สัญลักษณ์พิเศษใน URI ต้องกำหนดเป็นอักขระหลีกอย่างถูกต้อง ดูคำอธิบายวิธีสร้างค่า URI ที่สมบูรณ์ในตัวเองได้ที่ RFC 3986 Uniform Resource Identifier (URI): ไวยากรณ์ทั่วไป
นามสกุลไฟล์หรือส่วนเพิ่มเติม
ไฟล์ข้อความที่มีสถานะขยายคือไฟล์ที่มีอยู่แล้วและคุณจำเป็นต้องขยาย คุณต้องเพิ่มฟิลด์ใหม่ที่เราได้กำหนดไว้ในตารางต่อไปนี้
ไฟล์ข้อความที่มีสถานะการเพิ่มคือไฟล์ใหม่ที่ส่วนขยายการจำหน่ายตั๋วของ Google Transit เปิดตัว คุณต้องสร้างไฟล์เหล่านี้ตามคำจำกัดความของฟิลด์ที่ระบุไว้หลังตารางต่อไปนี้ อย่าลืมใส่ไฟล์เหล่านี้ในฟีด
ชื่อไฟล์ | รัฐ | กำหนด |
---|---|---|
agency.txt |
ส่วนขยาย | เพิ่ม agency.ticketing_deep_link_id |
routes.txt |
ส่วนขยาย | เพิ่ม routes.ticketing_deep_link_id |
trips.txt |
ส่วนขยาย | เพิ่ม trips.ticketing_trip_id และ trips.ticketing_type |
stop_times.txt |
ส่วนขยาย | เพิ่ม 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 ) กําหนด Deep Link ที่จะใช้สําหรับเส้นทางนี้ หากมี จะเขียนทับช่องใน agency.txt |
trips.txt
(ไฟล์ขยาย)
ชื่อช่อง | การมีบุคคลอยู่ | รายละเอียด |
---|---|---|
ticketing_trip_id |
ไม่บังคับ |
(ID) ตัวระบุที่จะส่งใน Deep Link โดยไม่จำเป็นต้องซ้ำกัน หาก |
ticketing_type |
ไม่บังคับ |
(Enum) กำหนดว่าการซื้อตั๋วผ่าน Deep Link พร้อมใช้งานสำหรับการเดินทางนี้หรือไม่
|
stop_times.txt
(ไฟล์ขยาย)
ชื่อช่อง | การมีบุคคลอยู่ | รายละเอียด |
---|---|---|
ticketing_type |
ไม่บังคับ |
(Enum) กำหนดว่าจุดจอดรถนี้อนุญาตให้ซื้อตั๋วผ่าน Deep Link ได้หรือไม่ หากคุณกำหนด
|
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) กําหนดรหัสสําหรับ Deep Link |
web_url |
ไม่บังคับ |
(URL) URL ที่จะเข้าชมสําหรับการทำ Deep Link ช่องนี้แปลผ่าน |
android_intent_uri |
ไม่บังคับ |
(URI) URI ที่ส่งไปยังแอป Android เนทีฟที่มี Intent หากเป็นค่าว่าง หมายความว่าคุณจะทำการ Deep Link ไปยังแอป Android เนทีฟไม่ได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับ Deep Link ใน Android ได้ที่สร้าง Deep Link ไปยังเนื้อหาแอป ช่องนี้แปลผ่าน |
ios_universal_link_url |
ไม่บังคับ |
(URL) URL ของ Universal Link ที่จะเรียกใช้ใน iOS หากช่องนี้ว่างเปล่า การทำ Deep Link จะไม่แสดงใน iOS ดูข้อมูลเพิ่มเติมได้ที่Universal Link ใน iOS ช่องนี้แปลผ่าน |
ตัวยึดตําแหน่งช่องในการเรียก 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-07-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
หลักเกณฑ์ | |
---|---|
แชร์ Deep Link ระหว่างเอเจนซีหรือเส้นทางต่างๆ เมื่อเป็นไปได้ |
ในฟีดแบบคงที่ เมื่อเอเจนซีหรือเส้นทางหลายแห่งมี URL ของ Deep Link เดียวกัน จะต้องแชร์ค่าเดียวสำหรับช่อง |
กําหนดค่าที่สอดคล้องกันสําหรับ ticketing_type |
ค่า |
แมป ticketing_stop_id สําหรับทั้งป้ายจอดรถหลักและป้ายจอดรถย่อย |
ทำการแมปสำหรับป้ายจอดรถหลักและป้ายจอดรถย่อยทั้งหมดที่ต้องซื้อตั๋ว ในไฟล์ ticketing_identifiers.txt ค่า ticketing_stop_id จะไม่นำไปใช้กับป้ายหยุดหลักและป้ายหยุดย่อย |
จับคู่ ticketing_stop_id สำหรับแต่ละเอเจนซีที่ใช้ป้ายจอดรถเดียวกันในฟีด |
ในฟีดแบบคงที่ หากเอเจนซีหลายรายที่เปิดใช้การจำหน่ายตั๋วใช้ป้ายจอดรถเดียวกัน แต่ละเอเจนซีต้องมีการแมป ดูรายละเอียดเพิ่มเติมได้ที่ส่วนคำจำกัดความของช่องสำหรับ |
ใช้ Android App Link เมื่อจำเป็นต้องใช้ Deep Link ไปยังแอป Android |
หากพาร์ทเนอร์ต้องการเปิดแอป Android จาก Deep Link ให้ตั้งค่า Deep Link เป็น App Link ของ Android |
ใช้ Universal Link ของ iOS เมื่อจำเป็นต้องใช้ Deep Link ไปยังแอป iOS | หากพาร์ทเนอร์ต้องการเปิดแอป iOS จาก Deep Link ให้ตั้งค่า Deep Link เป็น iOS Universal Link |