Domanda

Sto provando a fare alcune analisi di rete per un client. Il livello GIS della rete stradale fornito è di cattiva qualità; pertanto, devo ricorrere alle mappe di Google per fornirmi il percorso più breve tra 200 punti, per produrre matrici di tempo e distanza tra ciascun punto.

c'è un modo in cui posso inserire il layer come un insieme di punti KML per ottenere output della distanza e del tempo tra questi punti?

se questo è fattibile tramite l'API, hai qualche suggerimento o suggerimento su come scrivere un tale script?

Modifica il risultato finale ideale sarebbe un file CSV nel seguente formato:

node_1, node_2, distance, travel_time
node_n, node_m, distance, travel_time
È stato utile?

Soluzione

Non scriverò l'intero script per te, ma questo può essere fatto con l'API delle mappe. Apri sandbox mappe e aggiungi alla funzione onGDirectionsLoad :

alert(gdir.getDistance().meters);

Puoi trovare la documentazione qui - è anche disponibile un getDuration (). Quindi tutto ciò che devi fare è inviare una nuova richiesta una volta terminata, ottenere indicazioni per ogni coppia di punti iniziale e finale.

Tuttavia, tieni presente che se stai pianificando di ottenere 200 * 200 percorsi, Google potrebbe decidere di limitarti a un certo punto. Utilizzare questo metodo a proprio rischio e con un ritardo tra le richieste.

Nota anche che il supporto KML incorporato di google non funziona ' non sembra supportarti nel fornire l'elenco dei punti - questo ha senso, dal momento che il client potrebbe avere solo quelli che sono attualmente sullo schermo. Potrebbe essere necessario scrivere il proprio caricatore KML se si desidera utilizzare KML come formato di input. Oppure utilizza un formato più semplice, come in questo esempio .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top