Interpolación de círculo máximo: lat/lon intermedios entre dos puntos
A mitad del círculo máximo entre (40,7128; -74,006) y (51,5074; -0,1278) está (52,3684395875; -41,2903073562), más al norte que ambos extremos. Elija cualquier fracción de 0 a 1 para situar un punto en la ruta y ver su distancia desde el origen. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Lat 1
- 40,7128
- Lon 1
- -74,006
- Lat 2
- 51,5074
- Lon 2
- -0,1278
- Fracción
- 0,5
- Radio terrestre m
- 6 371 000
- Distancia angular grados
- 50,0942115601
- Distancia total m
- 5 570 222,17974
- Distancia desde el origen m
- 2 785 111,08987
La interpolación de círculo máximo responde a una pregunta sencilla de navegación: dados dos extremos fijos de latitud y longitud y una fracción entre cero y uno, ¿dónde está el punto intermedio situado a esa fracción del arco esférico más corto que los une? Mezclar linealmente latitud y longitud por separado es incorrecto, porque los meridianos convergen y las longitudes dan la vuelta; la construcción correcta trata la Tierra como una esfera, convierte cada extremo en un vector unitario y aplica interpolación lineal esférica (slerp), de modo que cada muestra intermedia queda sobre el único círculo máximo que pasa por ambos puntos. La fracción cero devuelve el origen, la fracción uno devuelve el destino y un medio devuelve el punto medio geodésico.
Cómo se calculan los puntos intermedios del círculo máximo
Convierta ambos extremos de grados decimales a radianes y forme los vectores unitarios n1 y n2 sobre la esfera. El ángulo central δ entre ellos se obtiene de la ley esférica de los cosenos: cos δ es igual a sin φ1 sin φ2 más cos φ1 cos φ2 cos(λ2 − λ1), con un recorte al rango de menos uno a más uno antes del arcocoseno para que el ruido de punto flotante nunca salga del dominio.
Cuando sin δ es prácticamente cero y los puntos coinciden, toda fracción devuelve la coordenada de origen. En caso contrario se calculan los pesos clásicos del slerp: A igual a sin de uno menos f por δ sobre sin δ, y B igual a sin de f por δ sobre sin δ.
El vector unitario intermedio es A por n1 más B por n2; la latitud es la arcotangente de z sobre la hipotenusa horizontal, y la longitud es la arcotangente de dos argumentos de y sobre x, plegada después al intervalo semiabierto alrededor del antimeridiano.
Dónde aparece la interpolación de círculo máximo en el trabajo real
La formación aérea y marítima plantea constantemente problemas de posiciones intermedias a lo largo de derrotas de círculo máximo, y los estudiantes necesitan un oráculo fiable que devuelva lat/lon en la fracción f sin compás de puntas. Los equipos de GIS y logística densifican tramos largos de vuelo o navegación en muestras uniformemente espaciadas para mapas de calor, estimaciones de combustible y corredores de geovallas antes de adoptar bibliotecas completas de elipsoide.
La planificación de búsqueda y rescate, las guías de senderismo y los cursos de orientación colocan puntos de control por fracción a lo largo de un arco planificado entre dos posiciones conocidas. Los motores de juegos y simulación animan entidades a lo largo de rutas esféricas con la misma fórmula cerrada, de modo que cliente y servidor se mantienen alineados sin incluir un pesado paquete geodésico.
Los cartógrafos que construyen arcos animados en mapas web muestrean puntos intermedios a fracciones regulares para dibujar polilíneas geodésicas suaves que no atraviesen la Tierra en una proyección plana. Si más adelante necesita el problema directo del destino a partir de rumbo y distancia, la navegación por loxodromia, las coordenadas del antípoda o las geodésicas Vincenty completas sobre el elipsoide WGS84, trátelas como intenciones de búsqueda y landings independientes, en lugar de sobrecargar esta página de interpolación de círculo máximo.
Qué puede hacer con ella
Formación en navegación y posiciones intermedias en ruta
Calcule la lat/lon intermedia en la fracción f a lo largo de un tramo de círculo máximo, para que instructores y correctores automáticos compartan una única verdad de referencia en los ejercicios en pleno océano y en pleno vuelo.
Densificación de rutas aéreas y marítimas
Muestree waypoints uniformemente espaciados entre origen y destino para mapas, modelos de combustible y geovallas de corredor sin una pila completa de elipsoide.
Preguntas frecuentes
¿Qué fórmula usa esta interpolación de círculo máximo?
Interpolación lineal esférica (slerp): ángulo central δ a partir de la ley esférica de los cosenos, pesos A = sin((1−f)δ)/sin δ y B = sin(fδ)/sin δ, vector unitario intermedio A·n1 + B·n2, y después φ y λ mediante atan2.
¿Qué ocurre si la fracción está fuera del rango de 0 a 1?
La fracción debe estar en el rango cerrado [0, 1]. Los valores fuera de ese rango no se envuelven ni se recortan.
¿Es correcto promediar linealmente latitud y longitud?
No. Promediar latitudes y longitudes por separado ignora la geometría esférica y el salto de la longitud. Esta herramienta interpola sobre la esfera unidad, de modo que cada muestra queda sobre el arco del círculo máximo.
¿Y si los extremos son antipodales?
Cuando los dos puntos son opuestos (o casi opuestos) en la esfera, infinitos círculos máximos los unen.
¿Cuánto cuesta?
La herramienta del navegador es gratuita y se ejecuta localmente.
Herramientas relacionadas
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/geodesic-interpolate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"lat1":40.7128,"lon1":-74.006,"lat2":51.5074,"lon2":-0.1278,"fraction":0.5}'const res = await fetch("https://api.kit.forhosting.com/geo/geodesic-interpolate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"lat1": 40.7128,
"lon1": -74.006,
"lat2": 51.5074,
"lon2": -0.1278,
"fraction": 0.5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/geodesic-interpolate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"lat1": 40.7128,
"lon1": -74.006,
"lat2": 51.5074,
"lon2": -0.1278,
"fraction": 0.5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/geodesic-interpolate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"lat1":40.7128,"lon1":-74.006,"lat2":51.5074,"lon2":-0.1278,"fraction":0.5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"lat1":40.7128,"lon1":-74.006,"lat2":51.5074,"lon2":-0.1278,"fraction":0.5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/geodesic-interpolate", 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
{
"lat1": 40.7128,
"lon1": -74.006,
"lat2": 51.5074,
"lon2": -0.1278,
"fraction": 0.5
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.geodesic_interpolate",
"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. |
Notas técnicas
Los valores fuera del intervalo unidad cerrado se rechazan con un error invalid_input claro, en lugar de envolver o inventar un punto más allá del segmento.
Cómo se calculan los puntos intermedios del círculo máximo
Cuando los puntos son antipodales, sin δ también es cero, pero el plano del círculo máximo no es único, así que la solicitud falla con invalid_input en lugar de elegir en silencio una trayectoria arbitraria. Todo el proceso es aritmética determinista de punto flotante: sin semillas aleatorias, sin marcas de tiempo, sin llamadas de red y sin deriva de modelo, de modo que entradas idénticas producen siempre un JSON idéntico, apto para pruebas automatizadas y claves de respuestas.
Qué se envía y qué se recibe
Las latitudes deben estar en el intervalo cerrado de menos noventa a más noventa grados, con el norte positivo. Las longitudes deben estar en el intervalo cerrado de menos ciento ochenta a más ciento ochenta grados, con el este positivo. Las comprobaciones clásicas incluyen Nueva York a Londres con fracción un medio para una muestra en medio del Atlántico, puntos de cuarto de ecuador y las fracciones cero o uno que devuelven los extremos exactos. Envíe cinco números finitos obligatorios en los campos lat1, lon1, lat2, lon2 y fraction. La fracción debe estar en el intervalo cerrado de cero a uno inclusive; cualquier valor estrictamente fuera de ese rango falla con invalid_input y no se cobra. También se aceptan los alias opcionales latitude1, longitude1, latitude2, longitude2 y f por comodidad. Puede pasar además earth_radius_m como radio esférico finito y positivo al informar longitudes de arco: la latitud y longitud intermedias en la esfera unidad no dependen del radio, pero total_distance_m y distance_from_start_m sí escalan con él; el valor predeterminado es el radio medio convencional de la Tierra, seis millones trescientos setenta y un mil metros. Si la operación tiene éxito, la respuesta devuelve los extremos y la fracción depurados, la separación angular de los extremos en grados, la longitud total del arco y la distancia desde el origen en metros, un objeto intermediate con latitude y longitude, los campos planos intermediate_latitude e intermediate_longitude para clientes sencillos, la etiqueta de método great_circle_slerp y una cadena de fórmula compacta para documentación. El precio de las llamadas API con éxito es la base publicada de $0.002 por elemento; los fallos de validación no consumen saldo prepagado.
Dónde aparece la interpolación de círculo máximo en el trabajo real
Como esta capacidad es un motor de parse puro, el precio de la API es la base publicada de $0.002 por elemento con éxito y la validación fallida no consume saldo.
Casos de integración
Arcos geodésicos animados y simulaciones
Anime mapas y entidades de juego a lo largo de trayectorias esféricas avanzando la fracción de 0 a 1 con resultados idénticos en navegador y API.