TrailCam

指南

GPX 文件里会不会记着你当时面朝哪个方向

打开一次记录下来的徒步,在地图上看,走的方向似乎一目了然——线先往北,沿着山脊转向东。很容易觉得,这种"方向感"应该就藏在文件里,以某种指南针读数的形式挂在每个点上。可打开 GPX 文件去找,什么都找不到。不管是当时面朝哪个方向,还是移动的方向,都从来不是 GPX 的一个点被设计出来要装的东西。

先给结论

不会。GPX 轨迹的一个点,装的是纬度、经度,通常还有海拔和时间戳,仅此而已。没有指南针朝向的字段,没有面朝方向的字段,也没有移动方向的字段。看 GPX 轨迹时感觉到的"方向",不是写在某个点里的东西,而是把一个点和下一个点摆在一起比较之后,才浮现出来的。

GPX 的一个点里实际装的是什么

GPX 的规范把一个轨迹点能装的东西,限定在很小、很固定的一组字段里:在哪、多高、什么时候记的。地图上要画出一条线,本来就只需要这些——这是刻意设计成这样的。指南针朝向,也就是那一刻手机指向哪个方向,是完全不同的一种测量,来自不同的传感器,格式里压根没给它留位置。路点也一样受限,一个名字、一个位置,有时候加一段简短说明,就是没有方向。

方向能算出来——但没被存下来

地图 App 之所以能画出一个表示前进方向的箭头,是因为它自己算了一遍:拿一个点和它后面紧接着的一个点,算出这两点之间的方位角。把整条轨迹这样算一遍,就能大致重建出每一段走的是哪个方向——这完全是事后从一串有顺序的坐标里推算出来的。这个计算结果从没存进文件,而是打开轨迹的软件每次都要重新算一遍。

算出来的这个方位角,也不等于当时面朝的方向。往回走几步,或者停下来看一眼旁边的风景,连续两点之间的方向照样指向你实际走过的那条路,但不会告诉你那一刻手机或者你自己朝着哪边。指南针朝向和移动方向是两种不同的测量,只有在你笔直朝前走的时候,两者才恰好对得上。

为什么格式里没有这个字段

GPX 存在的意义,是把一条路线以小巧、可预测的文件形式在不同 App 之间搬来搬去,移动方向根本不需要专门占一个字段——想要箭头的 App,自己从文件里已有的坐标就能算出来,再单独存一份只会是多余的数据,让每个点都变得臃肿。指南针朝向的情况更不一样,它跟路线的形状没关系,一直在变,还会随手机的拿法而抖动,反映的只是那一刻的朝向,跟走的路径长什么样几乎没有关联。不装这个字段,GPX 才能专心做一件事——记录去了哪里,而不是变成一份手机传感器随手报出的所有数值的流水账。

容易搞混的地方

  • 以为原始 GPX 文件里某处应该有个"箭头"或"朝向"字段——没有这种字段。App 显示的箭头是从连续几个点算出来的,不是从某个字段里读出来的。
  • 把两点之间的方向,当成那一刻手机面朝的方向——它表示的只是位置移动的方向,一旦停下来、四处张望或者往回走,这两者就对不上了。
  • 拿出单独一个点来看,期待它自带某种方向信息——单独一个点只是一个位置,方向只存在于两个以上按顺序排列的点之间的关系里。
  • 觉得指南针不准的设备就记不出能用的轨迹——移动方向来自 GPS 位置的先后顺序,跟指南针没关系,所以轨迹本身不受影响。

TrailCam 在这里的角色

TrailCam 用 GPS 在 iPhone 上记录路线,把视频、照片或语音钉在你拍下它的那个轨迹点上——重放一次保存好的记录时,你注意到的东西和当时的位置都会一起出现,下面还跟着一条海拔曲线。把这次记录导出成 GPX 1.1 或 CSV——单条记录或整段历史都行——带出去的仍然是 GPX 一个点向来就有的那些坐标:位置、海拔、时间,这也是它能在 Strava、Garmin Connect、Komoot 里直接打开的原因。导出属于可选的 TrailCam Pro,App 本身免费下载。

常见问题

GPX 有没有哪个版本支持朝向或方位角字段?
轨迹点的核心 GPX 规范里没有定义这样的字段。有些软件会为了自己的目的加一些标准之外的字段,但那已经超出了基本格式的范围,也不保证别的 App 会读取或保留它。
既然方向没有被存下来,App 是怎么画出会动的箭头的?
靠事后计算。拿每个点跟它前面那个点比较,算出两者之间的方位角,每次显示轨迹的时候都重新算一遍,而不是从文件里读出来的。
GPX 两点之间的方向,跟指南针朝向是一回事吗?
不是一回事。一个是记录下来的两点之间位置移动的方向,另一个是某一刻手机实际指向的方向。笔直朝前走的时候两者大致一致,其他情况下可能完全对不上。

记录你自己的轨迹

TrailCam 是一款 iPhone 上的 GPS 轨迹记录 App,会把沿途拍的视频、照片和语音钉在你拍下它的那个位置,并支持导出成 GPX 1.1 或 CSV。免费下载。

在 App Store 下载