健行途中記錄 App 當機了,GPS 軌跡會怎樣?
多數情況下,丟掉的不是整趟健行,而是還沒來得及存下來的那一小截。一條 GPS 軌跡不是走完之後才一次性產生的檔案,而是邊走邊一點一點累積出來的。App 當機只是把這個累積過程在當下截斷,並不會回頭把已經存好的點也一併抹掉。丟多少純粹是時機問題,跟運氣沒什麼關係。
先說結論
App 當機並不會自動把當機之前記錄的那部分也清空,因為那部分早就寫進儲存空間裡了,並不是先存在記憶體裡等到最後才一次寫入。中斷只是讓軌跡停在當下這一點,真正丟掉的是最後一個已存的點到實際停止記錄那一刻之間的這段——實務上往往只有幾秒到幾分鐘。
記錄過程中,軌跡到底是怎麼累積出來的
路線記錄不是像寫完一份文件、按一次儲存那樣的一次性動作。它是一點一點來的:GPS 定出一個位置,這個位置被加進路線裡,加到目前為止的路線立刻寫進儲存空間,接著下一個位置來了再重複一次。走到一小時左右,根本不存在「檔案剛剛誕生」這個瞬間——從出發沒多久開始,它就已經一路長大到現在。
當機之後還留得住東西,靠的就是這個機制。要是軌跡只放在記憶體裡,等健行結束才一口氣寫進儲存空間,中途一當機,還沒寫進去的部分就全沒了。按點寫入的做法不一樣,不管中斷發生在哪個時刻,手上都有東西留著,只是記錄不會再往下延伸而已。
「當機」對正在進行的記錄到底意味著什麼
當機跟自己手動強制結束不一樣,沒有人故意把它關掉。它可能來自 App 本身的一個 bug,也可能是 iOS 因為手機上其他東西在搶記憶體,把背景中的這個 App 回收掉了。但從記錄這一端看,兩種原因造成的結果差不多:原本不斷產生新點的那個東西,毫無預警、也沒來得及收尾就停了。
這個差別對留下什麼其實影響不大。不管是自己主動關閉、被系統終止,還是純粹當機,當機之前已經寫進儲存空間的那些點安不安全都是一樣的,因為這幾種收場方式都不會去動已經存好的內容。
重新打開 App,能拿回什麼
當機之後真正要在意的問題,其實不是「這趟是不是全沒了」,而是「下次打開 App 會怎樣」。TrailCam 如果在走到一半時被中斷,再打開時會把那條沒走完的路線交還給你,而不是擱在一邊或直接丟掉——因為一條中途結束的記錄仍然是一條真實的路線,有真實走過的起點、真實的距離、地圖上真實的形狀,只是比實際走的路提前結束了而已。
拿回來的就是實際記錄到的那部分,不多也不少,不會有空白被猜出來補上。這一段的距離、配速、爬升,都是用跟其他任何一條路線一樣的點算出來的,沒有「暫時將就」這回事。
當機真正丟掉的是什麼
拿不回來的,是最後一個已存的點到手機實際停止記錄那一刻之間的這段,當然還有那之後在路上發生、但根本沒被記下來的一切。因為點是不斷加進去的,不是累積一大批才寫一次,所以這段通常很短,但不是零——快到登山口才當機,留下的路線看起來可能明顯比實際走完的地方短一截。
而且既然處理程序本身已經停了,也沒辦法不重新打開 App 就從剛才那個點接著往下記。當機之後剩下的路,是新的一段,不是原本那條的延續。
容易搞錯的地方
- 以為當機就等於當天的記錄全沒了——實際丟的通常只是沒來得及記下的那一小段結尾,往往只有幾秒到幾分鐘。
- 把當機和自己手動強制結束當成同一回事——原因確實不同,但儲存空間裡留下什麼並沒有差別。
- 指望拿回來的路線會把丟掉的那段猜出來補齊——不會,軌跡只包含真正記錄到的點,不會替缺的那段編一個估計值。
- 以為當機之後隔多久再打開 App 會有影響——不管是馬上查看還是過幾個小時再看,已經存進去的點都不會改變。
TrailCam 這邊
如果 TrailCam 在走到一半時被中斷,再打開時會把這條沒走完的路線交還給你,而不是把沒記完的當成沒記。拿回來的路線,如實反映了實際記錄到的那部分,距離、配速、爬升都跟其他任何一趟健行一樣,用同樣的點算出來。App 本身免費下載。
常見問題
- 當機會把整趟健行的記錄都清空嗎,還是只丟一部分?
- 實際上只丟一部分。通常就是最後一個已存的點到實際停止記錄那一刻之間的這一小段,之前記錄的部分都還留在儲存空間裡。
- 健行 App 當機,跟自己手動強制結束是同一回事嗎?
- 原因不一樣,一個是故意的,一個不是。但對已經記錄的軌跡來說影響是一樣的:不會再有新的點加進來,但已經存好的點不受影響。
- 當機留下的空白,健行 App 會幫忙補上嗎?
- 不會。軌跡只包含真正記錄到的點,最後一個已存的點到中斷那一刻之間的這段,會照原樣缺著,不會被猜出來填上。
記錄你自己的軌跡
TrailCam 是一款 iPhone 上的 GPS 軌跡記錄 App,會把沿途拍下的影片、照片與語音釘在你拍它的那個位置,並支援匯出成 GPX 1.1 或 CSV。免費下載。