Ta strona definiuje podzbiór specyfikacji GTFS dotyczących biletów, która jest na etapie składania oferty podczas tworzenia tego dokumentu. Strona ta zawiera również kilka dodatkowych ograniczeń: Google.
Wymagania
Pole departure_time
w stop_times.txt
jest wymagane.
Dodatkowe typy pól
W tej sekcji przedstawiamy dodatkowe typy pól oraz te z rozszerzeniami od Google. Niektóre wymagają wartości w postaci identyfikatora URI.
- URI: pełny kwalifikowany identyfikator URI zawierający schemat. Dowolne znaki specjalne w identyfikatorze URI muszą zawierać odpowiednie znaki zmiany znaczenia. Opis sposobu tworzenia w pełni kwalifikowane wartości identyfikatora URI znajdziesz w dokumencie RFC 3986 Uniform Resource Identifier (URI): Ogólna składnia.
Rozszerzenia plików lub dodatki
Pliki tekstowe ze stanem Rozszerzenie to pliki, które już istnieją i które jest wymagane i rozszerzenia. Musisz dodać nowe pola zdefiniowane w poniższej tabeli.
Pliki tekstowe ze stanem Addition (dodawanie) to nowe pliki wprowadzone przez funkcję Transport publiczny Google. Rozszerzenia biletów. Musisz utworzyć te pliki zgodnie z Definicje pól podane za tabelą. Koniecznie uwzględnianie tych plików w pliku danych.
Nazwa pliku | Stan | Definiuje |
---|---|---|
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 artykule Definicje pól. |
ticketing_deep_links.txt |
Dodanie | Nowy plik. Więcej informacji znajdziesz w artykule Definicje 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, który ma być używany w tym przypadku
. Jeśli ta opcja jest dostępna, zastępuje pole w agency.txt . |
trips.txt
(plik rozszerzony)
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_trip_id |
Opcjonalnie |
(ID) Identyfikator do przekazywania precyzyjnego linku. Nie musi być niepowtarzalna. Jeśli pole |
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 |
(Enum) Określa, czy dla tego czasu przestoju dostępna jest sprzedaż biletów za pomocą precyzyjnego linku. Jeśli
zdefiniowanej przez Ciebie w funkcji
|
ticketing_identifiers.txt
(plik dodany)
Najczęściej jest to związane z tym, że każdy przystanek ma identyfikator potrzebny do przetworzenia płatności. Różne agencje mogą używać tego samego identyfikatora dla danego przystanku. Gdy wiele agencji wyświetla reklamy ten sam przystanek, powtórz mapowanie dla każdej agencji.
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_stop_id |
Wymagany | (ID) Określa domyślny identyfikator biletu dla tego przystanku dla agencji. |
stop_id |
Wymagany | (Identyfikator z stops.txt ) Przystanek, dla którego domyślna
Zdefiniowano ticketing_stop_id . |
agency_id |
Wymagany | (Identyfikator od agency.txt ) Agencja przystanku, dla którego domyślna
Zdefiniowano ticketing_stop_id . |
ticketing_deep_links.txt
(plik dodany)
Nazwa pola | Obecność | Szczegóły |
---|---|---|
ticketing_deep_link_id |
Wymagany | (ID) – definiuje identyfikator precyzyjnego linku. |
web_url |
Opcjonalnie |
(URL) Adres URL strony, na którą należy przejść na potrzeby precyzyjnych linków. Tego pola nie można przetłumaczyć za pomocą funkcji |
android_intent_uri |
Opcjonalnie |
(URI) Identyfikator URI przekazywany do natywnej aplikacji na Androida ze znakiem
Intencja Jeśli to pole jest puste, oznacza to, że nie można utworzyć precyzyjnego linku do natywnej aplikacji na Androida. Więcej informacji o precyzyjnych linkach na Androidzie znajdziesz w artykule Tworzenie precyzyjnych linków zawartości aplikacji. Tego pola nie można przetłumaczyć za pomocą funkcji |
ios_universal_link_url |
Opcjonalnie |
(URL) Uniwersalny adres URL linku do wywołania w iOS. Jeśli to pole jest puste, precyzyjne linki nie będą się wyświetlać w iOS. Więcej informacji znajdziesz w artykule Uniwersalne linki na iOS. Tego pola nie można przetłumaczyć za pomocą funkcji |
Zmienne pól w wywołaniu interfejsu API
Google wywołuje adresy URL zdefiniowane w elemencie ticketing_deep_links.txt
za pomocą:
parametry:
Nazwa pola | Szczegóły |
---|---|
service_date |
(Data, powtarzalna) Dzień obsługi podróży. W tym polu podaj datę odjazdu 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 |
(Powtarzalne) Identyfikator elementu Dla określonego czasu zakończenia wartość jest następująca:
To pole jest formatowane jako tablica JSON. |
|
(Powtarzalne) Identyfikator elementu Wyjaśnienie dotyczące wyprowadzania wartości znajdziesz w opisie
To pole jest formatowane jako tablica JSON. |
boarding_time |
(ISO 8601, powtarzalna) Godzina odjazdu: Użyj tego pola, aby podać rzeczywistą datę i godzinę wejścia do pojazdu przez pasażera. Wartość czasu w tym polu jest zgodna z ISO 8601 z następujący format ciągu:
Wszystkie podane niżej godziny są takie same, w różnych strefach czasowych:
To pole jest formatowane jako tablica JSON. |
arrival_time |
(ISO 8601, powtarzalna) Godzina przybycia, czas przyjazdu w strefie stop_time, w której kończy się. Wartość czasu w tym polu jest zgodna z wartością ISO 8601 z następującym formatem ciągu znaków:
Wszystkie podane niżej godziny są takie same, w różnych strefach czasowych:
To pole jest formatowane jako tablica JSON. |
Przykłady
W tym przykładzie są to etapy podróży pasażera:
- W dniu usługi (
20190716
) identyfikator biletu w podróży (ti1
) zaczyna się od przystanku. identyfikator biletu na czas:11
, aby zatrzymać bilet na czas o identyfikatorze12
. Pasażer wejście na pokład o 14:00 czasu UTC i przylot o 14:50 czasu UTC. - W dniu usługi (
20190716
) identyfikator biletu w podróży (ti2
) zaczyna się od przystanku. identyfikator biletu na czas:21
, aby zatrzymać bilet na czas o identyfikatorze22
. Pasażer wejście na pokład o 15:00 czasu UTC i przylot o 15:50 czasu UTC.
W tym przykładzie web_url
to https://examplepetstore.com
.
Biorąc pod uwagę wszystkie te informacje, w pliku danych użyj podanych niżej wartości podróż:
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
ticketing_stop_id
wartości
Przystanki mogą mieć różne identyfikatory na potrzeby sprzedaży biletów,
ticketing_identifiers.txt
. Wartości, które są pogrubione, to wartości znalezione w wywołaniu internetowym
i opisanej 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,agencja1,4924 si2,agencja1,4676 |
ticketing_deep_links.txt |
---|
tdl1, https://examplepetstore.com/api/gtfs/web, https://examplepetstore.com/api/gtfs/android, https://przykladowysklepzoologiczny.com/api/gtfs/ios |
Jeśli żądanie zostało przesłane 19.07.2019, a godziny GTFS są podane w strefie czasowej UTC+1, wtedy mamy do czynienia z internetem:
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 sprzedaży biletów w transporcie publicznym, postępuj zgodnie z tymi zaleceniami:
Wytyczne | |
---|---|
Jeśli to możliwe, udostępniaj precyzyjne linki między agencjami lub trasami. |
Jeśli w statycznym pliku danych wiele agencji lub tras ma te same adresy URL precyzyjnych linków,
muszą mieć jedną wartość w polu |
Ustaw spójne wartości dla funkcji ticketing_type . |
Wartość |
Zmapuj ticketing_stop_id na przystanki nadrzędne i podrzędne. |
Przeprowadź mapowanie wszystkich przystanków nadrzędnych i podrzędnych, które wymagają biletów. W
ticketing_identifiers.txt , wartości ticketing_stop_id nie zawierają
propaguje się między przystankiem nadrzędnym a jego podrzędnymi. |
Mapa ticketing_stop_id dla każdej agencji, która korzysta z tego samego przystanku w
kanału. |
Jeśli w statycznym pliku danych wiele agencji, które umożliwiają sprzedaż biletów, ma ten sam przystanek, dla każdej agencji musi być dostępne mapowanie. Więcej informacji znajdziesz w sekcji Definicje pól.
za |
Używaj linków aplikacji na Androida, gdy wymagany jest precyzyjny link do aplikacji na Androida. |
Jeśli partner chce otwierać aplikację na Androida za pomocą precyzyjnego linku, ustaw precyzyjny link jako link aplikacji na Androida. |
Jeśli wymagany jest precyzyjny link do aplikacji na iOS, użyj uniwersalnych linków na iOS. | Jeśli partner chce otwierać aplikację na iOS za pomocą precyzyjnego linku, ustaw precyzyjny link jako Uniwersalny link na iOS. |