Importante: Durante un trayecto, no cambies el TripDescriptor. Los TripDescriptors se usan para seleccionar un único trayecto.
Para vincular un trayecto en tiempo real con su prototipo de feed de especificación de feeds general para el transporte público (GTFS), se utiliza el submensaje TripDescriptor. En este artículo se explica cómo seleccionar un trayecto para schedule_relationship
como SCHEDULED
(programado) o CANCELED
(cancelado).
Añadir o asignar un trayecto
Para añadir un trayecto en tiempo real con schedule_relationship
como ADDED
, consulta este artículo sobre cómo añadir un trayecto en tiempo real.
Para encontrar coincidencias entre un trayecto en tiempo real y un conjunto de datos estático, debes incluir una tupla en TripDescriptor:
trip_id
start_time
start_date
trip_id
, puedes sustituirlo por el de route_id
y el de direction_id
. Para obtener coincidencias correctas, se necesitan los valores de start_time
y start_date
.Proporcionar el TripDescriptor para horarios basados y no basados en la frecuencia
TripDescriptors no basados en la frecuencia
- Tanto
trip_id
comostart_date
son obligatorios para identificar un trayecto en el horario estático. El campostart_time
es opcional. Si se incluye, debe coincidir con una de las horas de inicio del trayecto en la fecha de inicio indicada en el horario estático. - Si no puedes proporcionar el valor de
trip_id
, debes indicar los valores de <route_id
,direction_id
ystart_date
>.- Para que funcione el método de coincidencia de
route_id
ydirection_id
, el feed GTFS estático debe incluir valores paradirection_id
. Este método de coincidencia no funciona bien porque se hace de la mejor forma dentro de lo posible y está sujeto a cambios.
- Para que funcione el método de coincidencia de
Código de ejemplo
trip_update {
trip {
trip_id: "non_frequency-expanded-trip"
start_date: "20160203"
}
}
trip_update {
trip {
route_id: "route1"
direction_id: 0
start_time: "10:10:00"
start_date: "20160203"
}
}
TripDescriptors basados en la frecuencia
Los trayectos basados en la frecuencia se modelan con frequencies.txt
. Para este tipo de trayectos, el campo start_time
es obligatorio, ya que se necesita un componente de tiempo específico para identificar el trayecto.
- Para identificar un trayecto en el horario estático, se requiere una tupla de
trip_id
,start_date
ystart_time
. Si falta información, haremos todo lo posible para encontrar coincidencias con un trayecto. - Si no puedes proporcionar el
trip_id
, debes proporcionar los valores deroute_id
,direction_id
,start_date
ystart_time
. Para que funcione el método de coincidencia deroute_id
ydirection_id
, el feed GTFS estático debe incluir valores para direction_id. Este método de coincidencia no ofrece buenos resultados.
Si proporcionas un valor para start_time
, ten en cuenta lo siguiente:
- El campo
start_time
debe ser el mismo que la hora de inicio programada del conjunto de datos estático. - El valor de
start_time
debe ser el mismo en todos los TripDescriptors que representan el mismo trayecto en todos los paquetes de feeds. - No cambies el valor de
start_time
para indicar ajustes realizados en la primera hora de salida de la primera parada. En lugar de eso, usastop_time_update
. - Aunque el valor de
start_time
debe estar próximo a la hora de salida de la primera estación, no tiene que ser igual que la hora de salida.
Nota: Si trip_id
y start_time
están en el intervalo exact_time=1
, start_time
deberá ser posterior al inicio del intervalo y aparecer en un múltiplo exacto de headway_secs
.
Ejemplo
A las 10:00 del 25 de mayo del 2015, decidimos que un trayecto con trip_id=T
empezará a las start_time=10:10:00
. Proporcionamos esta información a través del feed en tiempo real a las 10:01. A las 10:05, nos enteramos de que el trayecto comenzará a las 10:13 en lugar de a las 10:10. En nuestro nuevo feed en tiempo real, todavía podemos identificar este trayecto como T, 2015-05-25, 10:10:00
, pero proporcionamos una stop_time_update
con salida de la primera parada a las 10:13:00
.
Si se cambia el valor de start_time
, se podría indicar una segunda salida del autobús. En este caso, una salida es a las 10:10 y otra se establece a las 10:13.
Código de ejemplo:
trip_update {
trip {
trip_id: “T”
start_date: "20150525"
start_time: "10:10:00"
}
stop_time_update {
stop_sequence: 1
departure {
delay: 180
}
}
}