Calcolo della distanza totale di un percorso multitappa
Un viaggio con più tappe è completo solo se sono noti i collegamenti tra ogni coppia consecutiva.
Esegui gratis nel browser
Questo calcolatore riceve l’ordine esatto delle visite e un insieme di distanze tra coppie, quindi somma soltanto i tratti effettivamente usati. Restituisce un dettaglio verificabile insieme al totale e segnala con chiarezza ogni collegamento necessario assente. Le coppie non hanno direzione, perciò una distanza vale in entrambi i sensi.
Descriva il percorso e le distanze disponibili
Inizi dall’elenco delle tappe, inserendo ogni luogo nell’esatto ordine di visita. Gli spazi alle estremità dei nomi vengono eliminati, mentre maiuscole, minuscole e spazi interni restano significativi; utilizzi quindi etichette coerenti. Una tappa può comparire più volte quando il percorso torna al deposito o visita nuovamente un luogo. Fornisca poi record con partenza, arrivo e distanza. Ogni record rappresenta una coppia non direzionale: la misura Deposito–Museo vale anche per Museo–Deposito. Le distanze devono essere numeri finiti non negativi e usare tutte l’unità selezionata. Il calcolatore non converte unità miste, perché un totale composto da chilometri e miglia sarebbe fuorviante. Sono ammessi collegamenti aggiuntivi, che vengono ignorati se non appartengono alla sequenza richiesta. In questo modo Lei può riutilizzare una tabella completa modificando solo l’itinerario. Se la stessa coppia compare con valori diversi, la richiesta viene rifiutata anziché scegliere in modo invisibile tra dati in conflitto.
Comprenda come viene calcolata la distanza totale
Il calcolo percorre le tappe da sinistra a destra e considera una sola volta ogni coppia adiacente. Nella sequenza Deposito, Museo, Hotel e Deposito, i tratti necessari sono Deposito–Museo, Museo–Hotel e Hotel–Deposito. L’algoritmo cerca ogni coppia indipendentemente dalla direzione, aggiunge la distanza al totale progressivo e registra il tratto nell’output. Non riordina mai le tappe, non inserisce luoghi non indicati e non sostituisce un collegamento con un percorso indiretto. È un totale basato sulla sequenza, non un sistema di ottimizzazione, quindi l’ordine fornito resta vincolante. Due nomi consecutivi identici producono un tratto di distanza zero. Il risultato comprende distanza totale, unità, numero di tappe, numero di tratti e l’elenco ordinato utilizzato nella somma. Una regolazione stabile della precisione elimina residui irrilevanti in virgola mobile conservando i decimali utili. Poiché ogni valore incluso è visibile, Lei può verificare il totale direttamente rispetto alla tabella originale.
Risolva i dati incompleti prima che causino problemi
Prima di restituire qualsiasi totale, il calcolatore verifica che esista una distanza per ogni coppia consecutiva. Se manca Museo–Hotel, identifica entrambi i nomi e rifiuta la richiesta; non presume mai un valore zero e non restituisce somme parziali. Questo comportamento prudente è utile per spedizioni, itinerari, rimborsi chilometrici e pianificazione delle consegne, dove una distanza sottostimata può alterare tempi e budget. Aggiunga la coppia indicata e invii di nuovo i dati: gli stessi input deterministici producono sempre lo stesso risultato. Il controllo riguarda soltanto i tratti effettivamente utilizzati, quindi non conta se mancano valori tra luoghi estranei alla sequenza. Le distanze possono provenire da una matrice stradale, un foglio di pianificazione, segmenti misurati o un’altra fonte affidabile. Il calcolatore non consulta mappe e non conosce chiusure, pedaggi o limitazioni dei veicoli. Verifichi separatamente l’attualità della fonte quando il risultato sostiene decisioni operative reali.
Casi d'uso
Controllare un giro di consegne
Sommi i tratti noti tra deposito e clienti nell’ordine operativo e individui collegamenti assenti prima della partenza.
Totalizzare un itinerario
Calcoli la lunghezza di una sequenza prevista di attrazioni, hotel e nodi di trasporto usando una tabella preparata.
Verificare i conteggi chilometrici
Ottenga i tratti esatti inclusi per confrontare un rimborso o una stima con le distanze originali.
Domande frequenti
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. La versione per browser può essere eseguita localmente senza chiamate di rete.
Il calcolatore trova il percorso più breve?
No. Conserva l’ordine di visita fornito da Lei e somma i tratti consecutivi della sequenza.
Le distanze tra coppie sono direzionali?
No. Una distanza da A a B viene usata anche da B ad A. I duplicati con valori contrastanti vengono rifiutati.
Che cosa accade se manca un tratto?
La richiesta fallisce con un errore di input non valido che indica le due tappe consecutive prive di distanza.
Posso mescolare chilometri e miglia?
No. Tutte le distanze devono già usare l’unità selezionata. Il risultato mostra l’unità, ma non converte i singoli valori.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/travel/route-stop-sequence-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"stops":["Depot","Museum","Hotel","Depot"],"distances":[{"from":"Depot","to":"Museum","distance":4.8},{"from":"Museum","to":"Hotel","distance":3.25},{"from":"Hotel","to":"Depot","distance":6.1}]}'const res = await fetch("https://api.kit.forhosting.com/travel/route-stop-sequence-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"stops": [
"Depot",
"Museum",
"Hotel",
"Depot"
],
"distances": [
{
"from": "Depot",
"to": "Museum",
"distance": 4.8
},
{
"from": "Museum",
"to": "Hotel",
"distance": 3.25
},
{
"from": "Hotel",
"to": "Depot",
"distance": 6.1
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/route-stop-sequence-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"stops": [
"Depot",
"Museum",
"Hotel",
"Depot"
],
"distances": [
{
"from": "Depot",
"to": "Museum",
"distance": 4.8
},
{
"from": "Museum",
"to": "Hotel",
"distance": 3.25
},
{
"from": "Hotel",
"to": "Depot",
"distance": 6.1
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/route-stop-sequence-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"stops":["Depot","Museum","Hotel","Depot"],"distances":[{"from":"Depot","to":"Museum","distance":4.8},{"from":"Museum","to":"Hotel","distance":3.25},{"from":"Hotel","to":"Depot","distance":6.1}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"stops":["Depot","Museum","Hotel","Depot"],"distances":[{"from":"Depot","to":"Museum","distance":4.8},{"from":"Museum","to":"Hotel","distance":3.25},{"from":"Hotel","to":"Depot","distance":6.1}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/route-stop-sequence-distance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"stops": [
"Depot",
"Museum",
"Hotel",
"Depot"
],
"distances": [
{
"from": "Depot",
"to": "Museum",
"distance": 4.8
},
{
"from": "Museum",
"to": "Hotel",
"distance": 3.25
},
{
"from": "Hotel",
"to": "Depot",
"distance": 6.1
}
]
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.route_stop_sequence_distance",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_stops | 500 |
max_distances | 10000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |