Extensiones de generación de boletos de Google Transit

En esta página, se define el subconjunto de la especificación de GTFS-Ticketing, que se encuentra en la etapa de propuesta durante la creación de este documento. También se incluyen aquí varias restricciones adicionales de Google.

Requisitos

El campo departure_time en stop_times.txt es necesario.

Tipos de campos adicionales

En esta sección, se describen los tipos de campos adicionales, así como los que incluyen extensiones de Google.

  • URI: Un identificador uniforme de recursos (URI) completamente calificado que incluye el esquema. Todos los caracteres especiales del URI deben usar los caracteres de escape correctos. Para obtener una descripción de cómo crear valores de URI completamente calificados, consulta el documento RFC 3986 Uniform Resource Identifier (URI): Generic Syntax (Identificador uniforme de recursos (URI) de RFC 3986: Sintaxis genérica).

Adiciones o extensiones de archivo

Nombre del archivo Estado Definiciones
agency.txt Extensión Agrega agency.ticketing_deep_link_id.
routes.txt Extensión Agrega routes.ticketing_deep_link_id.
trips.txt Extensión Agrega trips.trip_ticketing_id, trips.ticketing_type.
stop_times.txt Extensión Agrega stop_times.ticketing_type.
ticketing_identifiers.txt Adición
ticketing_deep_links.txt Adición

Definiciones de tablas

agency.txt (archivo extendido)

Nombre del campo Presencia Detalles
ticketing_deep_link_id Opcional (ID de ticketing_deep_links.txt) Define el vínculo directo que se usará para esta empresa. Se puede reemplazar en routes.txt.

routes.txt (archivo extendido)

Nombre del campo Presencia Detalles
ticketing_deep_link_id Opcional (ID de ticketing_deep_links.txt) Define el vínculo directo que se usará en esta ruta. Si está presente, reemplaza al que está en agency.txt.

trips.txt (archivo extendido)

Nombre del campo Presencia Detalles
ticketing_trip_id Opcional

(ID) Identificador para pasar en el vínculo directo. No tiene que ser único.

Como resguardo, se usa trip_id.

ticketing_type Opcional

(Enum) Define si este viaje incluye generación de boletos a través de vínculo directo:

  • 0 o empty: Se supone que significan lo siguiente:
    • Se encuentra disponible si se define un ticketing_deep_link_id en la ruta o la empresa.
    • De lo contrario, no estará disponible.
  • 1: No disponible

stop_times.txt (archivo extendido)

Nombre del campo Presencia Detalles
ticketing_type Opcional

(Enum) Define si este viaje incluye generación de boletos a través de vínculo directo. Si está definido, anula el valor establecido en trip.ticketing_type.

  • Vacío: Según lo definido por trip.ticketing_type.
  • 0: Se supone que es lo siguiente:
    • Está disponible si se define un ticketing_deep_link_id en la ruta o la empresa.
    • De lo contrario, no estará disponible.

ticketing_identifiers.txt (archivo agregado)

El caso más común para la generación de boletos es que cada parada tenga un identificador para procesar la facturación. Es posible que diferentes empresas utilicen el mismo identificador para cualquier parada determinada. Cuando varias empresas prestan servicio en la misma parada, repite esta asignación para cada empresa.

Nombre del campo Presencia Detalles
ticketing_stop_id Obligatorio (ID) Define un ID predeterminado de generación de boletos correspondiente a esta parada de esta empresa.
stop_id Obligatorio (ID de stops.txt) La parada para la cual se define el ticketing_stop_id predeterminado.
agency_id Obligatorio (ID de agency.txt): La empresa de la parada para la que se define el valor predeterminado de ticketing_stop_id.

ticketing_deep_links.txt (archivo agregado)

Nombre del campo Presencia Detalles>
ticketing_deep_link_id Obligatorio (ID) Define un ID para el vínculo directo.
web_url Opcional

(URL) La URL que se visitará para los vínculos directos.

