Guest User

LiveTrack2GPX

a guest
Apr 28th, 2025
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. import json
  2. import xml.etree.ElementTree as ET
  3. from xml.dom import minidom
  4.  
  5. # Load JSON data
  6. with open('data.json', 'r') as file:
  7. data = json.load(file)
  8.  
  9. # Prepare GPX root
  10. gpx = ET.Element('gpx', version="1.1", creator="LiveTrack to GPX", xmlns="http://www.topografix.com/GPX/1/1")
  11. trk = ET.SubElement(gpx, 'trk')
  12. name = ET.SubElement(trk, 'name')
  13. name.text = "LiveTrack Session"
  14. trkseg = ET.SubElement(trk, 'trkseg')
  15.  
  16. # Parse track points
  17. track_points = data['data']['trackPointsBySessionId']['trackPoints']
  18.  
  19. for point in track_points:
  20. trkpt = ET.SubElement(trkseg, 'trkpt', lat=str(point['position']['lat']), lon=str(point['position']['lon']))
  21. ele = ET.SubElement(trkpt, 'ele')
  22. ele.text = str(point['fitnessPointData']['elevation'])
  23. time = ET.SubElement(trkpt, 'time')
  24. time.text = point['dateTime']
  25.  
  26. # Beautify output
  27. gpx_str = ET.tostring(gpx, encoding='utf-8')
  28. parsed_gpx = minidom.parseString(gpx_str)
  29. pretty_gpx = parsed_gpx.toprettyxml(indent=" ")
  30.  
  31. # Write to GPX file
  32. with open('output.gpx', 'w', encoding='utf-8') as file:
  33. file.write(pretty_gpx)
  34.  
Advertisement
Add Comment
Please, Sign In to add comment