Bu sayfada, bu belgenin oluşturulduğu sırada teklif aşamasında olan GTFS-Ticketing spesifikasyonunun bir alt kümesi tanımlanmaktadır. Bu sayfada Google'ın uyguladığı çeşitli ek kısıtlamalar da yer alır.
Şartlar
stop_times.txt
içindeki departure_time
alanı gereklidir.
Ek alan türleri
Bu bölümde, ek alan türleri ve Google'ın uzantılarına sahip alanlar açıklanmaktadır. Bazı alanlar için URI biçiminde değerler gerekir.
- URI: Şemayı içeren tam nitelikli bir Tekdüzen Kaynak Tanımlayıcısı (URI). URI'deki tüm özel karakterler için doğru kod dışına alma işlemleri yapılmalıdır. Tam nitelikli URI değerlerinin nasıl oluşturulacağıyla ilgili bir açıklama için RFC 3986 Tekdüzen Kaynak Tanımlayıcısı (URI): Genel Sözdizimi başlıklı makaleyi inceleyin.
Dosya uzantıları veya eklemeler
Uzantı durumuna sahip metin dosyaları, halihazırda mevcut olan ve genişletmeniz gereken dosyalardır. Aşağıdaki tabloda tanımladığımız yeni alanları eklemeniz gerekir.
Ek durumuna sahip metin dosyaları, Google toplu taşıma bileti uzantıları tarafından kullanıma sunulan yeni dosyalardır. Bu dosyaları, aşağıdaki tablodan sonra verilen Alan tanımları'na uygun olarak oluşturmanız gerekir. Bu dosyaları feed'inize eklediğinizden emin olun.
Dosya adı | Eyalet | Tanımla |
---|---|---|
agency.txt |
Uzantı | agency.ticketing_deep_link_id eklenir. |
routes.txt |
Uzantı | routes.ticketing_deep_link_id eklenir. |
trips.txt |
Uzantı | trips.ticketing_trip_id ve trips.ticketing_type ekler. |
stop_times.txt |
Uzantı | stop_times.ticketing_type eklenir. |
ticketing_identifiers.txt |
Toplama | Yeni dosya. Daha fazla bilgi için Alan tanımları başlıklı makaleyi inceleyin. |
ticketing_deep_links.txt |
Toplama | Yeni dosya. Daha fazla bilgi için Alan tanımları başlıklı makaleyi inceleyin. |
Alan tanımları
agency.txt
(uzatılmış dosya)
Alan adı | Varlık | Ayrıntılar |
---|---|---|
ticketing_deep_link_id |
İsteğe bağlı |
( |
routes.txt
(uzatılmış dosya)
Alan adı | Varlık | Ayrıntılar |
---|---|---|
ticketing_deep_link_id |
İsteğe bağlı | (ticketing_deep_links.txt kimliğinden) Bu rota için kullanılacak derin bağlantıyı tanımlar. Varsa agency.txt alanındaki alanın üzerine yazar. |
trips.txt
(uzatılmış dosya)
Alan adı | Varlık | Ayrıntılar |
---|---|---|
ticketing_trip_id |
İsteğe bağlı |
(ID) Derin bağlantıya iletilecek tanımlayıcı. Benzersiz olması gerekmez.
|
ticketing_type |
İsteğe bağlı |
(Enum) Bu seyahat için derin bağlantı üzerinden biletleme yapılıp yapılamayacağını tanımlayın:
|
stop_times.txt
(uzatılmış dosya)
Alan adı | Varlık | Ayrıntılar |
---|---|---|
ticketing_type |
İsteğe bağlı |
(Enum) Bu durak zamanı için derin bağlantı üzerinden biletleme yapılıp yapılamayacağını tanımlar.
|
ticketing_identifiers.txt
(dosya eklendi)
Bilet işlemlerinde en yaygın durum, her durakta faturalandırmayı işlemek için bir tanımlayıcı bulunmasıdır. Farklı ajanslar belirli bir durak için aynı tanımlayıcıyı kullanabilir. Birden fazla ajans aynı durakta hizmet veriyorsa bu eşlemeyi her ajans için tekrarlayın.
Alan adı | Varlık | Ayrıntılar |
---|---|---|
ticketing_stop_id |
Zorunlu | (Kimlik) Bu acente için bu durak için varsayılan biletleme kimliğini tanımlar. |
stop_id |
Zorunlu | (stops.txt kimliği) Varsayılan ticketing_stop_id değerinin tanımlandığı durak. |
agency_id |
Zorunlu | (agency.txt 'ten alınan kimlik) Varsayılan ticketing_stop_id değerinin tanımlandığı durak |
ticketing_deep_links.txt
(dosya eklendi)
Alan adı | Varlık | Ayrıntılar |
---|---|---|
ticketing_deep_link_id |
Zorunlu | (ID) Derin bağlantı için bir kimlik tanımlar. |
web_url |
İsteğe bağlı |
(URL) Derin bağlantı oluşturmak için ziyaret edilecek URL. Bu alan |
android_intent_uri |
İsteğe bağlı |
(URI) Boşsa yerel bir Android uygulamasına derin bağlantı oluşturamazsınız. Android'deki derin bağlantılar hakkında daha fazla bilgi için Uygulama içeriğine derin bağlantılar oluşturma başlıklı makaleyi inceleyin. Bu alan |
ios_universal_link_url |
İsteğe bağlı |
(URL) iOS'te çağrılacak evrensel bağlantı URL'si. Boş bırakılırsa derin bağlantı iOS'te gösterilmez. Daha fazla bilgi için iOS'te Evrensel Bağlantılar başlıklı makaleyi inceleyin. Bu alan |
API çağrısındaki alan yer tutucuları
Google, ticketing_deep_links.txt
içinde tanımlanan URL'leri aşağıdaki parametrelerle çağırır:
Alan adı | Ayrıntılar |
---|---|
service_date |
(Tarih, tekrarlanabilir) Seyahatin servis günü. Bu alanı, seyahatin ilk durağından ayrıldığı tarih için kullanın. Bu alan JSON dizisi olarak biçimlendirilir. |
ticketing_trip_id |
( Bu alan JSON dizisi olarak biçimlendirilir. |
from_ticketing_stop_time_id |
(Yinelenebilir) Bacağın başladığı Belirli bir durak süresi için değer şudur:
Bu alan JSON dizisi olarak biçimlendirilir. |
|
(Yinelenebilir) Bacağın sona erdiği Değerin türetilmesi hakkında açıklama için Bu alan JSON dizisi olarak biçimlendirilir. |
boarding_time |
(ISO 8601, tekrarlanabilir) Yolcunun araca bindiği gerçek tarih ve saat için bu alanı kullanın. Bu alanın saat değeri, aşağıdaki dize biçimiyle ISO 8601'e uygundur:
Aşağıdaki tüm saatler aynıdır ancak farklı saat dilimlerindedir:
Bu alan JSON dizisi olarak biçimlendirilir. |
arrival_time |
(ISO 8601, tekrarlanabilir) Varış zamanı, segmentin sona erdiği stop_time'de arrival_time. Bu alanın saat değeri, aşağıdaki dize biçimiyle ISO 8601'e uygundur:
Aşağıdaki tüm saatler aynıdır ancak farklı saat dilimlerindedir:
Bu alan JSON dizisi olarak biçimlendirilir. |
Örnekler
Bu örnekte, bir yolcunun yolculuğunun aşamaları şunlardır:
20190716
hizmet tarihinde,ti1
seyahat bileti kimliği,11
durak saati bileti kimliğinden12
durak saati bileti kimliğine kadar başlar. Yolcu, 14:00 (UTC)20190716
hizmet tarihinde,ti2
numaralı seyahat bileti kimliği,21
numaralı bilet verme zamanının başlangıç saatinden22
numaralı bilet verme zamanının başlangıç saatine kadar geçerlidir. Yolcu, 15:00 (UTC) itibarıyla biniyor ve 15:50 (UTC) itibarıyla varış noktasına ulaşıyor.
Bu örnekte web_url
, https://examplepetstore.com
olarak belirlenmiştir.
Tüm bu bilgiler göz önüne alındığında, bu seyahatin feed'i parametreleri için aşağıdaki değerleri kullanın:
Alan adı | Ayrıntılar |
---|---|
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"] |
Kodlamadan sonraki nihai URI şudur:
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
Farklı ticketing_stop_id
değerlerine örnekler
ticketing_identifiers.txt
alanıyla bilet işlemleri için durakların farklı kimlikleri olabilir. Kalın olarak gösterilen değerler, dosyalardan sonra açıklanan web çağrısında bulunan değerlerdir.
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 |
İstek 19.07.2019 tarihinde gönderiliyorsa ve GTFS saatleri UTC+1 saat dilimindeyse web için aşağıdaki çağrı geçerlidir:
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
Önerilen uygulamalar
Google toplu taşıma bileti uzantılarını uygulamak için aşağıdaki önerileri uygulayın:
Yönergeler | |
---|---|
Mümkün olduğunda acenteler veya rotalar arasında derin bağlantılar paylaşın. |
Statik feed'de, birden fazla ajans veya rota aynı derin bağlantı URL'lerine sahip olduğunda |
ticketing_type için tutarlı değerler ayarlayın. |
Belirli bir durak için |
Hem ana hem de alt duraklar için ticketing_stop_id haritası. |
Bilet gerektiren tüm ana ve alt duraklar için eşlemeyi gerçekleştirin. ticketing_identifiers.txt dosyasında, ticketing_stop_id değerleri bir üst durak ile alt durakları arasında yayılmaz. |
Feed'de aynı durağı kullanan her ajans için ticketing_stop_id değerini eşleyin. |
Statik feed'de, bilet işlemlerini etkinleştiren birden fazla ajans aynı durağı paylaşıyorsa eşleme, ajansların her biri için mevcut olmalıdır. Daha fazla bilgi için |
Android uygulamasına derin bağlantı gerektiğinde Android App Links'i kullanın. |
İş ortağı, derin bağlantıdan bir Android uygulamasını açmak istiyorsa derin bağlantıyı Android uygulama bağlantısı olarak ayarlayın. |
iOS uygulamasına derin bağlantı gerektiğinde iOS Evrensel Bağlantıları'nı kullanın. | İş ortağı, derin bağlantıdan bir iOS uygulamasını açmak istiyorsa derin bağlantıyı iOS Evrensel Bağlantısı olarak ayarlayın. |