Distância entre pontos consecutivos do traçado

Verifica se o aumento da distância acumulada corresponde à distância geográfica entre pontos consecutivos, dentro da tolerância configurada.

Propriedades da regra

PropriedadeValor
Rule IDshape_dist_traveled_delta_mismatches_haversine_segment
Ficheiroshapes.txt
Camposhape_dist_traveled
TipoNúmero não negativo
SeveridadeObrigatório

Descrição do campo: distância percorrida ao longo do traçado, desde o primeiro ponto até ao ponto desta linha. Permite aos planeadores de viagens apresentar a parte correta do traçado no mapa. Os valores devem aumentar com shape_pt_sequence e usar a mesma unidade que as distâncias de stop_times.txt. O campo ajuda a distinguir passagens por locais onde o percurso se cruza ou repete.

Mais informação em shapes.txt.

Como funciona

Nos segmentos avaliados, o aumento de shape_dist_traveled deve corresponder à distância geográfica entre os dois pontos, dentro da tolerância configurada. A regra compara as coordenadas dos pontos; não confirma o percurso real do veículo pelas ruas. Campos em falta, coordenadas inválidas e distâncias decrescentes são tratados por outras regras.

A tolerância depende do valor configurado no GO. . Os valores numéricos apresentados nos exemplos são ilustrativos e não constituem limites fixos. Embora exista um valor predefinido, a validação utiliza a tolerância válida indicada na configuração.

A primeira opção da regra define a tolerância em metros e aceita zero. Quando esta opção falta ou é inválida, o validador utiliza a tolerância predefinida. A segunda opção permite indicar a unidade de shape_dist_traveled: m ou km. Sem uma unidade reconhecida, o validador procura inferi-la a partir da maior distância acumulada do traçado.

A regra avalia cada grupo de pontos com o mesmo shape_id em shapes.txt, seguindo os passos abaixo por ordem.

#PerguntaSe simSe não
1A regra está desativada na configuração?Termina sem avaliarSegue para o passo 2
2O ponto tem shape_id preenchido?Segue para o passo 3Exclui o ponto desta avaliação
3O grupo tem sequências em falta, negativas ou repetidas?Não avalia o grupoOrdena os pontos por shape_pt_sequence e segue para o passo 4
4Existem dois pontos consecutivos para comparar?Segue para o passo 5Termina a avaliação do grupo
5Ambos os pontos têm coordenadas válidas e distâncias acumuladas válidas e não negativas?Segue para o passo 6Ignora este par e passa ao seguinte
6A distância acumulada diminui entre os dois pontos?Deixa esta situação para outra regra e passa ao par seguinteSegue para o passo 7
7A diferença absoluta entre o aumento registado e a distância geográfica fica dentro da tolerância configurada?✅ Aceita o segmento e passa ao seguinte❌ Regista o problema no segundo ponto e passa ao seguinte

A comparação converte as distâncias para metros. Inclui o primeiro segmento quando a distância acumulada começa em zero e os segmentos sem aumento da distância acumulada. Uma margem mínima de cálculo evita problemas causados apenas por arredondamentos numéricos.

Quando existem muitos segmentos com problemas, o resultado apresenta uma mensagem resumida por linha afetada, em vez do detalhe de cada segmento.

Exemplos

Apenas para estes exemplos, considere uma tolerância de 20 m, a unidade m e dois pontos cuja distância geográfica é 100 m. A configuração em rules.json pode definir outra tolerância ou unidade.

ValorResultadoPorquê
shape_dist_traveled passa de 0 para 100✅ PassaAumento igual à distância geográfica
shape_dist_traveled passa de 0 para 115✅ PassaDiferença de 15 m, dentro da tolerância do exemplo
shape_dist_traveled passa de 0 para 150❌ ProblemaDiferença de 50 m, acima da tolerância do exemplo
shape_dist_traveled permanece em 0❌ ProblemaDiferença de 100 m, acima da tolerância do exemplo

Se a tolerância configurada fosse, por exemplo, 60 m, o aumento de 150 m também passaria para estes mesmos pontos.

Como corrigir

ProblemaCausa provávelO que fazer
O aumento da distância acumulada difere da distância geográfica além da tolerância configuradaDistância acumulada incorreta, coordenadas incorretas ou unidade mal interpretadaVerificar shape_dist_traveled, shape_pt_lat e shape_pt_lon nos dois pontos de shapes.txt. Corrigir os valores incorretos e confirmar a unidade e a tolerância na configuração da regra em rules.json.
Muitos aumentos de distância diferem dos comprimentos dos segmentosUnidade inconsistente ou cálculo incorreto das distâncias ao longo do traçadoRever os valores de shape_dist_traveled nas linhas indicadas de shapes.txt. Confirmar a unidade configurada em rules.json e recalcular as distâncias acumuladas quando necessário.

On this page