GPS 轨迹 GPX (.gpx)
Topografix 标准GPS 交换格式(GPX)是一种开放 XML 标准,用于在 GPS 设备(Garmin、Wahoo)、智能手机和 Strava 等活动平台之间共享 GPS 航点、规划的徒步路线和已记录的运动轨迹。
将 GPX 转换为 KML
免费的浏览器端 GPX 转 KML 转换器。在您的设备上即时转换文件。
检查与元数据
操作系统和文件分析器通过检查开头的二进制字节序列来识别 GPX 文件:
字节级文件头签名 (魔数)
操作系统和文件分析器通过检查开头的二进制字节序列来识别 GPX 文件:
十六进制签名 (偏移量 0):
3C 67 70 78ASCII 表示形式: <gpx
标准化: Topografix GPX 1.1 Specification
技术规格
| 容器架构 | XML 架构,包含航点(<wpt>)、路线(<rte>)和轨迹(<trk>);轨迹由连续的轨迹点(<trkpt>)组成 |
| 压缩方式 | 未压缩文本(可用 Gzip 压缩) |
| 字节序 | UTF-8 / Unicode 文本流 |
| 色彩空间 | 不适用(地理空间遥测数据) |
| 通道与结构 | 纬度、经度、海拔(以米为单位)、UTC 时间戳、心率、步频和温度 |
| 最大尺寸 | WGS 84 坐标基准(全球 GPS 标准) |
| 透明度 | 无 |
| 流式传输与渐进式加载 | 按顺序流式处理轨迹点,可持续记录实时 GPS 数据 |
技术对比矩阵: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.app GPX修复工具修复未闭合的XML标签。
安全分析与解析器攻击向量
GPX文件基于XML,可能会暴露私人位置数据(家庭住址)或遭受XML实体注入攻击。
已知攻击向量
- 位置隐私泄露,在公开的健身文件中暴露敏感的家庭/工作起点。
- 健身平台文件上传处理器中的XML外部实体(XXE)注入。
- 通过百万点的轨迹点文件导致CPU耗尽的拒绝服务攻击。
防御性最佳实践: 在 GPX XML 解析器中禁用 DTD 处理,并提供对家庭坐标进行隐私区域裁剪的功能。
历史渊源与里程碑
2009Strava 推出,在全球范围内普及了骑行和跑步路线的 GPX 轨迹导出。
2004Topografix 发布 GPX 1.1,新增可扩展扩展字段,可记录心率、功率和步频。
2002Dan Foster创建GPX,旨在消除GPS设备与计算机之间专有的GPS电缆协议。
核心优势与特点
- 一种广泛使用的 XML 格式,用于在应用程序和网络服务之间交换 GPS 航点、路线和轨迹。
- 按时间顺序记录遥测数据:轨迹点除海拔外还保存精确的 UTC 时间戳,可用于计算配速、速度和坡度。
- 与 Garmin、Apple Watch、Strava、Komoot、AllTrails 和 Google Earth 广泛兼容。
技术局限与劣势
- 冗长的XML格式导致长时间多天GPS记录的文件体积较大。
- 缺少二进制 Garmin FIT 文件所存储的高级传感器数据(跑步动态数据、骑行功率平衡)。
- 文本文件易于被编辑或篡改,从而伪造运动成绩。
趣味技术冷知识
- GPX 1.1 坐标采用 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 记录。