Google Transit te permite usar datos en tiempo real en la especificación de feeds general para el transporte público (GTFS) estática añadiendo datos de las posiciones de vehículos en tu feed. La posición de un vehículo proporciona a los usuarios de Google Transit información actualizada sobre su ubicación para que puedan planificar sus trayectos de forma más eficiente. En este artículo se indican los requisitos mínimos para que funcione un feed de posiciones de vehículos.
Cómo funcionan los feeds de posiciones de vehículos
Antes de crear un feed GTFS en tiempo real, debes tener un feed GTFS estático que funcione. Una vez creado este feed estático, puedes registrarte para compartir tu feed en tiempo real y mostrar a los usuarios tus posiciones de vehículos.
Para que las posiciones de vehículos muestren estimaciones de llegada y de salida precisas, el feed debe incluir como mínimo los campos siguientes:
Nombre del campo | ¿Es obligatorio? | Descripción |
entity |
Sí | (maps_transit.FeedEntity) |
entity_id |
Sí | Mantén este campo estable hasta que se actualice el trayecto |
vehicle (position) |
Sí | (maps_transit.VehiclePosition) |
trip |
Sí | (maps_transit.TripDescriptor) |
trip_id |
Sí | Identifica de forma exclusiva un trayecto del feed estático |
start_time |
Sí | Obligatorio para trayectos basados en frecuencias |
start_date |
Sí | Obligatorio para trayectos basados en frecuencias |
schedule_relationship |
Sí | "SCHEDULED" u otro valor adecuado |
position |
Sí | (maps_transit.Position) |
latitude |
Sí | Grados al norte en el sistema de coordenadas WGS-84 |
longitude |
Sí | Grados al este en el sistema de coordenadas WGS-84 |
bearing |
Opcional | Puede usarse más adelante |
speed |
Opcional | Puede usarse más adelante |
timestamp |
Sí | Marca de tiempo Epoch en la que se registró la posición del vehículo, expresada en segundos |
vehicle (descriptor) |
Sí | (maps_transit.VehicleDescriptor) |
id |
Sí | Este campo debe identificar un vehículo durante todo un trayecto de manera exclusiva y estable |
Código de ejemplo
entity {
id: "entity_id"
vehicle: {
trip: {
trip_id: "270856"
start_time: "09:42:00"
start_date: "20170313"
schedule_relationship: SCHEDULED
}
position: {
latitude : -32.92627
longitude: 151.78036
bearing : 91.0
speed : 9.8
}
timestamp: 1527621931
vehicle: {
id : "bus-234"
}
}
}
Para obtener más información sobre los descriptores de trayecto, consulta el artículo Seleccionar un trayecto con un descriptor de trayectos.