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
Foi útil?

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 .

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