Ta strona definiuje podzbiór specyfikacji GTFS-Ticketing, która w momencie tworzenia tego dokumentu jest na etapie propozycji. Na tej stronie znajdziesz też kilka dodatkowych ograniczeń narzuconych przez Google.
Wymagania
Pole departure_time
w sekcji stop_times.txt
jest wymagane.
Dodatkowe typy pól
W tej sekcji opisujemy dodatkowe typy pól i pola z rozszerzeniami Google. Niektóre pola wymagają wartości w postaci identyfikatora URI.
- Identyfikator URI: pełny identyfikator URI, który zawiera schemat. Znaki specjalne w URI muszą zawierać odpowiednie kody zmiany znaczenia. Aby dowiedzieć się, jak tworzyć wartości pełnych adresów URI, zapoznaj się z dokumentem RFC 3986 Uniform Resource Identifier (URI): Generic Syntax (Identyfikator Uniform Resource Identifier (URI): składnia ogólna).
Rozszerzenia plików lub dodatki
Pliki tekstowe o stanie Rozszerzenie to pliki, które już istnieją i które trzeba rozszerzyć. Musisz dodać nowe pola zdefiniowane w tabeli poniżej.
Pliki tekstowe ze stanem Dodawanie to nowe pliki wprowadzone przez rozszerzenia Google Transit Ticketing. Te pliki musisz utworzyć zgodnie z definicjami pól podanymi w tabeli poniżej. Pamiętaj, aby uwzględnić te pliki w pliku danych.
Nazwa pliku | Stan | Określa |
---|---|---|
agency.txt |
Rozszerzenie | Dodaje agency.ticketing_deep_link_id . |
routes.txt |
Rozszerzenie | Dodaje routes.ticketing_deep_link_id . |
trips.txt |
Rozszerzenie | Dodaje trips.ticketing_trip_id i trips.ticketing_type . |
stop_times.txt |
Rozszerzenie | Dodaje stop_times.ticketing_type . |
ticketing_identifiers.txt |
Dodanie | Nowy plik. Więcej informacji znajdziesz w definicjach pól. |
ticketing_deep_links.txt |
Dodanie | Nowy plik. Więcej informacji znajdziesz w definicjach pól. |
Definicje pól
agency.txt
(plik rozszerzony)
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_deep_link_id |
Opcjonalnie |
(Identyfikator z |
routes.txt
(plik rozszerzony)
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_deep_link_id |
Opcjonalnie | (identyfikator z ticketing_deep_links.txt ) Określa precyzyjny link do użycia na potrzeby tej trasy. Jeśli jest podany, zastępuje pole w agency.txt . |
trips.txt
(plik rozszerzony)
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_trip_id |
Opcjonalnie |
(ID) Identyfikator do przekazania w precyzyjnym linku. Nie musi być unikalna. Jeśli wartość |
ticketing_type |
Opcjonalnie |
(Enum) Określ, czy w przypadku tej podróży dostępna jest sprzedaż biletów za pomocą precyzyjnego linku:
|
stop_times.txt
(plik rozszerzony)
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_type |
Opcjonalnie |
(Wyliczenie) Określa, czy w przypadku tego czasu przystanku dostępne są bilety przez precyzyjny link. Jeśli zdefiniujesz parametr
|
ticketing_identifiers.txt
(dodano plik)
Najczęstszym przypadkiem dotyczącym biletów jest to, że każde zatrzymanie ma identyfikator do przetwarzania płatności. Różne agencje mogą używać tego samego identyfikatora w przypadku dowolnego przystanku. Jeśli wiele agencji obsługuje to samo miejsce docelowe, powtórz to mapowanie dla każdej agencji.
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_stop_id |
Wymagany | (ID) Definiuje domyślny identyfikator biletu dla tego przystanku w przypadku tej agencji. |
stop_id |
Wymagany | (Identyfikator z stops.txt ) Punkt, dla którego zdefiniowano domyślny parametr ticketing_stop_id . |
agency_id |
Wymagany | (Identyfikator z agency.txt ) Agencja przystanku, dla którego zdefiniowano domyślną wartość ticketing_stop_id . |
ticketing_deep_links.txt
(dodano plik)
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_deep_link_id |
Wymagany | (ID) Określa identyfikator precyzyjnego linku. |
web_url |
Opcjonalnie |
(URL) Adres URL, który należy odwiedzić, aby utworzyć precyzyjny link. Tego pola nie można przetłumaczyć za pomocą funkcji |
android_intent_uri |
Opcjonalnie |
(URI) Identyfikator URI do przekazania do natywnej aplikacji na Androida z zastosowaniem intencji Jeśli jest pusty, oznacza to, że nie możesz utworzyć precyzyjnego linku do natywnej aplikacji na Androida. Więcej informacji o precyzyjnych linkach na Androida znajdziesz w artykule Tworzenie precyzyjnych linków do treści w aplikacji. Tego pola nie można przetłumaczyć za pomocą funkcji |
ios_universal_link_url |
Opcjonalnie |
(URL) Adres URL uniwersalnego linku do wywołania na iOS. Jeśli jest pusty, precyzyjne linki nie będą wyświetlane w iOS. Więcej informacji znajdziesz w artykule Linki uniwersalne na iOS. Tego pola nie można przetłumaczyć za pomocą funkcji |
Obiekty zastępcze pól w wywołaniu interfejsu API
Google wywołuje adresy URL zdefiniowane w parametrze ticketing_deep_links.txt
z tymi parametrami:
Nazwa pola | Szczegóły |
---|---|
service_date |
(Data, powtarzalna) Dzień wykonania usługi w ramach podróży. Użyj tego pola, aby podać datę wyjazdu z pierwszego przystanku. To pole jest formatowane jako tablica JSON. |
ticketing_trip_id |
(identyfikator z To pole jest formatowane jako tablica JSON. |
from_ticketing_stop_time_id |
(powtarzalny) Identyfikator W przypadku konkretnego czasu zatrzymania wartość jest następująca:
To pole jest formatowane jako tablica JSON. |
|
(powtarzalny) Identyfikator Wyjaśnienie pochodzenia wartości znajdziesz w sekcji To pole jest formatowane jako tablica JSON. |
boarding_time |
(ISO 8601, powtarzalny) Czas wylotu, Użyj tego pola, aby podać rzeczywistą datę i godzinę, kiedy pasażer wsiadł do pojazdu. Wartość czasu w tym polu jest zgodna ze standardem ISO 8601 i ma następujący format ciągu znaków:
Wszystkie podane niżej godziny są takie same, ale w różnych strefach czasowych:
To pole jest formatowane jako tablica JSON. |
arrival_time |
(ISO 8601, powtarzalny) Czas przybycia, arrival_time w stop_time, w którym kończy się odcinek. Wartość czasu w tym polu jest zgodna ze standardem ISO 8601 i ma postać ciągu znaków:
Wszystkie podane niżej godziny są takie same, ale w różnych strefach czasowych:
To pole jest formatowane jako tablica JSON. |
Przykłady
W tym przykładzie przejazd pasażera składa się z tych odcinków:
- W dniu świadczenia usługi
20190716
identyfikator biletu na przejazdti1
zaczyna się od identyfikatora czasu zatrzymywania11
do identyfikatora czasu zatrzymywania12
. Pasażer wsiada o 20:00 czasu UTC i dojeżdża o 20:50 czasu UTC. - W dniu świadczenia usługi
20190716
identyfikator biletu na przejazdti2
zaczyna się od identyfikatora czasu zatrzymywania21
do identyfikatora czasu zatrzymywania22
. Pasażer wsiada o 15:00 UTC i dojeżdża o 15:50 UTC.
W tym przykładzie web_url
to https://examplepetstore.com
.
Mając te wszystkie informacje, użyj tych wartości w parametrach pliku danych dla tej podróży:
Nazwa pola | Szczegóły |
---|---|
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"] |
Oto końcowy identyfikator URI po zakodowaniu:
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
Przykłady różnych wartości parametru ticketing_stop_id
Przystanki mogą mieć różne identyfikatory na potrzeby wystawiania biletów za pomocą pola ticketing_identifiers.txt
. Wartości w grubej czcionce pochodzą z wywołania internetowego opisanego po plikach.
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 |
Jeśli prośba została wysłana 19 lipca 2019 r., a czas w GTFS jest podany w strefie czasowej UTC+1, wywołanie w internecie będzie wyglądać tak:
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
Zalecane metody
Aby wdrożyć rozszerzenia Google Transit dotyczące biletów:
Wytyczne | |
---|---|
W miarę możliwości udostępniaj precyzyjne linki między agencjami lub trasami. |
W pliku danych statycznych, gdy wiele agencji lub tras ma te same adresy URL linków szczegółowych, muszą one mieć tę samą wartość w polu |
Ustaw spójne wartości atrybutu ticketing_type . |
Wartość |
Mapuj ticketing_stop_id zarówno dla przystanków nadrzędnych, jak i podrzędnych. |
Przeprowadź mapowanie wszystkich przystanków nadrzędnych i podrzędnych, które wymagają biletowania. W pliku ticketing_identifiers.txt wartości ticketing_stop_id nie są propagowane między przystankiem nadrzędnym a jego podrzędnymi. |
Zamapuj ticketing_stop_id dla każdej agencji, która używa tego samego przystanku w pliku danych. |
Jeśli w pliku danych statycznych wiele agencji, które umożliwiają sprzedaż biletów, udostępnia ten sam przystanek, mapowanie musi być obecne w przypadku każdej z tych agencji. Więcej informacji znajdziesz w sekcji Definicje pól dotyczącej pola |
Używaj linków aplikacji na Androida, gdy potrzebny jest precyzyjny link do aplikacji na Androida. |
Jeśli partner chce otworzyć aplikację na Androida z poziomu precyzyjnego linku, skonfiguruj precyzyjny link jako link do aplikacji na Androida. |
Używaj uniwersalnych linków iOS, gdy potrzebny jest precyzyjny link do aplikacji na iOS. | Jeśli partner chce otworzyć aplikację na iOS za pomocą precyzyjnego linku, skonfiguruj precyzyjny link jako uniwersalny link na iOS. |