TrailCam

指南

明明走的是直路,GPS 轨迹为什么会画成锯齿状

因为记录下来的轨迹本来就不是一条线,而是一串各自带着一点小小定位误差的点,按顺序连起来的结果。在一条直路上,这点误差不会在视觉上互相抵消,而是一会儿偏左一点,一会儿偏右一点,把这些点按记录顺序连起来,正好就画出那种细密的锯齿。走路的人明明走得很直,事后负责把这些点连起来的计算,压根不知道这件事。

简单说

每一个 GPS 点都带着一点定位误差,通常也就几米,哪怕头顶天空完全开阔也是一样。轨迹在弯道上的时候,这点误差很容易被真实的转弯盖过去,不太看得出来。轨迹在直路上的时候,因为没有真的方向变化可以让它藏进去,误差就成了唯一能看见的东西。每个点相对于人实际站的位置都会稍微偏左或偏右,而轨迹就是把这些点按记录的先后顺序连起来画出来的——不是先描出一条平滑的线再往上贴点。把一串小小的、彼此差不多互相独立的左右误差连起来,画出来的就是一条实际上从没拐过弯的路上,一眼能看出来的锯齿。

GPS 点是一个位置,不是画在线上的一个点

说得准确一点,接收器每次给出的其实是:根据同一时刻收到的几颗卫星信号的时间差,算出来的、对那一刻经纬度的最佳估计。这是一团不确定性被压缩成一个坐标之后的结果,不是一个百分之百精确的位置。哪怕人真的走得笔直,实际位置也确实是沿直线在移动,但每一个估计值本身,仍然带着相对于那个真实位置的、一点点、大体随机的偏差。后面也没有哪一步会把这点偏差去掉,因为轨迹说到底就是把记录下来的一个个估计值按顺序连起来而已。

这也是为什么看起来会是锯齿,而不是一条略微变粗、变模糊的线。如果是一条又宽又模糊的线,说明相邻的点之间没什么规律,往各个方向随机散开。而实际发生的情况更像是交替出现:这个点偏左一点,下一个点靠中间或者稍微偏右,再下一个又偏左。把它们按顺序用直线段连起来,画出来的是锯齿而不是一团模糊——误差本身还是那几米,只是点被连接的方式,决定了它看起来是什么形状。

为什么走路时比骑车时更明显

误差本身的大小基本不随速度变化,它来自接收器和卫星的几何关系,跟人走多快没什么关系。会变的是相邻两个点之间隔了多远。走得慢的时候,间隔几秒记录下来的两个点之间,实际移动的距离可能只有几米——这个数量级和定位误差本身差不多,所以横向的一点小偏差,在两点间距里占的比例就很大,看起来就是一个明显的折角。同样几秒钟换成骑车,或者下坡快走,两点之间的实际距离会长得多,同样几米的横向误差在一段长得多的距离里只占很小一部分,线基本上不会明显弯折。误差本身没有因为走得慢而变大,只是它在很短的一步里占的比例变大了而已。

哪些地方会特别明显

四周开阔、各个方向天空都看得清楚,是接收器最省心的情况,锯齿也最不明显。反过来,信号在到达之前有地方可以反射的场景就会更糟——岩壁、水面、茂密的树冠,或者路边紧挨着的建筑物。反射过来的信号会比直接照过来的信号晚到那么一点点,接收器没办法干净利落地把两者区分开。这种现象一般叫多径效应,它把个别点往旁边推得比开阔地带的普通误差更多,而且不是每个点都推得一样,恰恰是这种点与点之间不一致的推法,连起来之后就成了看得见的锯齿。这跟树冠底下、高楼旁边精度会变差是同一个根本原因,各自有专门的指南讲过——一条穿过成排树木的直路,差不多是这种锯齿现象最容易出现的场景。

这和单独一个点飞出去不一样

单点飞出去,是某一个点真的离它该在的位置很远——有时候能到几十米甚至更多——通常是某一次定位算错了,很容易一眼看出来,是一次孤立的跳出去又跳回来。锯齿是完全不同的模式:好多个点,每个点的偏差都很普通、很小,单独看哪一个都看不出问题,但连起来之后就显出摇摆感,而不是一条直线。两者的根源是一样的,都是 GPS 常见的定位误差,区别在于:单点飞出去是一条干净的线里突然冒出的一个离群点,而锯齿是同样的误差以最普通的样子,在一段没别的东西可以掩盖它的路上,同时到处冒出来。

会不会真的影响那些关键数字

多数情况下影响很小。因为横向的偏差大体上是左右交替出现,不会一直往一个方向偏,所以锯齿会给总距离多加上一点点——每个折角走过去,都比它下面那条真正的直线稍微长一些——但这点影响放到一整趟徒步里看,通常连百分之一都不到,不至于让距离总数看起来明显不对。对累计爬升基本没什么影响,因为爬升是从高度读数算出来的,跟点左右偏了多少没关系。锯齿这件事,多半是放大在屏幕上看会显得很夸张,落到实际数字上其实没那么大动静。

容易搞错的地方

  • 看到地图上轨迹在打锯齿,就以为是手机丢了信号或者 App 出了问题——其实往往正相反:接收器一直在稳稳地记点,只是这段路本来就是直的,没有真实的转弯可以让这点普通误差藏进去。
  • 以为锯齿会在走得最快的那段路上最明显——实际上常常相反,点与点间距短、走得慢的地方,同样的误差占的比例反而更大。
  • 看到轨迹明显在晃,就担心总距离也跟着大错特错——横向的偏差在一整趟徒步里大体会互相抵消,加到总距离上的量其实不多。
  • 把锯齿的原因归到路本身头上——真正的原因往往是路边的树、峡谷的岩壁,或者附近的建筑物,而不是这条路自己有什么问题。

TrailCam 在这件事上做了什么

TrailCam 在整趟徒步过程中一直在后台记录 GPS 点,之后在地图上回放的时候,也是把接收器实际记下来的东西如实画出来——摇摆也照样画出来,不会藏着掖着。导出的 GPX 文件里装的是同一批原始点,所以地图上如果某一段看着在打锯齿,导出的文件里也会是一样的样子,换成其他能读 GPX 的 App 或网站打开,看到的也是同一个结果。导出功能属于可选的 TrailCam Pro 升级,App 本身可以免费下载。

常见问题

轨迹打锯齿是不是说明 GPS 信号断了?
不是,往往正相反。这说明接收器整段时间都在正常记点,只是这条路本来是直的,没有真实转弯可以让这点普通的定位误差藏进去,所以才看得出来。
打锯齿是不是说明总距离也错得很离谱?
一般不会错很多。横向的偏差大体上是左右交替出现的,一整趟徒步下来大部分会互相抵消,加到总距离上的量通常不多。
同一段路,为什么这次走会打锯齿,下次走又很干净?
定位误差跟当时的接收条件有关。这次天空比较开阔,下次可能树冠更密、云层更厚,或者旁边多了建筑物,每次记录时的条件不完全一样,同一段路晃动的程度自然也会不一样。

记录你自己的轨迹

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

在 App Store 下载