GPX 轨迹案例:里程、时长与爬升为何不同
轨迹统计取决于点序、分段和时间字段。下面用一条人工构造的三点轨迹解释本工具的统计口径,它不是实际运动记录。
操作与预期结果
下载下方 GPX 并导入。示例沿赤道从经度 0 到 0.002,共 3 点、1 段;时间覆盖 120 秒,海拔依次为 10、15、12 米。预期里程约 222.390 米、爬升 5 米、下降 3 米,平均速度约 6.672 千米/小时。
里程使用半径 6,371,000 米的 Haversine 球面距离,逐段相邻点求和;不把段与段之间的空隙计入距离,也不包含三维坡面距离。
为什么结果不等于运动 App
时长是最早与最晚有效时间之差,包含中途停留和分段空隙,不是自动识别的“运动时间”。平均速度使用这个总时长作分母。运动 App 可能采用停留识别、道路匹配或轨迹滤波,因此不能保证差异小于固定百分比。
爬升、下降按相邻有效海拔的差累计,没有海拔平滑;GPS 高程抖动会使累计值增大。点位缺少时间或海拔时,不能从经纬度推断这些字段。
格式转换保留什么
当前 GPX 解析读取轨迹点的经纬度、ele 和 time;KML 与 GeoJSON 路径不会恢复运动 App 私有的时间扩展。GPX 转换到其他格式再转回,可能丢失时间、样式或扩展字段。保留原始文件,并对导出内容重新检查。
当前解析针对常见 GPX/KML 点线结构,不是完整 XML 格式验证器;不承诺支持所有命名空间前缀、扩展标签、压缩文件或设备厂商变体。若不能读取,先导出标准 GPX 或 GeoJSON LineString 再尝试。
可下载与复制的样例
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.1" creator="ToolkitHub examples" xmlns="http://www.topografix.com/GPX/1/1">
<trk><name>Synthetic three-point track</name><trkseg>
<trkpt lat="0" lon="0"><ele>10</ele><time>2026-01-01T00:00:00Z</time></trkpt>
<trkpt lat="0" lon="0.001"><ele>15</ele><time>2026-01-01T00:01:00Z</time></trkpt>
<trkpt lat="0" lon="0.002"><ele>12</ele><time>2026-01-01T00:02:00Z</time></trkpt>
</trkseg></trk>
</gpx>
常见问题
这里显示的是运动时间吗?
不是,当前时长是最早与最晚有效时间之差,包含停留。均速也包含这些停留时间。
转成 GeoJSON 后再导入,时间为什么不见了?
当前 GeoJSON 轨迹解析不读取时间数组或设备扩展字段。若要保留时间,应保留原始 GPX,并核对导出字段。
数据处理与隐私
坐标与文件的解析、转换在浏览器本地执行,不通过计算接口上传文件。地图瓦片请求可能透露查看区域,外部地图及分享链接可能携带坐标;打开或刷新带坐标参数的链接会将该网址发送给服务器,访问统计也会产生第三方请求。工作区与草稿可能保存在当前浏览器,请在共用设备上清除站点数据。 查看完整隐私政策。