Vector unitario a latitud y longitud
Convierta una dirección cartesiana sobre la esfera unitaria en coordenadas geográficas comprensibles para las personas y el software cartográfico.
Ejecutar — gratis
Proporcione los componentes x, y y z de un vector unitario dextrógiro y este conversor devolverá la latitud y la longitud en grados con la precisión de visualización que usted elija. El sistema comprueba que el vector tenga realmente longitud unitaria, solo admite una desviación mínima de coma flotante y aplica una convención de ejes documentada. El cálculo es determinista, no necesita red ni una base de datos de geocodificación y cuesta $0.002 por cada solicitud correcta a la API.
Comprenda la convención de ejes antes de convertir
Un punto de una esfera unitaria puede almacenarse mediante tres componentes cartesianos en lugar de dos ángulos. Esta capacidad emplea la convención geocéntrica dextrógira habitual: x positivo apunta a latitud cero y longitud cero, y positivo apunta a latitud cero y longitud noventa grados este, y z positivo apunta al polo norte. Por tanto, el vector (1, 0, 0) se convierte en cero grados de latitud y cero grados de longitud, mientras que (0, 1, 0) se convierte en cero grados de latitud y noventa grados este. Un componente y negativo sitúa el resultado al oeste del meridiano de Greenwich, y un componente z negativo lo sitúa en el hemisferio sur. La longitud devuelta sigue el intervalo convencional entre menos ciento ochenta y más ciento ochenta grados. En cualquiera de los polos, la longitud es matemáticamente indeterminada porque allí confluyen todos los meridianos; aun así, el cálculo devuelve el valor estable que produce atan2 a partir de los componentes x e y proporcionados. Antes de interpretar el resultado como coordenada geográfica, compruebe que los vectores procedentes de software gráfico, astronómico, robótico o de simulación utilizan este mismo orden de ejes. Algunos sistemas intercambian y con z o invierten un eje; esas convenciones describen otra orientación aunque los tres números sigan teniendo longitud unitaria. Esta herramienta convierte coordenadas, pero no deduce ni corrige un sistema de coordenadas de origen que no esté documentado.
Cómo funcionan la validación y la conversión esférica
El conversor comprueba primero que x, y y z sean números JSON finitos comprendidos entre menos uno y más uno. Después calcula su magnitud euclídea mediante la operación de hipotenusa de tres componentes. Un vector unitario auténtico tiene magnitud uno, aunque los procesos reales suelen introducir una desviación de coma flotante inofensiva tras una multiplicación matricial o una serialización. Por ese motivo, se aceptan magnitudes que difieran de uno en menos de una millonésima y se normalizan antes de calcular los ángulos. Las desviaciones mayores se rechazan como entrada no válida, en vez de proyectar silenciosamente un vector arbitrario sobre la esfera. La latitud es el seno inverso de z normalizado. La longitud es atan2 de y normalizado y x normalizado, función que conserva el cuadrante correcto y atraviesa el antimeridiano sin reglas manuales de signo. Ambos ángulos se convierten de radianes a grados y se redondean con la precisión solicitada: diez decimales de forma predeterminada, o entre cero y quince si usted la especifica. El cero negativo se convierte en cero ordinario para mantener limpios los resultados JSON y las pruebas. La respuesta incluye campos descriptivos de latitud y longitud, los alias breves lat y lon, la precisión aplicada y una etiqueta de convención. No intervienen la red, el azar, el reloj, una consulta de datum ni una aproximación iterativa, de modo que una entrada idéntica produce una salida idéntica en el navegador y en la API.
Utilice el resultado con seguridad en mapas y procesos de datos
Los vectores unitarios resultan útiles porque evitan las discontinuidades del salto de longitud, permiten interpolar direcciones con suavidad y encajan de forma natural en motores tridimensionales. Sin embargo, las interfaces para personas, las exportaciones GIS, los registros y las etiquetas cartográficas suelen necesitar latitud y longitud. Este conversor sirve de enlace entre ambas representaciones. Puede transformar un rayo de cámara o una selección sobre un globo en una coordenada legible, decodificar posiciones normalizadas almacenadas en un conjunto de datos de simulación o crear casos de prueba claros para código de geometría esférica. Valide el significado de origen además de la magnitud: una normal de superficie normalizada y una posición geocéntrica pueden tener la misma forma numérica, pero representan conceptos distintos. Si el vector de origen tiene una longitud arbitraria, normalícelo deliberadamente en el sistema productor y registre esa decisión, en vez de pedir a este punto de acceso que oculte la discrepancia. La comprobación estricta de longitud unitaria pretende detectar pronto unidades erróneas, normalización ausente y registros dañados. Los resultados son únicamente direcciones angulares; no incluyen altitud, elevación del terreno, conversión de datum geodésico ni topónimos obtenidos por geocodificación inversa. Para trabajos por lotes, invoque la capacidad una vez por elemento y conserve suficientes decimales para el proceso posterior. Los cálculos interactivos pueden ejecutarse en el navegador, mientras que las solicitudes automatizadas emplean el mismo solucionador determinista por $0.002 cada solicitud correcta.
Qué puede hacer con ella
Etiquetar una selección en un globo 3D
Convierta una dirección normalizada seleccionada en un globo en latitud y longitud para una ayuda emergente, un panel de diagnóstico o un marcador exportado.
Decodificar coordenadas de simulación
Transforme posiciones sobre la esfera unitaria procedentes de datos científicos o técnicos en coordenadas angulares legibles con una convención de ejes documentada.
Crear casos de prueba de geometría esférica
Genere valores esperados estables de latitud y longitud para pruebas que almacenan direcciones como vectores cartesianos normalizados.
Preguntas frecuentes
¿Cuánto cuesta una conversión?
Cada solicitud correcta a la API cuesta $0.002. El mismo cálculo determinista puede ejecutarse en el navegador.
¿Qué fórmula se utiliza?
La latitud es asin(z) y la longitud es atan2(y, x), después de normalizar el vector aceptado para eliminar una desviación mínima de coma flotante.
¿El vector debe tener exactamente longitud unitaria?
Su magnitud debe estar a menos de una millonésima de uno. Así se admite la desviación normal de coma flotante y se rechazan vectores no normalizados.
¿Qué convención de coordenadas espera?
x positivo corresponde a latitud 0 y longitud 0, y positivo a latitud 0 y longitud 90 este, y z positivo al polo norte.
¿Qué longitud se devuelve en un polo?
La longitud no está definida en un polo exacto, pero la respuesta presenta el resultado estable de atan2 obtenido de los componentes x e y proporcionados.
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/unit-vector-to-latlon \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"x":1,"y":0,"z":0}'const res = await fetch("https://api.kit.forhosting.com/geo/unit-vector-to-latlon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"x": 1,
"y": 0,
"z": 0
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/unit-vector-to-latlon",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"x": 1,
"y": 0,
"z": 0
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/unit-vector-to-latlon", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"x":1,"y":0,"z":0}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"x":1,"y":0,"z":0}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/unit-vector-to-latlon", 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
{
"x": 1,
"y": 0,
"z": 0
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.unit_vector_to_latlon",
"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. |