GPS 轨迹 GPX (.gpx)
Topografix 标准GPS交换格式(GPX)是用于在GPS设备(Garmin、Wahoo)、智能手机以及Strava等活动平台上共享GPS航点、计划徒步路线和记录的健身轨迹的开放式XML标准。
将 GPX 转换为 KML
免费的浏览器端 GPX 转 KML 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 GPX 文件:
字节级文件头签名 (Magic Bytes)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 GPX 文件:
十六进制签名 (偏移量 0):
3C 67 70 78ASCII 表示形式: <gpx
标准化: Topografix GPX 1.1 Specification
技术规格
| 容器架构 | XML schema containing Waypoints (<wpt>), Routes (<rte>), and Tracks (<trk>) composed of sequential Trackpoints (<trkpt>) |
| 压缩方式 | Uncompressed text (readily compressed with Gzip) |
| 字节序 | UTF-8 / Unicode text stream |
| 色彩空间 | N/A (Geospatial Telemetry) |
| 通道与结构 | Latitude, Longitude, Elevation (elevation in meters), UTC timestamp, heart rate, cadence, and temperature |
| 最大尺寸 | WGS 84 coordinate datum (worldwide GPS standard) |
| 透明度 | None |
| 流式传输与渐进式加载 | Sequential trackpoint streaming allows continuous live GPS logging |
技术对比矩阵:GPX 对比同类产品
| 技术属性 | GPX (当前) | KML | GEOJSON | FIT |
|---|---|---|---|---|
| 主要用途 | 户外休闲与运动追踪 | 3D地球可视化(Google地球) | Web地图与GIS数据 | Garmin二进制运动手表格式 |
| 带时间戳的轨迹点 | 原生标准(带<time>的<trkpt>) | 需要自定义架构标签 | 需要自定义属性时间戳 | 二进制时间戳记录 |
| 文件结构 | 开放式XML架构 | 开放式XML架构 | 开放式JSON格式 | 专有紧凑二进制格式 |
| Garmin / Strava支持 | 100%通用的导出/导入 | 在Google地球中受支持 | 在Web GIS中受支持 | 原生硬件录制格式 |
常见损坏模式与十六进制恢复指南
Strava或Garmin Connect报告"上传时发生错误:文件为空或无效"。
根本原因: 由于录制过程中途电池耗尽,导致缺少未闭合的</trk>或</gpx>标签。
恢复方法: 使用File2File GPX修复工具修复未闭合的XML标签。
安全分析与解析器攻击向量
GPX文件基于XML,可能会暴露私人位置数据(家庭住址)或遭受XML实体注入攻击。
已知攻击向量
- 位置隐私泄露,在公开的健身文件中暴露敏感的家庭/工作起点。
- 健身平台文件上传处理器中的XML外部实体(XXE)注入。
- 通过百万点的轨迹点文件导致CPU耗尽的拒绝服务攻击。
防御性最佳实践:
历史渊源与里程碑
2009Strava推出,在全球范围内普及了骑行和跑步路段的GPX轨迹导出功能。
2004Topografix发布GPX 1.1,增加了针对心率、功率和步频的可扩展扩展。
2002Dan Foster创建GPX,旨在消除GPS设备与计算机之间专有的GPS电缆协议。
核心优势与特点
- 无可争议的户外休闲、徒步、跑步和骑行活动的全球标准。
- 按时间顺序排列的遥测数据:轨迹点除了高程外还存储精确的UTC时间戳,从而实现配速、速度和坡度计算。
- 与Garmin、Apple Watch、Strava、Komoot、AllTrails和Google地球具有通用兼容性。
技术局限与劣势
- 冗长的XML格式导致长时间多天GPS记录的文件体积较大。
- 缺少存储在二进制Garmin FIT文件中的高级传感器数据(跑步动态数据、骑行功率平衡)。
- 文本文件易于被编辑或篡改,从而伪造运动成绩。
趣味技术冷知识
- GPX坐标始终使用WGS 84大地坐标系,这与轨道中GPS卫星所使用的坐标参考系统完全相同。
- 运动手表每1秒记录一个轨迹点,这意味着一场3小时的马拉松会在单个GPX文件中生成超过10,000个坐标点。
- GPX扩展允许直接在GPS轨迹内部记录个人健康生物特征数据,如心率(<gpxtpx:hr>)和骑行步频。
常见技术问题
什么是 GPX 文件?
GPX 文件是一种 GPS 数据格式,用于存储来自 GPS 设备和健身手表的航点、路线和记录的轨迹(包含纬度、经度、海拔和时间)。
如何将 GPX 文件转换为用于 Google Earth 的 KML?
您可以在网页浏览器中直接使用 File2File.app,一键将任何 GPX 锻炼或远足径转换为 Google Earth KML 文件。
如何将 GPX 文件上传到 Strava?
登录 Strava.com,点击右上角的“+”图标,选择“上传活动”,然后选择“文件”以上传您的 .gpx 记录。