diff --git a/app/utils/gpx_processor.py b/app/utils/gpx_processor.py index 7941490..f9efabd 100644 --- a/app/utils/gpx_processor.py +++ b/app/utils/gpx_processor.py @@ -92,6 +92,24 @@ def extract_gpx_statistics(file_path: str) -> Optional[Dict]: 'elevation': elevation }) + # Also look for route points if no track points or waypoints found + if not track_points: + routes = root.findall('.//gpx:rte', namespace) if namespace else root.findall('.//rte') + for route in routes: + route_points = route.findall('.//gpx:rtept', namespace) if namespace else route.findall('.//rtept') + for point in route_points: + lat = float(point.get('lat')) + lon = float(point.get('lon')) + + ele_elem = point.find('gpx:ele', namespace) if namespace else point.find('ele') + elevation = float(ele_elem.text) if ele_elem is not None and ele_elem.text else 0.0 + + track_points.append({ + 'lat': lat, + 'lon': lon, + 'elevation': elevation + }) + if not track_points: return { 'total_distance': 0.0,