訊號斷掉的時候,一個軌跡記錄 App 該怎麼做?
每一個記錄工具遲早都會碰上隧道。它們之間的差別在於,對那段看不見的路到底寫下了什麼——而最常見的那個答案,也就是拉一條直線跨過去,是 App 自己也背書不了的數字。
你騎進一條隧道。接下來四分鐘,接收器什麼都聽不到。你從另一頭出來,定位點又開始進來了。現在你的 App 手上有兩團點,中間空了一個洞,而它必須決定要為這個洞寫下什麼。
誠實的做法只有三種,而多數 App 選了第一種。
做法一:拉一條直線
把斷訊前最後一個點和斷訊後第一個點連起來,然後把這條線當成你騎過的路。這是最好寫的做法,畫面看起來也最整齊,而這大概就是它成為預設值的主要原因。
這同時也是虛構。那四分鐘裡發生了什麼,App 手上一份證據都沒有。這條直線會切過一整片山坡,或者橫越一條河,而它的長度——不管是多少——會被加進你的總里程,混進去之後,就跟你真的騎出來的距離再也分不開了。在市區那種一趟掉十幾次訊號的路線上,這些量會安安靜靜地累積,而且只往一個方向累積:永遠往上加,從來不往下扣。
最糟的情況根本不是隧道。是那支在谷底失去收訊、十一公里之後才重新抓到的手機,替你在一座你其實是繞過去的山頭上,畫了一條筆直的十一公里。
做法二:整趟丟掉
只要有一點不確定就什麼都不顯示。沒有人這樣做,也不該有人這樣做——一趟八十公里的路裡面有四分鐘是壞的,那仍然是一趟很好的路,為了保住一個統計數字而把它刪掉,這筆交易划不來。
做法三:把洞就當成洞記下來
把兩段軌跡分開保存,把這個缺口存成一個真正的物件,帶著兩端和時間,中間不做任何內插,也不把它的直線長度加進里程。然後在畫面上照實說出來:這一段是缺的、它持續了四分鐘、下面那個數字沒有把它算進去。
這樣不整齊,但有用得多。它代表里程數字是一個下限,而不是一個猜測——裡面每一段都是接收器真的看到過的東西——也代表你事後分得出來,某一趟到底是一份乾淨的測量,還是一份中間破了洞的測量。一個稍微低一點、但你信得過的數字,勝過一個稍微高一點、但你不敢用的數字。
Roam 選的是第三種做法。定位點一停,它就把當前這一段收掉、開一段新的,而缺口就存在收尾那個點本來就帶著的兩個事實裡,和那個點在同一個交易裡落地——所以缺口不可能只寫了一半,就算 App 在隧道中間被系統砍掉也一樣。缺口永遠不做內插,它的長度也永遠不會被算成里程。地圖上那段虛線,和那句告訴你「訊號中斷了四分鐘」的話,是同一個函式算出來的,所以圖和數字不會各說各話。
更難的那個問題:停下來和斷訊,長得一模一樣
如果只看一串座標,停在紅燈前和失去收訊是同一件事:位置不再變化,或者位置不再進來。往其中一邊猜錯的 App,會在隧道口替你按下暫停,然後少算四分鐘的總時間。往另一邊猜錯的 App,會在你坐在咖啡廳的時候讓碼錶繼續跑,最後報給你一趟兩小時的路,配上一個完全說不通的移動均速。
出路是別再去問 GPS。手機上有加速度計,它非常清楚自己現在是以時速二十五公里被帶著走,還是放在桌上不動,而這個訊號跟聽不聽得到衛星完全無關。Roam 用手機的動作資料做的就是這件事:把真正的停止和訊號中斷分開,才不會誤把你的紀錄按下暫停。這也是這個 App 唯一一個會跟你要「動作與健身」的理由。
你可以怎麼檢查自己手上那個記錄 App
- 騎過一條隧道或一座立體停車場,然後打開地圖看。那一段是虛線,還是一條直得可疑的線?
- 拿總里程跟一條你很熟的路線比。市區路線持續偏高,就是缺口被內插的典型跡象。
- 看看 App 到底有沒有告訴你曾經斷過訊。如果它不說,你就沒有任何辦法知道自己哪幾趟是乾淨的。
- 找一個天空開闊的地方停十分鐘,然後看總時間和移動時間有沒有合理地拉開。
這些都不會把一支手機變成測量儀器。塞在車衣後口袋裡、壓在濕外套底下、旁邊還放著一包工具的手機,收訊條件本來就比不上裝在龍頭上、配了正經天線的碼錶,再多的軟體也補不回來。軟體能做的,是對你誠實交代:這一天,它到底真的看見了哪些部分。
常見問題
為什麼我的 GPS 軌跡會穿過房子?
成因有兩種。兩側都是高樓的街道裡,訊號反射會讓單一定位點偏掉幾十公尺,畫出來就是一條鋸齒狀的線。但如果是一整段筆直地切過一個街廓,那是另一回事:那是 App 拿一條直線,接起了一段它根本沒有資料的斷訊。
我騎過的那條隧道,該不該算進里程?
它量不到,所以只能估,或者不算。加上一段直線估計值,等於把猜出來的距離和記錄下來的距離,悄悄混進同一個數字裡。不算,你會得到一個稍微偏低、但整份都由接收器真的看見過的東西組成的里程,外加一句說明少了哪一段。
為什麼我的 App 在隧道裡把紀錄按暫停了?
只靠位置資料運作的自動暫停,分不出「沒有在移動」和「什麼都沒聽到」,所以一次斷訊讀起來就像一次停止。改用手機的動作感測器就能把兩者分開,因為加速度計根本不在乎天上有沒有衛星。
訊號斷了一段,這趟紀錄就毀了嗎?
不會。缺口兩側的資料,好壞跟原本完全一樣。真正重要的是 App 有沒有告訴你缺口在那裡,以及有沒有把它排除在總數之外,讓你知道自己看的到底是什麼。
一個不會把這趟弄丟的記錄 App
Roam 每收到一個定位點就立刻寫進手機,和當下的累計數字在同一個交易裡落地;訊號斷掉的那一段就標成斷的,不拿一條直線糊過去;爬升讀的是氣壓計,不是 GPS 高度。沒有帳號、不用登入、不做同步。完整記錄一趟、看它、回放它,都是免費的。