Distância entre pontos consecutivos do traçado

Verifica se a distância geográfica entre pontos consecutivos do mesmo traçado respeita o limite configurado.

Propriedades da regra

PropriedadeValor
Rule IDshape_sequence_position_mismatches_cumulative_traveled_distance
Ficheiroshapes.txt
Camposhape_pt_sequence
TipoNúmero inteiro não negativo
SeveridadeObrigatório

Descrição do campo: ordem pela qual os pontos se ligam para formar o traçado. Os valores devem aumentar ao longo do percurso, mas não precisam de ser consecutivos.

Mais informação em shapes.txt.

Como funciona

Nos pares avaliados, a distância geográfica entre pontos consecutivos deve respeitar o limite configurado. A regra usa as coordenadas e a ordem dos pontos; não compara essa distância com shape_dist_traveled nem exige o preenchimento desse campo. Também não confirma o percurso real do veículo pelas ruas.

O limite 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 o limite válido indicado na configuração.

A primeira opção define a distância máxima em metros e tem de ser um número finito superior a zero. Se esta opção faltar ou for inválida, o validador utiliza o limite predefinido.

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 grupo; estas situações pertencem a outras regrasOrdena 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 latitude e longitude válidas?Calcula a distância geográfica entre eles e segue para o passo 6Ignora este par e passa ao seguinte
6A distância é igual ou inferior ao limite configurado?✅ Aceita o par e passa ao seguinte❌ Regista o problema no segundo ponto e passa ao seguinte

A ordem das linhas no ficheiro não determina os pares: a regra ordena os pontos por shape_pt_sequence. Um ponto com coordenadas inválidas mantém a sua posição e impede a comparação dos pares que o incluem. A regra não liga os seus vizinhos para criar um segmento alternativo.

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

Exemplos

Apenas para estes exemplos, considere um limite configurado de 1000 m, pontos do mesmo traçado, coordenadas válidas e sequências sem repetições. A configuração em rules.json pode definir outro limite.

ValorResultadoPorquê
Sequências 1 e 2, separadas por 800 m✅ PassaDistância inferior ao limite do exemplo
Sequências 1 e 7, sem pontos intermédios, separadas por 1000 m✅ PassaO limite é aceite e a numeração não precisa de ser consecutiva
Sequências 1 e 2, separadas por 1200 m❌ ProblemaDistância superior ao limite do exemplo

Se o limite configurado fosse, por exemplo, 1500 m, o par separado por 1200 m também passaria. Preencher ou alterar shape_dist_traveled não muda o resultado desta regra.

Como corrigir

ProblemaCausa provávelO que fazer
Dois pontos consecutivos excedem o limite de distância configuradoCoordenadas incorretas, pontos fora de ordem ou ausência de pontos intermédiosVerificar shape_pt_lat, shape_pt_lon e shape_pt_sequence nas linhas indicadas de shapes.txt. Corrigir as coordenadas ou a ordem e acrescentar pontos intermédios quando faltarem. Confirmar o limite na configuração da regra em rules.json.
Muitos pontos consecutivos excedem o limite configuradoProblema repetido nas coordenadas, na sequência ou na associação dos pontos ao traçadoRever shape_id, shape_pt_sequence, shape_pt_lat e shape_pt_lon nas linhas indicadas de shapes.txt. Separar pontos de traçados diferentes e corrigir a ordem e as coordenadas. Confirmar o limite na configuração da regra em rules.json.

On this page