Precisión y fuentes de datos — Archivos GPX de SendaOne
Esta página documenta los servicios upstream, la precisión de coordenadas, los datums verticales y las limitaciones conocidas de los archivos GPX generados por SendaOne. Está escrita para audiencia profesional (pilotos, operadores militares, coordinadores de búsqueda y rescate, agrimensores, navegantes marítimos) que deben decidir si un archivo descargado es apto para un escenario operativo concreto antes de confiar en él.
El tono es técnico. Sin marketing. Si alguna sección parece demasiado cautelosa para su caso de uso (un paseo dominical por la ciudad), probablemente lo sea — salte a Para qué SÍ es apto este archivo.
Datos derivados — lo que es medido y lo que NO
Tu archivo es un espejo fiel de la ruta de Google Maps: las coordenadas y el trazado son los mismos que ves en el mapa, no se recalculan ni se recortan. Pero algunos campos son DERIVADOS, no medidos, y te los marcamos con honestidad — porque tomarlos por medidas reales sería un falso positivo. Cero invención: lo que es derivado, te lo decimos.
- Los TIEMPOS son estimados. Una ruta de Google Maps
es un plan, no una actividad grabada. Los timestamps
(
<time>) se calculan a partir de una velocidad típica por modo de transporte, no de un reloj GPS. No los subas como un esfuerzo real a Strava ni similares. Detalle en §4 Síntesis de timestamps. - La ELEVACIÓN viene de un modelo, no de un sensor. Las alturas provienen de la Google Elevation API, que consulta un modelo digital del terreno (DEM) — es exactamente el mismo tipo de dato que Strava etiqueta como «elevación corregida». Es real, pero modelada, no leída de un altímetro barométrico. Detalle en §3 Fuente de elevación.
- La PENDIENTE (grade %) es calculada. Se deriva de esa elevación modelada y la distancia entre puntos. No es una medida de campo; hereda la incertidumbre del DEM.
1. Fuente de routing
Las rutas se calculan con la Google Maps Routes API v2,
endpoint routes.googleapis.com/directions/v2:computeRoutes,
con routingPreference=TRAFFIC_AWARE_OPTIMAL. Según la
documentación oficial de Google, es el mismo motor de routing que opera
la app móvil y web de Google Maps. SendaOne NO recalcula la ruta con un
motor distinto.
La calidad de la polyline se solicita en HIGH_QUALITY
(granularidad por paso). En zonas urbanas esto produce típicamente entre
50 y 100 puntos por kilómetro; en carretera abierta cae a 10–20 puntos
por kilómetro.
2. Precisión de coordenadas
- Las coordenadas se emiten con 7 decimales (~1.1 cm de precisión teórica sobre el elipsoide WGS84).
- La precisión efectiva es aproximadamente ±5 m horizontal: Google ajusta a la geometría de la calle, y esa geometría se recoge de una mezcla de datasets autoritativos, trazas GPS y fotografía aérea.
- Datum: WGS84 (el default de GPX 1.1; es el mismo datum que usa cualquier GPS de consumo del mercado).
- Las coordenadas NO están en BD-09 ni GCJ-02 (los datums ofuscados que usa Google dentro de China continental). Por diseño, SendaOne NO es apto para uso dentro de China continental.
3. Fuente de elevación
- Las elevaciones provienen de la Google Elevation API.
- Datum vertical: EGM96 (alturas ortométricas, referenciadas al nivel medio del mar).
- Para alturas elipsoidales (el datum que usa la aviación y la
agrimensura), sume el offset del geoide, que SendaOne incrusta en la
etiqueta
<geoidheight>de cada waypoint. - Precisión vertical efectiva: ±10 m. Mejor que SRTM en centros urbanos, peor que un altímetro barométrico calibrado.
4. Síntesis de timestamps
Cada <trkpt> del GPX lleva una etiqueta
<time> sintetizada a partir de la velocidad típica del
modo de transporte (ciclismo 18 km/h, caminata 5 km/h, auto 30 km/h,
transporte público 25 km/h). Esto NO es tiempo GPS grabado
— es tiempo reconstruido para que Strava, TrainingPeaks y Garmin Connect
acepten el archivo como Activity en lugar de rechazarlo como estático.
Formato: ISO 8601 UTC con milisegundos
(2026-05-24T19:53:18.234Z).
Dos modelos, a propósito. TCX, FIT, KML y GeoJSON usan un modelo distinto: reparten la duración real de la ruta (la que estimó el motor de routing) proporcionalmente a la distancia recorrida — coherente con su rol de ruta planificada: en esos cuatro formatos, fin menos inicio es exactamente la duración estimada del viaje. El GPX, en cambio, modela una actividad plausible a velocidad típica del modo, porque su caso de uso incluye subirlo a Strava como Activity. Es una divergencia deliberada, cada modelo al servicio de su caso de uso. En todos los formatos los tiempos son sintéticos y están declarados como tales.
Idioma de las etiquetas. Las etiquetas genéricas
dentro de los archivos (Start, End,
Stop 2/5) van en inglés neutro: los dispositivos GPS no
traducen el contenido del archivo, y el inglés es lo que todo el
ecosistema interpreta de forma consistente. Los nombres reales de tus
lugares (con tildes, CJK o cualquier alfabeto) se preservan siempre tal
cual.
5. Conformidad de esquema
- Cada archivo se valida contra el XSD oficial topografix GPX 1.1 antes de ser servido. Si la validación falla, el archivo NO se sirve (la petición devuelve 500). No existe ruta de corrupción silenciosa.
- El namespace
gpxtpx(Garmin TrackPointExtension v1) se declara en la raíz, lo que deja el archivo listo como Activity en Garmin Connect. - Un namespace propio
m2g(https://maps-to-gpx.dev/xmlns/v1) transporta la metadata de auditoría. La validación XSD estricta tolera namespaces foráneos bajoextensionsTypesegún la especificación GPX 1.1 §9.
6. Para qué NO está certificado este archivo
SendaOne se provee TAL CUAL para uso recreativo. Los siguientes escenarios están explícitamente fuera de alcance:
- Navegación primaria en contextos críticos para la seguridad: aviación, búsqueda y rescate marítimo (SAR), operaciones militares, rescate en expedición.
- Vuelo de drones / UAS (Litchi, DJI y similares): la exportación para drones es una conversión de conveniencia de una ruta terrestre, NO un plan de vuelo verificado. Eres el único responsable de revisar altitud, espacio aéreo, zonas de exclusión y cada waypoint, y de cumplir la regulación de drones de tu jurisdicción (FAA Part 107, EASA, ANAC Colombia y equivalentes). Las altitudes por defecto se acotan a 120 m AGL pero DEBEN confirmarse antes de volar. Nunca vueles una misión importada sin supervisión humana y revisión previa.
- Formatos de aviación (IGC), náutica (NMEA) y navegación binaria (FIT): se proveen solo para planificación recreativa, nunca para navegación primaria. Verifica siempre contra cartas oficiales, NOTAM y la regulación que te aplique antes de confiar en ellos.
- Rutas de navegación marina sobre agua abierta: Google Maps no calcula rutas de navegación marina. Sobre agua abierta suele devolver una línea recta o la ruta de un ferry que puede cruzar bajos o tierra. Usa el GPX de ruta como referencia de waypoints y verifica SIEMPRE con cartas náuticas oficiales antes de navegar.
- Toma de decisiones donde un error de coordenada >5 m sea operativamente significativo.
- Coordinación o routing de respuesta a emergencias.
- Agrimensura o catastro.
- Cualquier contexto que exija soberanía de datos. El servicio se aloja en Estados Unidos (Fly.io región Ashburn) detrás de Cloudflare (edge global). Las consultas de routing salen de la Unión Europea y son procesadas por la infraestructura de Google.
7. Para qué SÍ es apto este archivo
- Ciclismo, senderismo, running, motociclismo — planificación y compartición recreativa.
- Compartir rutas entre amigos, familia o miembros de un club.
- Backup a un Garmin Edge, Wahoo ELEMNT, COROS APEX, Suunto o dispositivo similar para una salida en bici o trote.
- Importar en Strava, Komoot, RideWithGPS, Gaia GPS, OsmAnd, Locus Map o cualquier plataforma que cumpla GPX 1.1 para registrar la actividad.
- Cabotaje costero y náutica recreativa (NO navegación primaria offshore).
8. Verificación
- Cada GPX descargado incluye un bloque JSON
<m2g:audit>con:generated_at_utc,server_version,server_commit_sha,polyline_sha256, conteos de muestras y un flagschema_validated. - Verifique de forma cruzada cualquier GPX descargado con el endpoint
público
POST /verify. Devuelve un reporte estructural y de integridad que incluye SHA-256 del archivo, validación de esquema, coincidencia de bounds declarados vs computados e integridad de la polyline. - El SHA del archivo descargado también se expone en la cabecera de
respuesta
X-M2G-File-SHA256en el momento de la descarga.
9. Advertencias y limitaciones conocidas
- La variación magnética (
<magvar>) es una aproximación, no el modelo WMM-2025 completo. Para aviación, consulte una fuente aprobada por la FAA o EASA. - La altura del geoide (
<geoidheight>) aproxima EGM96, no EGM2008. Para agrimensura, use NGS GEOID18 o equivalente. - El routing refleja los datos de Google en el momento de la petición. Las vías se cierran, las ciclorrutas se abren, se producen redirecciones — verifique siempre localmente antes de viajar.
- SendaOne NO integra incidentes de tráfico en tiempo real, alertas meteorológicas, cierres de vía ni alertas de incendio forestal.
- El D+/D− no es reproducible bit a bit entre herramientas.
El desnivel acumulado depende del DEM, del muestreo y del suavizado
que cada herramienta aplica: Strava, Garmin Connect y SendaOne
reportarán cifras distintas sobre el MISMO trazado. SendaOne filtra
picos espurios del DEM y suaviza con ventana móvil solo para el
cálculo del desnivel; los
<ele>del archivo llevan el filtro de picos pero no el suavizado. - Límite físico del dato de origen: la polyline de Google tiene precisión de ~1 m en el mejor caso y el DEM SRTM una celda de ~30 m. Ninguna transformación posterior puede crear precisión que el dato de origen no tiene.
- Direcciones de texto son ambiguas por naturaleza. Si su enlace trae texto ("Cra 7 #138-60") en lugar de coordenadas, la geocodificación elige UN candidato; en direcciones duplicadas entre ciudades puede no ser el que usted vio. Las coordenadas compartidas desde el pin de Google Maps no sufren esta ambigüedad.
- El botón de Apple Maps usa el esquema de URL público de maps.apple.com construido con su entrada original; Apple resuelve el texto con su propio geocodificador, que puede elegir un lugar distinto al de Google. Una integración futura con la API de servidor de Apple Maps permitiría validar ese destino antes de entregarle el enlace.
10. Aviso legal
El servicio se provee TAL CUAL, sin garantía de ningún tipo, expresa o implícita, incluyendo pero no limitándose a las garantías de comerciabilidad, aptitud para un propósito particular y no infracción. Vea el aviso legal completo en la página principal.
Operador: Sergio Marroquín Cabrera, Bogotá, Colombia.
Código fuente: github.com/smarroquinc10/maps-to-gpx
(propietario, todos los derechos reservados).