Salve a tutti!
Mi trovo nella situazione di dover analizzare i giri visita di una rete di vendita commerciale. Un giro visita è il piano di visite che un agente di commercio si propone di fare durante un arco di tempo definito (solitamente una settimana)...in parole semplici:
quali clienti visiterà lunedì, martedì, ecc, ed in quale ordine in modo da ridurre i chilometri di spostamento al minimo e garantire la copertura del territorio (ovvero la visita di tutti i clienti in elenco).
So che l'ottimizzazione dei percorsi stradali è materia tutt'altro che di facile determinazione (problema del tipo: dato un punto di partenza ed uno di arrivo, determinare l'ordine di passaggio per ognuno degli n punti intermedi dati, tale da minimizzare
il percorso complessivo). Quindi mi limiterei a definire manualmente l'ordine di visita dei clienti sino al concorrere di una determinata distanza giornaliera e il numero massimo di visite.
Tuttavia mi serve poter sfruttare funzioni di geodating (credo si dica così) che, dati due punti (arrivo e partenza) ne indichino la distanza in chilometri. E qui casca l'asino!
Pensavo di operare in questo modo:
- creo un elenco di clienti con queste informazioni
- Nome
- Indirizzo
- Località
- CAP
- Latitudine/Longitudine (come determino queste 2 info...è tutto da capire!)
- una qualche funzione API (credo) riceve la doppia coppia Lat/Long del record corrente (punto di arrivo) e di quello precedente (punto di partenza) e mi restituisce la distanza chilometrica tra i due punti
- totalizzo le distanze sino al concorrere della distanza giornaliera indicata come limite
- cambio l'ordine dei record a mano, sino a quando la distanza raggiunge il valore minimo
Sono consapevole del fatto che questo sistema richiede una distribuzione dei record che non può prescindere dalla conoscenza della distribuzione territoriale reale e quindi, di fatto, dovrò "avvicinare" a mano tutti i record che "devo sapere" essere vicini
tra loro geograficamente...
Ma già essere in grado di totalizzare le distanze chilometriche, dati i vari punti di passaggio giornaliero sarebbe un bel risultato...
Chi sa indicarmi letteratura, soluzioni, anche parziali, pronte, metodi e codice?
Grazie in anticipo
Sergiovery