Google Transit bilet işlemleri uzantıları

Bu sayfada, GTFS Bileti spesifikasyonunun bu belgenin oluşturulması sırasında teklif aşamasında olan bir alt kümesi tanımlanmaktadır. Bu sayfa, Google'ın getirdiği bazı ek kısıtlamaları da içerir.

Koşullar

stop_times.txt içindeki departure_time alanı zorunludur.

Ek alan türleri

Bu bölümde, ek alan türleri ve Google'ın uzantısı olan alan türleri özetlenmektedir. Bazı alanlar URI biçiminde değerler gerektirir.

Dosya uzantıları veya eklemeler

Uzantı durumuna sahip metin dosyaları, zaten mevcut olan ve genişletmeniz gereken dosyalardır. Aşağıdaki tabloda tanımladığımız yeni alanları eklemeniz gerekir.

Ekleme durumuna sahip metin dosyaları, Google Transit Ticketing Uzantıları tarafından kullanıma sunulan yeni dosyalardır. Bu dosyaları, aşağıdaki tablodan sonra belirtilen Alan tanımlarına göre oluşturmanız gerekir. Bu dosyaları feed'inize eklediğinizden emin olun.

Dosya adı Eyalet Tanımlar
agency.txt Uzantı agency.ticketing_deep_link_id sayısını ekler.
routes.txt Uzantı routes.ticketing_deep_link_id sayısını ekler.
trips.txt Uzantı trips.trip_ticketing_id ve trips.ticketing_type eklenir.
stop_times.txt Uzantı stop_times.ticketing_type sayısını ekler.
ticketing_identifiers.txt Toplama Yeni dosya. Daha ayrıntılı bilgi için Alan tanımları bölümüne bakın.
ticketing_deep_links.txt Toplama Yeni dosya. Daha ayrıntılı bilgi için Alan tanımları bölümüne bakın.

Alan tanımları

agency.txt (dosya uzatıldı)

Alan adı Varlık Ayrıntılar
ticketing_deep_link_id İsteğe bağlı

(Kimlik: ticketing_deep_links.txt) Bu ajans için kullanılacak derin bağlantıyı tanımlar. routes.txt dilinde geçersiz kılınabilir.

routes.txt (dosya uzatıldı)

Alan adı Varlık Ayrıntılar
ticketing_deep_link_id İsteğe bağlı (Kimlik: ticketing_deep_links.txt) Bu rota için kullanılacak derin bağlantıyı tanımlar. Varsa agency.txt içindeki alanın üzerine yazar.

trips.txt (dosya uzatıldı)

Alan adı Varlık Ayrıntılar
ticketing_trip_id İsteğe bağlı

(ID) Derin bağlantıda 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 gezi için derin bağlantı aracılığıyla bilet satışı yapılıp yapılmadığını belirleyin:

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

stop_times.txt (dosya uzatıldı)

Alan adı Varlık Ayrıntılar
ticketing_type İsteğe bağlı

(Enum) Bu durdurma zamanı için derin bağlantı aracılığıyla bilet işlemleri yapmanın mümkün olup olmadığını tanımlar. stop_times.ticketing_type özelliğini tanımlarsanız trip.ticketing_type içinde ayarlanan değeri geçersiz kılar.

  • Boş: trip.ticketing_type alanındaki değeri kullanır.
  • 0:
    • Rota veya rota 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şlemleri için en sık karşılaşılan durum, her durağın faturalandırmayı işlemek için bir tanımlayıcıya sahip olmasıdır. Farklı ajanslar belirli bir durak için aynı tanımlayıcıyı kullanabilir. Aynı durakta birden fazla ajans hizmet verdiğinde bu eşlemeyi her ajans için tekrarlayın.

Alan adı Varlık Ayrıntılar
ticketing_stop_id Zorunlu (ID) Bu ajans için bu durak için varsayılan bir bilet kimliği tanımlar.
stop_id Zorunlu (Kimlik: stops.txt) Varsayılan ticketing_stop_id değerinin tanımlandığı durak.
agency_id Zorunlu (Kimlik: agency.txt) Varsayılan ticketing_stop_id değerinin tanımlandığı durağın ajansı.

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ı için ziyaret edilecek URL.

Bu alan translations.txt üzerinden çevrilemez.

android_intent_uri İsteğe bağlı

(URI) android.intent.action.VIEW amacıyla yerel bir Android uygulamasına iletilecek URI.

Boş olması, yerel Android uygulamasına derin bağlantı oluşturamayacağınız anlamına gelir.

Android'de derin bağlantılar hakkında daha fazla bilgi için Uygulama içeriğine derin bağlantılar oluşturma konusuna bakın.

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şsa derin bağlantı iOS'te gösterilmez.

Daha fazla bilgi için iOS'ta Geçiş 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 hizmet günü.

Bu alanı, gezinin ilk durağından ayrıldığı tarih için kullanın.

Bu alan JSON dizisi olarak biçimlendirilir.

ticketing_trip_id

(Kimlik: trips.txt, tekrarlanabilir) Seyahatin tanımlayıcısı.

Bu alan JSON dizisi olarak biçimlendirilir.

from_ticketing_stop_time_id

(Tekrarlanabilir) Ayağın başladığı stop_time tanımlayıcısı.

Belirli bir durdurma zamanı için değer şudur:

  • stop_time öğesinin ticketing_identifiers.txt ve agency_id için stop_id özelliğinde tanımlanan ticketing_stop_id.

  • Aksi takdirde, stop_sequence tarihinde geri alınır.

Bu alan JSON dizisi olarak biçimlendirilir.

to_ticketing_stop_time_id

(Tekrarlanabilir) Ayağın sona erdiği stop_time öğesinin tanımlayıcısı.

Değerin türetilmesiyle ilgili 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) Ayağın başladığı stop_time için kalkış saati, departure_time.

Yolcunun araca bindiği gerçek tarih ve saat için bu alanı kullanın.

Bu alanın zaman değeri, aşağıdaki dize biçimiyle ISO 8601'e uygundur:

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

Aşağıdaki saatler farklı saat dilimlerinde aynıdır:

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

Bu alan JSON dizisi olarak biçimlendirilir.

arrival_time

(ISO 8601, tekrarlanabilir) Varış saati, ayağın sona erdiği durdurma_zamanında varış_zamanı.

Bu alanın zaman değeri, aşağıdaki dize biçimiyle ISO 8601'e uygundur:

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

Aşağıdaki saatler farklı saat dilimlerinde aynıdır:

  • Londra, Birleşik Krallık: 29.07.2019T18:46:00+01:00
  • New York, ABD-NYC: 2019-07-29T13:46:00-04:00
  • Tokyo, Japonya: 30.07.2019T02:46:00+09:00

Bu alan JSON dizisi olarak biçimlendirilir.

Örnekler

Bu örnekte, bir yolcunun ayakları aşağıdaki gibidir:

  • 20190716 hizmet tarihinde seyahat bileti kimliği ti1, bitiş zamanı bilet kimliği 11 ile bitiş zamanı biletleme kimliği 12 ile başlar. Yolcu 14:00'te (UTC) trene biniyor ve 14:50'de (UTC) varacak.
  • 20190716 hizmet tarihinde seyahat bileti kimliği ti2, bitiş zamanı bilet kimliği 21 ile bitiş zamanı biletleme kimliği 22 ile başlar. Yolcu 15:00'te (UTC) trene biniyor ve 15:50'de (UTC) varacak.

Bu örnekte, web_url https://examplepetstore.com'dir.

Tüm bu bilgileri göz önünde bulundurarak, bu seyahatle ilgili feed 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"]

Aşağıda, kodlamadan sonraki son URI gösterilmiştir:

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ğeri örnekleri

Durakların, ticketing_identifiers.txt alanıyla biletleme amacıyla farklı kimlikleri olabilir. Kalın olarak yazılmış değerler, dosyalardan sonra açıklanan web görüşmesinde 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,"Oui Paris-Lyon'da TGV",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,hergün,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,ajans1,4924

si2,ajans1,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

19.07.2019 tarihinde istek gönderildiyse ve GTFS saatleri UTC+1 saat dilimindeyse web için şu çağrı yapılır:

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 bilet işlemleri uzantılarını uygulamak için aşağıdaki önerileri uygulayın:

Yönergeler
Mümkün olduğunda ajanslar veya rotalar arasında derin bağlantılar paylaşın.

Statik feed'de, birden fazla ajans veya rota aynı derin bağlantı URL'sine sahip olduğunda, ticketing_deep_link_id alanı için tek bir değeri paylaşmaları gerekir. Bu, acenteler veya rotalar arasında aktarma yapılmasına olanak tanır.

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

Belirli bir durağın ticketing_type değeri stop_times.txt dosyasındaki tüm satırlarda tutarlı olmalıdır.

Üst ve alt duraklar için ticketing_stop_id haritası. Bilet işlemi gerektiren tüm üst ve alt duraklar için eşleme yapın. ticketing_identifiers.txt dosyasında, ticketing_stop_id değerleri bir üst durak ile alt öğeleri arasında yayılmaz.
Feed'de aynı durağı kullanan her ajans için ticketing_stop_id eşlemesi.

Statik feed'de, bilet işlemleri özelliğini etkinleştiren birden çok ajans aynı durağı paylaşıyorsa ajansların her biri için eşleme bulunmalıdır.

Daha ayrıntılı bilgi için ticketing_identifiers.txt ile ilgili Alan tanımları bölümüne bakın.

Bir Android uygulamasına derin bağlantı gerektiğinde Android App Links'i kullanın.

İş ortağı bir Android uygulamasını derin bağlantıdan açmak isterse derin bağlantıyı Android Uygulama Bağlantısı olarak oluşturun.

Bir iOS uygulamasına derin bağlantı gerektiğinde iOS Geçiş Bağlantılarını kullanın. İş ortağı, derin bağlantıdan iOS uygulaması açmak isterse derin bağlantıyı iOS Geçiş Bağlantısı olarak oluşturun.