R Roam 获取 Roam

信号断掉的时候,一台 GPS 记录器该怎么做?

每一台记录器迟早都会遇上一条隧道。它们之间的区别在于,对那段自己没看见的路,它到底写下了什么——而最常见的那个答案,一条横跨缺口的直线,是一个 App 根本站不住脚的数字。

你骑进一条隧道。接下来的四分钟,接收机什么都没听见。从另一头出来,定位点又开始送来了。现在你的 App 手上有两团点,中间夹着一个洞,而它必须决定,关于这个洞要写下点什么。

诚实的做法只有三种,而大多数 App 选了第一种。

做法一:画一条直线

把中断前最后一个点和中断后第一个点连起来,把这条线当成你骑过的路。它最容易实现,看上去也最整齐,而这基本就是它成为默认做法的全部原因。

它同时也是虚构。关于那四分钟里发生了什么,App 手上一点证据都没有。那条直线会从山坡里穿过去,或者横跨一条河,而它的长度——不管是多少——会被加进你的里程,在那里它和你真正骑出来的距离已经分不出彼此。一条有十来次短暂丢星的市区路线上,这种误差安安静静地往一个方向累积:只会往上,从不往下。

最糟的情况根本不是隧道。是那台手机在谷底失去了信号,十一公里之后才重新锁定,于是在你绕着走的那座山上,画出一条笔直的十一公里。

做法二:把这趟丢掉

凡是没把握的东西就一概不显示。没有人这么做,也不该有人这么做——一趟八十公里的路里有四分钟是糟糕的,它仍然是一趟好路,为了保住一个统计数字而把它删掉,是一笔很差的买卖。

做法三:把洞当成洞记下来

让两段保持分开,把这个缺口作为一个有两端、有时间戳的真实对象存起来,不在它上面插值任何东西,也不把它两端之间的直线长度加进里程。然后在屏幕上把这件事说出来:这一段是缺的,它持续了四分钟,下面那个数字没有包含它。

这样做没那么整齐,却有用得多。它意味着里程这个数字是一个下限,而不是一个猜测——里面的每一米都是接收机真正看见过的——也意味着事后你能分辨出,某一趟是一次干净的测量,还是一次带洞的测量。一个你信得过的、稍微偏小的数字,胜过一个你信不过的、稍微偏大的数字。

Roam 选的是第三种。定位点停下来的时候,它把当前这一段收尾,另开一段新的,而这个缺口就存在收尾那个点本来就带着的两个事实里,和那个点在同一次事务里提交——所以一个缺口不可能处在「写了一半」的状态,哪怕 App 是在隧道正中间被杀掉的。缺口永远不会被插值,它的长度也永远不会被算进里程。地图上那截虚线,和那句告诉你信号断了多久的话,出自同一个函数,所以图和数字不可能各说各话。

更难的那个问题:停下来和丢信号长得一模一样

光看一串坐标,等红灯和失去信号是同一件事:位置不再变化,或者位置不再送来。在一个方向上猜错的 App,会在隧道口把你的记录暂停掉,白白丢掉四分钟的总时间。在另一个方向上猜错的 App,会在你坐在咖啡馆里的时候让计时器一直跑着,最后给你报一趟两小时的路,配上一个毫无道理的平均速度。

出路是别再去问 GPS。手机上有加速度计,它非常清楚自己此刻是被以每小时二十五公里带着走,还是躺在一张桌子上,而这个信号跟天上有没有一颗卫星听得见,完全无关。Roam 用手机的运动数据做的正是这件事:把真正的停车和丢失信号区分开,这样它就不会误把你的记录暂停掉。这也是这个 App 唯一一次申请「运动与健身」权限的原因。

拿你自己那台记录器验一下

  1. 骑过一条隧道或者一座立体停车场,然后看地图。那一段是虚线,还是一条直得可疑的实线?
  2. 拿里程和一条已知长度的路线比一比。市区路线上里程持续偏高,就是缺口被插值补上的典型特征。
  3. 看看 App 到底有没有告诉你这次中断发生过。如果它不说,你就没有任何办法知道自己哪几趟是干净的。
  4. 找一块天空开阔的地方停上十分钟,看看总时间和运动时间的差值有没有合乎情理地拉开。

这些都不会把一台手机变成测量仪器。装在骑行服后兜里、压在一件湿外套下面、旁边还挨着一包工具的手机,接收效果比不上装在车把上、配了正经天线的码表,再多的软件也修不好这一点。软件能做的,是就今天这一天里它究竟看见了哪些部分,跟你说实话。

常见问题

为什么我的 GPS 轨迹会从楼里穿过去?

这有两种完全不同的成因。在两侧都是高楼的街道上,被反射的信号会让单个定位点偏出几十米,画出来是一条锯齿状的线。而一整段笔直地穿过一个街区的线是另一回事:那是某个 App 在一段它根本没有数据的信号缺口上,把两头连了起来。

我骑过的那条隧道,该不该算进里程?

它测不出来,所以要么估,要么略过。加进一个直线估计值,等于把猜出来的距离和记录下来的距离悄悄混进了同一个数字里。略过它,你得到的是一个略微偏小、但完全由接收机看见过的东西构成的里程,外加一条说明缺了什么的提示。

为什么我的 App 在隧道里把记录暂停了?

只看位置数据的自动暂停,分不清「没在动」和「什么都没收到」,所以一次信号中断读起来就像一次停车。改用手机的运动传感器就能把两者分开,因为加速度计根本不在乎天上有没有卫星。

有信号缺口,是不是这趟记录就废了?

不是。缺口两边的部分和原来一样好。真正要紧的是 App 有没有告诉你这个缺口在那里,以及有没有把它挡在总数之外,这样你才知道自己在看的是什么。

一个不会把这趟弄丢的记录 App

Roam 每收到一个定位点就立刻写进手机,和当前的累计数字在同一个事务里落盘;信号断掉的那一段标成断的,不拿一条直线糊过去;爬升读的是气压计,不是 GPS 高度。没有账号,不用登录,不同步。完整记录一趟、看它、回放它,都是免费的。

在 App Store 下载

相关文章

全部文章