Pergunta

Eu tenho uma lista de pontos, e uma rota que um fornecedor externo tem gerado através desses pontos.

Eu gostaria de gerar uma rota usando os mesmo ponto com a minha própria rede de estradas.

Então eu quero ser capaz de detectar se há alguma diferença significativa entre as duas rotas.

Uma sugestão é que para as 2 rotas, vamos descobrir o que segmentos de estrada que viajam através, e comparar a lista de segmentos de estrada?

Esta é uma abordagem válida? Como nós vamos sobre a obtenção da lista de segmentos de estrada dado uma rota?

Estou usando o servidor ArcGis 9,3 com Java 5 e Oracle 10g. Eu estou usando as funções de ST e NetworkAnalyst através da api java.

Graças.

Foi útil?

Solução

Calcular a rota usando seus pontos e rede de estradas. Então tamponar a rota resultando em um polígono (o raio tampão deve ser a sua "tolerância"). De seguida, cortar a rota externa usando seu polígono. Se a polilinha resultante é não vazio, então não é um fora desvio da sua tolerância.

Este método não acount para quaisquer desvios "significativos", como retrocesso, inversões de marcha, ou tomando uma estrada próxima paralelo.

Como alternativa, você pode comparar as "direções" resultantes e verificar se há desvios lá - particuarly usando os nomes das ruas. Isso evita que você verificar todos os segmentos de estrada. Se você tiver quaisquer desvios em nomes de ruas, em seguida, verificar os segmentos de estrada individuais de cada seção.

Outras dicas

Acabei implementado algo semelhante no meu aplicativo. Eu tenho uma lista de Lat Long coordenadas / de um dispositivo GPS e necessário para criar uma rota com base nesses dados.

Eu comecei fazendo corresponder cada posição GPS com um nó na minha rede rua. I então removido nodos 'consecutivamente duplicadas' para filtrar para fora dessas posições consecutivas que se encontram no mesmo nó. Então, comecei a 'curta' através da minha rede de ruas, começando no primeiro nó. Eu verifiquei o primeiro nó e segundo nó e verificado por um segmento de rua comum. Se eu encontrasse um, ótimo. Se não, eu criar um caminho mais curto entre os 2 nós e usar essas estradas vez. Eu continuo fazendo isso até que eu tenha examinado todos os nós. No final deste processo, eu tenho uma lista de segmentos de estrada que o veículo viajou ea ordem em que foram viajou também.

Infelizmente, eu estou usando um mapa diferente, diferente linguagem de programação e banco de dados diferente. Como tal, compartilhando o código não será útil para você em tudo. Esperemos que o processo que eu descrito acima será suficiente ajuda para que você possa realizar sua tarefa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top