encontrar caminhos mais curtos usando o google maps para um grande número de nós
-
10-07-2019 - |
Pergunta
Eu estou tentando fazer alguma análise de rede para um cliente. A camada GIS road-rede fornecido é de má qualidade; portanto, eu tenho que recorrer ao Google Maps para me fornecer caminho mais curto entre 200 pontos, para produzir matrizes de tempo e distância entre cada ponto.
Existe uma maneira que eu puder de entrada da camada como um conjunto de pontos KML para obter saídas da distância e do tempo entre esses pontos?
Se isso é factível através da API, você tem alguma dica ou sugestão sobre a forma de escrever um script?
Editar o resultado final ideal seria um arquivo CSV da seguinte forma:
node_1, node_2, distance, travel_time
node_n, node_m, distance, travel_time
Solução
Eu não vou escrever todo o roteiro para você, mas isso pode ser feito com a API de mapas. Abra Os mapas sandbox e adicionar a função onGDirectionsLoad :
alert(gdir.getDistance().meters);
Você pode encontrar a documentação aqui - um getDuration () também está disponível. Então tudo que você precisa fazer é emitir um novo pedido uma vez um acabados, obter direcções para cada par de ponto de início e fim.
No entanto, nota que, se você está pensando em começar 200 * 200 caminhos, google pode decidir taxa limite que em algum ponto. Utilize este método em seu próprio risco, e com um atraso entre as solicitações.
Note também que builtin KML suporte do Google doesn' t parecem apoiar dando-lhe a lista de pontos - isso faz sentido, uma vez que o cliente pode ter apenas aqueles que estão atualmente na tela. Você pode precisar de escrever o seu próprio carregador de KML, se você quiser usar KML como o formato de entrada. Ou usar um formato mais simples, como em este exemplo .