Las traducciones se pueden proporcionar a través de translations.txt para enviar pasajeros a URL específicas de la configuración regional.

android_intent_uri Opcional

(URI) El URI que se debe pasar a una app para Android nativa con un intent android.intent.action.VIEW.

Si está vacío, significa que no hay vínculos directos a una app para Android nativa.

Para obtener más información sobre los vínculos directos en Android, consulta Cómo crear vínculos directos al contenido de la app.

Este campo no se puede traducir a través de translations.txt.

ios_universal_link_url Opcional

(URL) La URL del vínculo universal que se invocará en iOS.

Si está vacío, el vínculo directo no se mostrará en iOS.

Para obtener más información, consulta Universal Links on iOS (Vínculos universales en iOS).

Este campo no se puede traducir a través de translations.txt.

Marcadores de posición de campo en la llamada a la API

Google llama a las URL anteriores con los siguientes parámetros:

Nombre del campo Presencia Detalles
service_date Obligatorio

(Fecha, repetible) Día de servicio del viaje.

Este campo tiene el formato de un array JSON.

ticketing_trip_id Obligatorio

(ID de trips.txt, repetible) Es el identificador del viaje.

Este campo tiene el formato de un array JSON.

from_ticketing_stop_time_id Obligatorio

(Repetible) Es el identificador de stop_time en el que comienza el tramo.

Para una hora de parada en particular, el valor es el siguiente:

  • Es el ticketing_stop_id definido en ticketing_identifiers.txt para agency_id y stop_id de stop_time.
  • De lo contrario, se utiliza stop_sequence.

Este campo tiene el formato de un array JSON.

to_ticketing_stop_time_id Obligatorio

(Repetible) Es el identificador de la stop_time en la que termina el tramo.

Consulta from_ticketing_stop_time_id para obtener una explicación de cómo se deriva el valor.

Este campo tiene el formato de un array JSON.

boarding_time Obligatorio

(ISO 8601, repetible) Hora de salida (departure_time) de la stop_time en la que comienza el tramo.

El valor de tiempo de este campo cumple con la norma ISO 8601, y usa la siguiente string de formato:

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

Todos los horarios que aparecen a continuación son iguales, en diferentes zonas horarias:

  • En Londres, Reino Unido: 2019-07-29T18:26:00+01:00
  • En Nueva York, EE.UU.: 2019-07-29T13:26:00-04:00
  • En Tokio, JP: 2019-07-30T02:26:00+09:00

Este campo tiene el formato de un array JSON.

Ejemplos

Si los tramos son los siguientes:

  • En la fecha de servicio 20190716, el ID ti1 de boleto de viaje desde la hora de parada con ID de boleto 11 hasta la hora de parada con ID de boleto 12, con embarque a las 2:00 p.m. UTC
  • En la fecha de servicio 20190716, el ID ti2 de boleto de viaje desde la hora de parada con ID de boleto 21 hasta la hora de parada con ID de boleto 22, con embarque a las 3:00 p.m. UTC

Y la web_url es: http://myawesomebookingwebsite.com

Los valores de los parámetros son los siguientes:

Nombre del campo Detalles
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"]

El URI final (después de la codificación) es el siguiente:

http://myawesomebookingwebsite.com?service_date=%5B%2220190716%22,%22%2019071622%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

Ejemplos de diferentes valores de ticketing_stop_id

Las paradas pueden tener diferentes ID para los boletos que incluyen el campo ticketing_identifiers.txt. Los valores en negrita son los que se encuentran en la llamada web que se describe a continuación de los archivos.

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_url, ios_universal_urltdl1, https://www.thetrainline.com/api/gtfs/web, https://www.thetrainline.com/api/gtfs/android, https://www.thetrainline.com/api/gtfs/ios

La llamada para la Web, si la solicitud se realizó el día 19/07/2019 y los horarios de GTFS se encuentran en la zona horaria UTC+1, es la siguiente:

http://www.thetrainline.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-19T07:59:00%2B00:00%22%5D