Distance totale multi-étapes
New York–Philadelphie 120 km, Washington 140 km et Richmond 110 km font 370 km, avec des cumuls de 120, 260 et 370 km. Saisissez les distances de vos étapes pour obtenir le total de l'itinéraire et le kilométrage à chaque arrêt. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Origine
- New York
- Total
- 370 km
- Total (km)
- 370
- Total (mi)
- 229,907341
- Nombre de tronçons
- 3
Planifier un voyage multi-villes, une tournée de livraisons ou un itinéraire multi-hôtels commence souvent par une liste de distances de trajet auxquelles vous faites déjà confiance — application cartographique, guide imprimé ou feuille de dispatch. Ce qu'il vous manque encore, c'est un total net et une lecture de kilométrage cumulé à chaque arrêt pour que les ravitaillements, les pauses et le partage des coûts restent fiables. Ce calculateur de distance totale multi-étapes accepte une liste ordonnée de distances de trajet, éventuellement étiquetées avec des noms de destination, les additionne en un total d'itinéraire et construit un tableau cumulatif façon odomètre de l'origine jusqu'au dernier point de passage.
Fonctionnement de la distance d'itinéraire multi-étapes et du kilométrage cumulé
Un itinéraire multi-étapes est ici un parcours ouvert et ordonné d'un ou plusieurs trajets. Chaque trajet est une distance non négative que vous avez déjà mesurée ou estimée entre arrêts consécutifs — ville à ville, dépôt à client, hôtel à hôtel. La capacité ne cherche pas de coordonnées et n'invente pas de chemins routiers ; elle traite vos distances comme source de vérité et se concentre sur la comptabilité que les planificateurs réutilisent vraiment.
Avec n trajets il y a n plus un arrêts : l'arrêt zéro est l'origine avec kilométrage cumulé zéro, et après chaque trajet achevé la somme courante avance de la distance de ce trajet. La distance totale de l'itinéraire est simplement la somme de tous les trajets. Cette identité est la même logique d'odomètre que les conducteurs utilisent en notant les bornes dans un carnet de route : partir de zéro, ajouter chaque segment, et la lecture au dernier arrêt égale le total du voyage.
Les libellés optionnels de chaque trajet nomment la destination de ce segment ; une chaîne origin optionnelle nomme le premier arrêt pour que le tableau cumulatif soit lisible dans l'interface sans second jointure. Les trajets de longueur nulle sont autorisés (arrêt sur le même site ou espace réservé), mais les distances négatives sont rejetées car le kilométrage ne peut pas reculer dans ce modèle.
Où les totaux multi-étapes s'intègrent aux produits et pipelines
Utilisez ce point de terminaison dès que les distances de trajet existent déjà et que vous avez besoin d'un total transparent plus un kilométrage cumulé par arrêt : planificateurs de road trip qui collent des longueurs ville à ville depuis une exportation cartographique, ébauches de livraison multi-arrêts avant modules carburant et coût, blogs de voyage qui publient un tableau d'itinéraire avec distance courante, tableaux de bord de flotte qui enrichissent une liste d'arrêts d'une progression façon odomètre, et exercices de logistique en classe qui enseignent les sommes de préfixe sur de vraies données de voyage.
Associez-le aux outils de volume de carburant ou de coût de voyage pour les estimations de dépense ; à la vitesse moyenne ou à l'ETA pour le temps. Ne l'utilisez pas pour une distance orthodromique à partir de latitude et longitude — c'est une autre intention de recherche servie par des outils géographiques de polyligne qui mesurent des arcs haversine. Ici l'utilisateur possède déjà les distances et ne veut que les totaux d'itinéraire et le kilométrage cumulé.
Une validation échouée ne consomme pas le solde. Gardez des listes modestes pour l'UX interactive, figez les totaux arrondis dans les tests, et vous obtenez un petit bloc auditable pour chaque canal que KIT dessert déjà.
Cas d’usage
Tableaux d'itinéraire de road trip
Collez les distances de trajet ville à ville, étiquetez chaque arrêt et publiez la distance totale plus le kilométrage cumulé à chaque nuit d'hôtel.
Progression des livraisons multi-arrêts
Additionnez les longueurs dépôt–arrêt et arrêt–arrêt et montrez aux conducteurs combien de miles restent après chaque trajet achevé.
Étapes préalables coût et carburant du voyage
Calculez une seule distance totale à partir de trajets connus avant d'appeler des calculateurs de volume de carburant, de coût carburant ou de budget de voyage.
Questions fréquentes
Comment la distance totale multi-étapes est-elle calculée ?
Chaque distance de trajet est validée comme nombre fini non négatif, puis additionnée. Le kilométrage cumulé à l'arrêt k est la somme des k premiers trajets ; l'origine part de zéro.
Ai-je besoin de coordonnées GPS ou d'adresses ?
Non. Fournissez les distances de trajet que vous avez déjà (cartes, manifests ou estimations). Cet outil ne géocode pas et ne mesure pas d'arcs orthodromiques à partir de lat/lon.
Quel est le nombre minimum de trajets ?
Au moins un trajet est requis (deux arrêts : origine et destination).
Puis-je nommer chaque arrêt ?
Oui. Chaque étape peut porter le nom du lieu où elle se termine, et vous pouvez aussi nommer le point de départ. Les noms servent seulement à étiqueter le tableau des cumuls ; ils ne changent jamais les distances ni le total.
Une étape peut-elle valoir zéro ?
Oui. Une étape de longueur nulle est acceptée, par exemple pour un arrêt sur le même site ou une ligne réservée. Une distance négative est en revanche refusée, car le kilométrage ne peut pas reculer.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/travel/multi-stop-route-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"legs":[{"distance":120,"label":"Philadelphia"},{"distance":140,"label":"Washington DC"},{"distance":110,"label":"Richmond"}]}'const res = await fetch("https://api.kit.forhosting.com/travel/multi-stop-route-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"legs": [
{
"distance": 120,
"label": "Philadelphia"
},
{
"distance": 140,
"label": "Washington DC"
},
{
"distance": 110,
"label": "Richmond"
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/travel/multi-stop-route-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"legs": [
{
"distance": 120,
"label": "Philadelphia"
},
{
"distance": 140,
"label": "Washington DC"
},
{
"distance": 110,
"label": "Richmond"
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/travel/multi-stop-route-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"legs":[{"distance":120,"label":"Philadelphia"},{"distance":140,"label":"Washington DC"},{"distance":110,"label":"Richmond"}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"legs":[{"distance":120,"label":"Philadelphia"},{"distance":140,"label":"Washington DC"},{"distance":110,"label":"Richmond"}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/travel/multi-stop-route-distance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"legs": [
{
"distance": 120,
"label": "Philadelphia"
},
{
"distance": 140,
"label": "Washington DC"
},
{
"distance": 110,
"label": "Richmond"
}
]
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "travel.multi_stop_route_distance",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Choisissez kilomètres ou miles statutaires ; chaque réponse réussie renvoie aussi total_km et total_mi.
Fonctionnement de la distance d'itinéraire multi-étapes et du kilométrage cumulé
Lorsque l'unité est le kilomètre, total et total_km coïncident et total_mi est dérivé avec le facteur international de 1.609344 kilomètres par mile statutaire ; lorsque l'unité est le mile, la conversion duale s'effectue en sens inverse.
Contrat d'entrée, unités, alias et erreurs de validation
Chaque entrée peut être un objet avec un champ distance obligatoire et un label optionnel, ou un nombre fini simple traité comme distance sans libellé. Intervertir unit sans convertir les nombres est une erreur client fréquente — si votre feuille est en miles, envoyez unit mi plutôt que de laisser la valeur par défaut. Envoyez en POST un corps JSON avec un tableau legs obligatoire d'au moins une entrée. Les valeurs de distance doivent être finies et non négatives ; chaînes vides, NaN, Infinity et champs distance manquants échouent avec invalid_input en nommant la ligne. Le tableau accepte les alias de transport segments, stages et distances pour que clients mobiles et tableurs mappent les colonnes sans restructuration. Le paramètre unit optionnel choisit l'unité d'entrée et du total principal : km (défaut) ou mi ; les alias incluent distance_unit. Le champ origin optionnel (alias start, start_label, origin_label) n'étiquette que l'arrêt zéro et ne change jamais le calcul. Une charge utile réussie renvoie total et unit ; toujours total_km et total_mi ; leg_count et stop_count ; legs comme liste ordonnée d'index de trajet, distance, kilométrage cumulé après ce trajet et label optionnel ; cumulative_at_stops avec index d'arrêt, kilométrage cumulé et label optionnel de l'origine au dernier point ; plus les chaînes formula et method pour l'audit et la documentation. Des legs vides, plus de cinq cents entrées ou une unité inconnue échouent à la validation avant toute somme et ne sont pas facturés. Le tarif est un forfait $0.002 par élément réussi sur l'API ; le chemin tier-A dans le navigateur est gratuit pour les contrôles interactifs.
Où les totaux multi-étapes s'intègrent aux produits et pipelines
Appelez-le depuis un Worker, un job backend ou un script : passez legs, lisez total et cumulative_at_stops, stockez éventuellement le détail des legs à côté de chaque ligne d'interface.
Questions techniques
Puis-je mélanger kilomètres et miles dans une même requête ?
Non. Toutes les distances de trajet doivent partager la même unité, choisie avec unit km ou mi. La réponse inclut toujours total_km et total_mi pour l'affichage.
Combien coûte l'API ?
Chaque requête réussie est facturée à $0.002 sur votre solde prépayé ForHosting KIT. Une validation échouée n'est pas débitée. L'outil navigateur est gratuit.