Google toplu taşıma bilet işlemleri uzantıları

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ı

(ticketing_deep_links.txt kimliğinden) Bu ajans için kullanılacak derin bağlantıyı tanımlar. routes.txt'te üzerine yazılabilir.

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_trip_id boşsa sistem bunun yerine trip_id değerini kullanır.

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:

  • 0 veya boş:
    • Rota veya ajans için bir ticketing_deep_link_id tanımlarsanız bu kullanılabilir.
    • Aksi takdirde kullanılamaz.
  • 1: Kullanılamaz.

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. stop_times.ticketing_type değerini tanımlarsanız bu, trip.ticketing_type değerini geçersiz kılar.

  • Boş: trip.ticketing_type değerini kullanır.
  • 0:
    • Rota veya ajans için bir ticketing_deep_link_id tanımlarsanız bu kullanılabilir.
    • Aksi takdirde kullanılamaz.
  • 1: Kullanılamaz.

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 translations.txt üzerinden çevrilemez.

android_intent_uri İsteğe bağlı

(URI) android.intent.action.VIEW niyeti içeren yerel bir Android uygulamasına iletilecek 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 translations.txt üzerinden çevrilemez.

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 translations.txt üzerinden çevrilemez.

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

(trips.txt kimliği, tekrarlanabilir) Gezi kimliği.

Bu alan JSON dizisi olarak biçimlendirilir.

from_ticketing_stop_time_id

(Yinelenebilir) Bacağın başladığı stop_time öğesinin tanımlayıcısıdır.

Belirli bir durak süresi için değer şudur:

  • stop_time için agency_id ve stop_id ile ilgili olarak ticketing_identifiers.txt içinde tanımlanan ticketing_stop_id.

  • Aksi takdirde stop_sequence kullanılır.

Bu alan JSON dizisi olarak biçimlendirilir.

to_ticketing_stop_time_id

(Yinelenebilir) Bacağın sona erdiği stop_time öğesinin tanımlayıcısıdır.

Değerin türetilmesi hakkında açıklama için from_ticketing_stop_time_id bölümüne bakın.

Bu alan JSON dizisi olarak biçimlendirilir.

boarding_time

(ISO 8601, tekrarlanabilir) departure_time uçuşunun kalkış saati. Bu uçuş, stop_time uçuşunun başlangıç noktasıdır.

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:

YYYY-MM-DDThh:mm:ss±hh:mm

Aşağıdaki tüm saatler aynıdır ancak farklı saat dilimlerindedir:

  • Londra, Birleşik Krallık: 2019-07-29T18:26:00+01:00
  • NYC, ABD-NY: 2019-07-29T13:26:00-04:00
  • Tokyo, Japonya'da: 2019-07-30T02:26:00+09:00

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:

YYYY-MM-DDThh:mm:ss±,hh:mm

Aşağıdaki tüm saatler aynıdır ancak farklı saat dilimlerindedir:

  • Londra, Birleşik Krallık'ta: 2019-07-29T18:46:00+01:00
  • New York, ABD-NY'de: 2019-07-29T13:46:00-04:00
  • Tokyo, JP'de: 2019-07-30T02:46:00+09:00

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ğinden 12 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ıç saatinden 22 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

stop_id,stop_name

si1,"Paris Gare-de-Lyon"

si2,"Lyon Part-Dieu"

routes.txt

route_id,route_long_name,ticketing_deep_link_id

ri1,"TGV inOui Paris-Lyon",tdl1

trips.txt

trip_id,service_id,route_id,trip_short_name, ticketing_trip_id

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

trip_id,stop_sequence,stop_id,arrival_time, departure_time

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

stop_id,agency_id,ticketing_stop_id

si1,agency1,4924

si2,agency1,4676

ticketing_deep_links.txt

ticketing_deep_link_id, web_url, android_intent_uri, ios_universal_link_url

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

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_deep_link_id alanı için tek bir değer paylaşmalıdır. Bu, ajanslar veya rotalar arasında aktarım yapılmasına olanak tanır.

ticketing_type için tutarlı değerler ayarlayın.

Belirli bir durak için ticketing_type değeri, stop_times.txt dosyasındaki tüm satırlarda tutarlı olmalıdır.

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 ticketing_identifiers.txt ile ilgili Alan tanımları bölümüne bakın.

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.