USNG a latitud y longitud
Una referencia de la Cuadrícula Nacional de Estados Unidos identifica un área, no un punto de precisión infinita.
Ejecutar — gratis
Este conversor lee referencias USNG compactas o espaciadas, valida la zona UTM, la banda de latitud, el cuadrado de cien kilómetros y la precisión numérica, y devuelve una latitud y longitud WGS84 aproximadas en el centro de la celda. También informa del tamaño, la precisión, las coordenadas UTM, la zona, la banda y el cuadrado. Todo se calcula localmente, sin mapas, red, aleatoriedad ni dependencia de la hora.
Cómo identifica una celda una referencia USNG
Una referencia USNG comienza con una zona UTM numerada del 1 al 60 y una letra de banda entre C y X; se omiten I y O para evitar confusiones. Otras dos letras señalan un cuadrado de cien kilómetros. Las secuencias permitidas cambian según la zona: las columnas se repiten cada tres zonas y las filas se desplazan entre zonas pares e impares. Los caracteres restantes son dígitos repartidos por igual entre este y norte. Un dígito por eje representa una celda de diez kilómetros; cinco, una celda de un metro; y ningún dígito, todo el cuadrado de cien kilómetros. El conversor elimina espacios, pasa las letras a mayúsculas y valida cada parte. Después amplía letras y dígitos hasta el borde sudoeste y suma media celda a ambos ejes. Así obtiene el centro y no una esquina. Como la referencia sigue describiendo un área, debe interpretar el resultado como punto representativo, sobre todo con poca precisión. La respuesta conserva cell_size_m y declara point como center para impedir que otro sistema confunda el resultado con una medición topográfica exacta.
De metros UTM a latitud y longitud WGS84
Tras obtener el este y el norte del centro, el cálculo resuelve la repetición de filas mediante el norte mínimo de la banda indicada. Este paso es imprescindible porque las letras de fila USNG se repiten cada dos millones de metros. Las bandas meridionales aplican el falso norte UTM; las septentrionales parten normalmente del ecuador. A continuación se invierte la coordenada UTM con el elipsoide WGS84, su aplanamiento, el factor de escala y las series habituales de arco meridiano y latitud de pie. La zona determina el meridiano central. Al terminar, se comprueba que la latitud pertenezca a la banda declarada; una combinación incoherente produce un error en vez de un punto engañoso. El JSON incluye latitude, longitude, los alias lat y lon, la referencia normalizada, zona, banda, cuadrado, precisión, tamaño de celda, coordenadas UTM centrales y datum. Los decimales se redondean de forma estable a ocho posiciones. El algoritmo usa una cantidad fija de operaciones, no consulta geocodificadores y genera el mismo resultado en navegador y API.
Cómo elegir la precisión y usar el centro correctamente
Considere el número de dígitos USNG como una declaración de precisión, no como simple formato. Cinco dígitos por eje designan una celda nominal de un metro, pero no demuestran que la observación original tenga esa exactitud. Un dígito por eje cubre deliberadamente diez kilómetros, por lo que el centro puede quedar a varios kilómetros del elemento real. Conserve cell_size_m al importar partes, notas de campo, activos o archivos históricos. Un mapa puede colocar el marcador en el centro y utilizar el tamaño para dibujar la incertidumbre o escoger el nivel de zoom. Se aceptan formatos compactos y con espacios, pero se rechazan letras ausentes, I u O, cantidades impares de dígitos, zonas fuera de 1 a 60, columnas incompatibles y cuadrados ajenos a la banda. Para automatización, cada elemento correcto cuesta $0.002; el navegador sirve para consultas individuales. Si necesita el polígono de la celda, conserve el centro UTM y su tamaño o use una conversión de límites. Esta función no devuelve dirección, elevación, jurisdicción ni precisión topográfica certificada.
Qué puede hacer con ella
Situar partes de campo en un mapa
Convierta referencias USNG de formularios o comunicaciones en marcadores WGS84 centrados y conserve la precisión de cada celda.
Importar registros de cuadrícula antiguos
Normalice valores USNG compactos o espaciados como coordenadas decimales deterministas para tablas GIS, auditorías y migraciones.
Validar software cartográfico
Use centros, valores UTM y tamaños de celda estables como pruebas de regresión para aplicaciones que admiten entradas USNG.
Preguntas frecuentes
¿Qué punto de la celda USNG se devuelve?
El centro. Se amplía la coordenada sudoeste y se suma la mitad del tamaño de celda a ambos ejes UTM antes de convertir a WGS84.
¿Cómo afecta la precisión numérica al resultado?
De cero a cinco dígitos por eje representan celdas de cien kilómetros a un metro. Una celda mayor implica más incertidumbre.
¿Puede contener espacios o minúsculas?
Sí. Se eliminan los espacios habituales y las letras pasan a mayúsculas antes de validar la referencia.
¿Qué datum utiliza el resultado?
La latitud y longitud usan WGS84. También se devuelven UTM, zona, banda, cuadrado y tamaño de celda.
¿Cuánto cuesta la conversión?
La herramienta del navegador es gratuita. Cada elemento correcto de la API usa el precio base publicado de $0.002.
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/usng-to-latlon \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"usng":"18S UJ 23483 06479"}'const res = await fetch("https://api.kit.forhosting.com/geo/usng-to-latlon", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"usng": "18S UJ 23483 06479"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/usng-to-latlon",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"usng": "18S UJ 23483 06479"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/usng-to-latlon", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"usng":"18S UJ 23483 06479"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"usng":"18S UJ 23483 06479"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/usng-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
{
"usng": "18S UJ 23483 06479"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.usng_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. |