Nesta página, definimos um subconjunto da especificação de passagens da GTFS, que está na fase proposta durante a criação deste documento. Esta página também inclui várias outras restrições do Google.
Requisitos
O campo departure_time
em stop_times.txt
é obrigatório.
Outros tipos de campos
Nesta seção, descrevemos os outros tipos de campos e aqueles com extensões do Google. Alguns campos exigem valores na forma de URI.
- URI: um URI (Identificador de recurso uniforme) totalmente qualificado que inclui o esquema. Todos os caracteres especiais no URI precisam usar os escapes certos. Se quiser uma descrição de como criar valores de URI totalmente qualificados, consulte Identificador de recurso uniforme (URI) RFC 3986: sintaxe genérica.
Adições ou extensões de arquivo
Os arquivos de texto com o estado Extensão já existem e precisam ser estendidos. É necessário adicionar os novos campos definidos na tabela a seguir.
Os arquivos de texto com o estado Adição são novos arquivos introduzidos pelas extensões de venda de passagens do Google Transit. Você precisa criar esses arquivos de acordo com as definições de campo fornecidas após a tabela a seguir. Inclua esses arquivos no seu feed.
Nome do arquivo | Estado | Define |
---|---|---|
agency.txt |
Extensão | Adiciona agency.ticketing_deep_link_id . |
routes.txt |
Extensão | Adiciona routes.ticketing_deep_link_id . |
trips.txt |
Extensão | Adiciona trips.ticketing_trip_id e trips.ticketing_type . |
stop_times.txt |
Extensão | Adiciona stop_times.ticketing_type . |
ticketing_identifiers.txt |
Adição | Novo arquivo. Para mais detalhes, consulte Definições dos campos. |
ticketing_deep_links.txt |
Adição | Novo arquivo. Para mais detalhes, consulte Definições dos campos. |
Definições dos campos
agency.txt
(arquivo estendido)
Nome do campo | Presença | Detalhes |
---|---|---|
ticketing_deep_link_id |
Opcional |
(ID de |
routes.txt
(arquivo estendido)
Nome do campo | Presença | Detalhes |
---|---|---|
ticketing_deep_link_id |
Opcional | (ID de ticketing_deep_links.txt ) Define o link direto que será usado no trajeto. Se presente, substitui o campo em agency.txt . |
trips.txt
(arquivo estendido)
Nome do campo | Presença | Detalhes |
---|---|---|
ticketing_trip_id |
Opcional |
(ID) Identificador para transmitir no link direto. Não precisa ser único. Se |
ticketing_type |
Opcional |
(Tipo enumerado) Defina se a venda de passagens por um link direto está disponível para essa viagem:
|
stop_times.txt
(arquivo estendido)
Nome do campo | Presença | Detalhes |
---|---|---|
ticketing_type |
Opcional |
(Tipo enumerado) Define se a venda de passagens por link direto está disponível para esse horário de parada. Se você definir
|
Arquivo ticketing_identifiers.txt
: adicionado.
O caso mais comum de venda de ingressos é que cada parada tem um identificador para processar o faturamento. Agências diferentes podem usar o mesmo identificador para qualquer parada. Quando várias agências atendem à mesma parada, repita esse mapeamento para cada uma delas.
Nome do campo | Presença | Detalhes |
---|---|---|
ticketing_stop_id |
Obrigatório | (ID) Define um ID padrão de venda de passagens da empresa para essa parada. |
stop_id |
Obrigatório | (ID de stops.txt ) A parada em que o ticketing_stop_id padrão é definido. |
agency_id |
Obrigatório | (ID de agency.txt ) A empresa da parada para a qual o ticketing_stop_id padrão é definido. |
Arquivo ticketing_deep_links.txt
: adicionado.
Nome do campo | Presença | Detalhes |
---|---|---|
ticketing_deep_link_id |
Obrigatório | (ID) Define um ID para o link direto. |
web_url |
Opcional |
(URL) O URL que será acessado para links diretos. Esse campo não pode ser traduzido por |
android_intent_uri |
Opcional |
(URI) O URI que será transmitido para um app Android nativo com uma intent Se estiver vazio, isso significa que não é possível criar links diretos para um app desses. Para mais detalhes sobre os links diretos no Android, consulte Criar links diretos para conteúdo de app. Esse campo não pode ser traduzido por |
ios_universal_link_url |
Opcional |
(URL) O URL universal do link que será invocado no iOS. Se estiver vazio, o link direto não vai aparecer no iOS. Para mais informações, consulte Links universais no iOS (em inglês). Esse campo não pode ser traduzido por |
Marcadores de campo na chamada de API
O Google chama os URLs definidos em ticketing_deep_links.txt
com os seguintes parâmetros:
Nome do campo | Detalhes |
---|---|
service_date |
(Data, repetível) Dia do serviço da viagem. Use esse campo para a data em que a viagem parte da primeira parada. Esse campo é formatado como uma matriz JSON. |
ticketing_trip_id |
(ID de Esse campo é formatado como uma matriz JSON. |
from_ticketing_stop_time_id |
(Repetível) Identificador do Para um horário de parada específico, o valor é o seguinte:
Esse campo é formatado como uma matriz JSON. |
|
(Repetível) Identificador do Para uma explicação sobre a derivação do valor, consulte Esse campo é formatado como uma matriz JSON. |
boarding_time |
(ISO 8601, repetível) Horário de partida ( Use esse campo para informar a data e hora quando o passageiro embarca no veículo. O valor do horário desse campo segue a ISO 8601, com o formato de string a seguir:
Todos os horários abaixo são iguais, em fusos horários diferentes:
Esse campo é formatado como uma matriz JSON. |
arrival_time |
(ISO 8601, repetível) Horário de chegada; arrival_time no stop_time em que o trecho termina. O valor do horário desse campo segue a ISO 8601, com o formato de string a seguir:
Todos os horários abaixo são iguais, em fusos horários diferentes:
Esse campo é formatado como uma matriz JSON. |
Exemplos
No exemplo, estes são os trechos da jornada de um passageiro:
- Na data de serviço
20190716
, o ID de passagem da viagemti1
começa com11
e termina com12
(considerando os horários das paradas). O passageiro embarca às 14h UTC e chega às 14h50 UTC. - Na data de serviço
20190716
, o ID de passagem da viagemti2
começa com21
e termina com22
(considerando os horários das paradas). O passageiro embarca às 15h UTC e chega às 15h50 UTC.
Nesse exemplo, web_url
é https://examplepetstore.com
.
Com todas essas informações, use os seguintes valores nos parâmetros do feed dessa viagem:
Nome do campo | Detalhes |
---|---|
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"] |
Confira a seguir o URI final após a codificação:
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
Exemplos de valores ticketing_stop_id
diferentes
As paradas podem ter IDs diferentes para a venda de passagens no campo ticketing_identifiers.txt
. Os valores em negrito são aqueles encontrados na chamada da Web descrita após os arquivos.
stop.txt |
---|
|
routes.txt |
---|
|
trips.txt |
---|
ti1,todos os dias,ri1,"TGV INOUI 6603",FR_SNCF_6603 ti2,todos os dias,ri1,"TGV INOUI 6681",FR_SNCF_6681 ti3,todos os dias,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,agência1,4924 si2,empresa1,4676 |
ticketing_deep_links.txt |
---|
tdl1, https://examplepetstore.com/api/gtfs/web, https://examplepetstore.com/api/gtfs/android, https://examplepetstore.com/api/gtfs/ios |
Se a solicitação for feita em 19/07/2019, e os horários da GTFS estiverem no fuso horário UTC+1, esta será a chamada para a Web:
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
Práticas recomendadas
Siga estas recomendações para implementar as extensões de venda de passagens do Google Transit:
Diretrizes | |
---|---|
Compartilhe links diretos entre empresas ou trajetos sempre que possível. |
No feed estático, sempre que várias empresas ou trajetos têm os mesmos URLs de link direto, eles precisam compartilhar um único valor para o campo |
Defina valores consistentes para ticketing_type . |
O valor de |
Mapeie ticketing_stop_id para as paradas principais e secundárias. |
Faça o mapeamento de todas as paradas principais e secundárias que exigem a venda de passagens. No arquivo ticketing_identifiers.txt , os valores de ticketing_stop_id não são propagados entre uma parada principal e as secundárias. |
Mapeie ticketing_stop_id para cada agência que usa a mesma parada no feed. |
No feed estático, se várias empresas que vendem passagens compartilharem a mesma parada, o mapeamento terá que estar presente em todas elas. Para mais detalhes, consulte a seção Definições dos campos de |
Use Links do app Android quando um link direto for necessário para um app Android. |
Se o parceiro quiser abrir um aplicativo desses usando um link direto, configure como um Link do app Android. |
Use links universais no iOS quando um link direto for necessário para um app iOS. | Se o parceiro quiser abrir um aplicativo desses usando um link direto, configure como um link universal para iOS. |