Tecnología · GUÍA PRÁCTICA
Convertiste la ruta GPX: ¿se conservaron los datos de cada punto?
Una distancia distinta de cero no basta. Las pruebas con gpxpy 1.6.2 separan los campos de los puntos y la geometría solapada.

Si gpxpy devuelve distancia cero para un archivo con una ruta, identifica primero su estructura. Convertirla en un track puede generar una distancia y modificar otros datos al mismo tiempo. Conserva el original y evalúa el archivo reabierto, no el aviso de éxito.
Probamos cuatro archivos sintéticos GPX 1.1 con Python 3.12.14 y la versión publicada gpxpy 1.6.2: solo waypoints, solo ruta, solo track y una combinación cuya ruta y track seguían deliberadamente las mismas coordenadas. Son ejemplos controlados, no viajes registrados ni pruebas de un navegador físico.
1. Cuenta los contenedores antes de elegir una solución
Tras analizar una copia local fiable, revisa len(gpx.waypoints), len(gpx.routes), len(gpx.tracks) y los segmentos de cada track. GPX 1.1 distingue waypoints independientes, puntos ordenados de ruta y segmentos de track. Encontrar tres puntos en alguna parte del archivo no demuestra que exista un track registrado ni un orden previsto para conectar waypoints independientes.
Los métodos globales de longitud del paquete instalado recorren los tracks. Si solo necesitas la longitud 2D de una ruta existente, revisa primero route.length() para cada ruta seleccionada. Devuelve metros sin exigir una conversión. No resuelve el desnivel acumulado ni la distancia 3D de una ruta.
2. Un auxiliar útil puede conservar pocos campos
La pregunta real de la incidencia 290 de gpxpy ya explica el cero en archivos que solo tienen rutas y propone un auxiliar de conversión. Crea puntos de track con latitud, longitud y elevación, conserva el nombre de la ruta como nombre del track y elimina las rutas originales. No copia todos los campos de cada punto. El problema básico ya tiene respuesta.
Nuestra ruta usaba latitud 0, longitudes 0, 0.01 y 0.02, elevaciones de 10, 20 y 30 metros y un tiempo, nombre, descripción y extensión propia por punto. Al reproducir esa lógica obtuvimos distancia distinta de cero, pero, después de guardar y reabrir, cada uno de los cuatro recuentos pasó de tres a cero. Se conservó el nombre general de la ruta, no los nombres de sus puntos.
3. Distingue la pérdida por transformación de la serialización
También guardamos y reabrimos la ruta sin convertirla. El control GPX 1.1 conservó los tres tiempos, nombres de punto, descripciones y elementos de extensión. Esa comparación aísla el auxiliar limitado en este ejemplo; no permite culpar a todas las exportaciones ni a toda la biblioteca.
Antes de convertir, inventaría los campos de los puntos concretos que necesitas conservar: coordenadas, elevación, tiempo, nombre, descripción y extensiones necesarias. Después, reabre el archivo nuevo y compara valores, recuentos y orden previsto. No basta con que exista algún nombre o fecha. El nombre del track y el nombre de cada punto requieren comprobaciones diferentes.
4. Decide qué geometría debe contarse una sola vez
En el ejemplo mixto colocamos deliberadamente las mismas coordenadas en una ruta y un track. Al principio, los métodos globales solo contaban el track existente. Añadir la ruta convertida creó dos tracks y duplicó la longitud 2D de 2.226,39 a 4.452,78 metros. Es un solapamiento construido, no una afirmación de que todo archivo mixto duplique distancias.
Antes de añadir sus puntos a los tracks medidos, decide si la ruta es un plan, una alternativa u otra representación del mismo recorrido. Conserva los límites necesarios entre segmentos y evita inventar un enlace entre tramos sin relación. Revisa la vista del recorrido e identifica qué geometría se incluye; un total verosímil no demuestra que la elección sea correcta.
5. Acepta el archivo reabierto con criterios explícitos
Las herramientas existentes ya documentan sus decisiones. GPSBabel 1.10.0 explica cómo eliminar datos de origen para evitar duplicados y la opción timeless, que afecta a la copia de tiempos. La herramienta independiente de waypoints de GPXAnalyzer documenta el orden y los nombres opcionales, omite descripciones y símbolos y no convierte archivos que solo contienen rutas. Son alcances documentados, no herramientas que hayamos ejecutado.
Escribe un archivo con otro nombre y conserva el hash y una copia intacta del original. Acepta el resultado únicamente si los contenedores y segmentos, la geometría seleccionada, los valores y nombres necesarios de los puntos, las unidades y el orden coinciden con tu objetivo. Ante un cambio inesperado, detente y conserva ambos archivos. Los originales no cambiaron; no validamos distancias realmente recorridas, conformidad estricta con el esquema ni el funcionamiento de Garmin, BMW, Strava o GPSBabel.
