Coordenadas do percurso da viagem referenciadas nas paragens
trip_path_stop_coordinates_referenced_from_stops
Campos que serão validados nesta regra
| Nome do Campo | Tipo | Presença | Descrição |
|---|---|---|---|
trip_id | ID único | Obrigatório | Identifica uma viagem. |
trip_id | ID estrangeiro que referencia trips.trip_id | obrigatório | ID estrangeiro que referencia trips.trip_id utilizado no stop_times para conseguir usar as stop_id. |
shape_id | ID externo que referencia shapes.shape_id | Condicionalmente obrigatório | Identifica uma forma geoespacial que descreve o trajeto do veículo para uma viagem. Condicionalmente obrigatório:
|
stop_id | ID externo que faz referência a stops.stop_id | Condicionalmente obrigatório | Identifica a paragem atendida. Todas as paragens atendidas durante uma viagem devem ter um registo em stop_times.txt. Os locais referenciados devem ser paragens/plataformas, ou seja, o seu valor stops.location_type deve ser 0 ou empty. Uma paragem pode ser servida várias vezes na mesma viagem, e várias viagens e rotas podem servir a mesma paragem. O serviço on-demand que utiliza paragens deve ser referenciado na sequência em que o serviço está disponível nessas paragens. Um consumidor de dados deve assumir que a viagem é possível de uma paragem ou local para qualquer paragem ou local posterior na viagem, desde que o pickup/drop_off_type de cada stop_time e as restrições de tempo de cada start/end_pickup_drop_off_window não o impeçam. Condicionalmente Obrigatório:
|
O que esta validação funciona
Partida: cada viagem em trips.txt tem um trip_id, um shape_id (nesta regra só interessa quando a viagem tem shape) e, em stop_times.txt, a lista de paragens por onde essa viagem passa.
Passo 1 - Quais paragens?
Para essa viagem, a validação percorre os stop_times e recolhe os stop_id que aparecem no percurso (cada paragem só conta uma vez, mesmo que apareça em vários horários).
Passo 2 - Onde estão as coordenadas?
Cada stop_id liga-se a um registo em stops.txt, onde estão stop_lat e stop_lon. É a posição da paragem que se usa como referência.
Passo 3 - Qual geometria?
O shape_id da viagem identifica a polyline (a “linha” do percurso desenhada em shapes.txt). A pergunta é: essa linha passa “perto” de cada paragem do percurso?
Passo 4 - Margem de erro (tolerância)
Não basta “estar na mesma rua”: há uma distância máxima aceitável entre o ponto da paragem e o ponto mais próximo na shape (em metros). Se a distância ultrapassa essa margem, o par paragem + shape é considerado inválido, por isso que recomendamos ter sempre as shapes atualizadas.
Passa
- A viagem não tem geometria associada (sem identificador de shape ou com o campo vazio). Porquê: sem linha de percurso desenhada não faz sentido exigir proximidade entre paragens e essa linha.
- Para cada paragem do percurso da viagem, a distância entre o ponto da paragem (coordenadas oficiais da paragem no feed) e o troço da linha do percurso mais próximo fica dentro da margem definida para o projeto. Porquê: a paragem está alinhada com a geometria que a viagem declara usar.
Falha
- Pelo menos uma paragem utilizada nos horários dessa viagem fica demasiado afastada da linha do percurso: a distância ao ponto mais próximo na geometria ultrapassa a tolerância acordada. Porquê: ou a shape não corresponde ao traçado real das paragens, ou há erro de coordenadas, identificadores trocados, ou geometria desatualizada - o feed fica inconsistente entre “por onde o veículo desenha o percurso” e “onde as paragens estão no mapa”. A mensagem de erro costuma indicar quantos metros faltam ou sobram e onde na linha fica o ponto mais próximo, para facilitar a correção.