Distancia de ruta con desvío y penalización por punto intermedio
Una ruta con desvío viaja deliberadamente desde un origen hasta un destino pasando por un punto intermedio.
Ejecutar — gratis
Esta calculadora mide ambos tramos de círculo máximo, los suma para obtener la distancia completa y compara el resultado con la distancia directa entre los extremos. Así muestra el coste del desvío como distancia absoluta y como porcentaje. Resulta útil para planificación de rutas, estimaciones aéreas y marítimas, logística y cualquier análisis que necesite una referencia geométrica reproducible sin mapas de carreteras ni datos de tráfico en tiempo real.
Qué mide el cálculo de la ruta con desvío
La ruta consta de dos segmentos conectados: del origen al punto intermedio y de este al destino. La calculadora evalúa cada segmento como el arco más corto sobre una Tierra esférica y suma ambos para obtener la distancia total. También calcula por separado el arco directo entre origen y destino. Al restar la distancia directa del total aparece la penalización del desvío; al dividir esa diferencia por la distancia directa se obtiene el sobrecoste porcentual. Cada valor responde a una pregunta distinta: el total indica cuánto mide la ruta geométrica prevista, la penalización cuantifica la distancia añadida y el porcentaje permite comparar recorridos de escalas diferentes. Los dos tramos se muestran por separado para revelar si el punto intermedio divide el viaje de manera equilibrada. El método usa coordenadas, no redes viarias o aéreas, por lo que no incluye calles, espacio aéreo restringido, corrientes, relieve, horarios ni tráfico. Úselo como referencia coherente para comparar y filtrar opciones, no como presupuesto de navegación paso a paso.
Cómo introducir las coordenadas e interpretar el resultado
Indique latitud y longitud en grados decimales para el origen, el único punto intermedio y el destino. La latitud debe estar entre -90 y 90, y la longitud entre -180 y 180. Respete el orden: la latitud expresa la posición norte-sur y la longitud la posición este-oeste. Si las intercambia, puede obtener un lugar válido pero equivocado. Elija metros, kilómetros, millas terrestres o millas náuticas; la unidad seleccionada se aplica a todas las distancias. También puede fijar los decimales mostrados sin alterar el cálculo interno. La esfera predeterminada usa el radio terrestre medio IUGG de 6,371,008.8 metros, aunque puede proporcionar otro radio positivo. La penalización nunca debe ser negativa, pues el arco directo es el trayecto esférico más corto; cualquier ruido numérico se corrige antes de responder. Si origen y destino coinciden, no existe un denominador útil para el porcentaje. Cuando el punto intermedio genera recorrido, se omite `detour_percent`, pero se conservan los tramos, el total y la penalización absolutos.
Cómo aplicar el resultado a la planificación
Utilice el resultado cuando un viaje deba pasar por un centro logístico, control, lugar de repostaje, puerto de transferencia o inspección. En logística puede comparar centros candidatos por su penalización antes de consultar un servicio de rutas por carretera más costoso. En aviación o navegación marítima, las millas náuticas permiten evaluar el efecto geométrico de una escala, recordando que las rutas autorizadas y el clima pueden añadir más distancia. También puede calcular el sobrecoste porcentual de muchas propuestas y marcar las que superen una política, por ejemplo un diez por ciento. La respuesta determinista sirve para pruebas de regresión, hojas de cálculo y auditorías: las mismas entradas producen los mismos campos. Una solicitud API cuesta $0.002; la versión del navegador sirve para comprobaciones interactivas. No convierta por sí sola esta distancia en tiempo o combustible, porque también dependen de velocidad, vehículo, viento, congestión, pendiente y paradas. Use los tramos en su modelo operativo o emplee la penalización como filtro transparente antes de solicitar indicaciones que conozcan la red real.
Qué puede hacer con ella
Comparar centros de distribución
Mida cuánta distancia adicional introduce cada almacén o centro de transferencia candidato entre un origen y un destino.
Evaluar un control obligatorio
Cuantifique el desvío absoluto y porcentual causado por una inspección, un paso fronterizo o una parada de servicio.
Filtrar puntos aéreos o marítimos
Calcule los dos tramos en millas náuticas antes de aplicar restricciones de clima, espacio aéreo, corrientes o navegación.
Preguntas frecuentes
¿Qué es una ruta con desvío?
Es un recorrido de dos tramos que va del origen al destino pasando por un único punto intermedio.
¿Cómo se calcula la penalización del desvío?
Se resta la distancia directa de círculo máximo de la suma de los tramos origen-punto intermedio y punto intermedio-destino.
¿Calcula distancia por carretera o de un plan de vuelo?
No. Calcula arcos de círculo máximo entre coordenadas; no incluye carreteras, rutas autorizadas, relieve ni tráfico.
¿Qué unidades de distancia admite?
Puede solicitar metros (m), kilómetros (km), millas terrestres (mi) o millas náuticas (nmi).
¿Qué ocurre si el origen y el destino coinciden?
La distancia directa es cero. Se devuelven tramos, total y penalización; el porcentaje solo aparece cuando tiene un denominador válido.
¿Cuánto cuesta una solicitud API?
Cada solicitud API correcta cuesta $0.002. Las entradas no válidas se rechazan antes del cálculo.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/geo/dogleg-distance \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"start_lat":40.7128,"start_lon":-74.006,"waypoint_lat":41.8781,"waypoint_lon":-87.6298,"end_lat":34.0522,"end_lon":-118.2437}'const res = await fetch("https://api.kit.forhosting.com/geo/dogleg-distance", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"start_lat": 40.7128,
"start_lon": -74.006,
"waypoint_lat": 41.8781,
"waypoint_lon": -87.6298,
"end_lat": 34.0522,
"end_lon": -118.2437
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/dogleg-distance",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"start_lat": 40.7128,
"start_lon": -74.006,
"waypoint_lat": 41.8781,
"waypoint_lon": -87.6298,
"end_lat": 34.0522,
"end_lon": -118.2437
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/dogleg-distance", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"start_lat":40.7128,"start_lon":-74.006,"waypoint_lat":41.8781,"waypoint_lon":-87.6298,"end_lat":34.0522,"end_lon":-118.2437}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"start_lat":40.7128,"start_lon":-74.006,"waypoint_lat":41.8781,"waypoint_lon":-87.6298,"end_lat":34.0522,"end_lon":-118.2437}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/dogleg-distance", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"start_lat": 40.7128,
"start_lon": -74.006,
"waypoint_lat": 41.8781,
"waypoint_lon": -87.6298,
"end_lat": 34.0522,
"end_lon": -118.2437
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.dogleg_distance",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |