Com o Google Transit, você pode usar dados em tempo real no feed estático da Especificação Geral sobre Feeds de Transporte Público (GTFS). Para isso, basta adicionar dados de posição de veículo ao seu feed. A posição é usada para transmitir informações atualizadas sobre a localização do veículo aos usuários do transporte público. Assim, eles podem planejar viagens de maneira mais eficiente. Neste artigo, apresentamos os requisitos mínimos para um feed ativo com posições de um veículo.
Como funcionam os feeds de posição do veículo
Antes de criar um feed em tempo real GTFS, é necessário ter um feed estático ativo da GTFS. Depois de criar o feed estático, você pode fazer a inscrição para compartilhar o feed em tempo real e mostrar aos usuários as posições do seu veículo.
Para que as posições do veículo mostrem estimativas precisas de chegada e partida, é preciso preencher pelo menos os campos abaixo:
Nome do campo | Obrigatório? | Descrição |
entity |
Sim | (maps_transit.FeedEntity) |
entity_id |
Sim | Mantém a informação de dados estáticos até que a viagem seja atualizada |
vehicle (position) |
Sim | (maps_transit.VehiclePosition) |
trip |
Sim | (maps_transit.TripDescriptor) |
trip_id |
Sim | Identifica exclusivamente uma viagem iniciada a partir do ponto estático |
start_time |
Sim | Obrigatório para viagens com base na frequência |
start_date |
Sim | Obrigatório para viagens com base na frequência |
schedule_relationship |
Sim | SCHEDULED ou outra informação adequada |
position |
Sim | (maps_transit.Position) |
latitude |
Sim | Graus ao norte no sistema de coordenadas WGS-84 |
longitude |
Sim | Graus ao leste no sistema de coordenadas WGS-84 |
bearing |
Opcional | Pode ser usado no futuro |
speed |
Opcional | Pode ser usado no futuro |
timestamp |
Sim | Carimbo de data/hora, exibido em segundos, do período em que a posição do veículo foi obtida |
vehicle (descriptor) |
Sim | (maps_transit.VehicleDescriptor) |
id |
Sim | Precisa identificar um veículo de maneira estável e exclusiva durante toda a viagem |
Exemplo de código
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 mais detalhes sobre os descritores de viagem, confira o artigo TripDescriptors para TripUpdate e VehiclePosition.