沒有訊號、開了飛航模式,GPS 還定得到位嗎?
定得到——而且原因本身就解釋了大部分人對手機定位的誤會。手機是靠「聽」算出自己在哪裡,不是靠「問」。行動數據真正替你買到的,是更快的第一次定位,以及底下那張圖。
簡短的答案是:定得到。在一格訊號都沒有的山上、在 SIM 卡完全不通的國外、在飛航模式開著的時候,手機都算得出自己在哪裡——前提是飛航模式沒有順手把定位服務也一起關掉,而 iOS 並不會這樣做。
這個誤會值得花點時間拆開來看,因為幾乎每個人都有過同一種經驗:在收訊死角打開地圖 App,看見一個藍點停在一片灰色方塊上,於是認定定位壞了。定位沒有壞,是地圖沒有載進來。那是兩套完全不同的系統,只是剛好畫在同一個畫面上。
手機是在聽,不是在問
衛星定位接收器,字面上就是一台接收器。天上大約三十顆 GNSS 衛星持續廣播著訊號,內容大致是:「我是第十一號衛星,這是我的軌道參數,我的時鐘現在指在這裡。」訊號單向從太空傳到你身上,手機從頭到尾不會回傳任何東西,也沒有任何一顆衛星知道你存在。
接收器從四顆以上衛星訊號抵達時間的細微差異,解出四個未知數:你的緯度、你的經度、你的高度,以及它自己那顆廉價時鐘與原子時間之間的偏差。整套把戲就是這樣。它需要的只有一片還算開闊的天空,除此之外什麼都不要:不要 SIM 卡、不要數據方案、不要 Wi-Fi、不要帳號、不要訂閱。
這也是為什麼 GNSS 在地球上任何地方都免費,以及為什麼你的位置不會被「用完」。不管有沒有人在聽,衛星都照樣廣播。
那行動數據到底在做什麼?
兩件事,而且兩件都不是定位本身。
讓第一次定位快一點
要快速找到衛星,接收器得先大致知道它們此刻在哪裡。這份資料——曆書與星曆——衛星自己也在廣播,只是慢:從完全冷的狀態靠空中訊號收齊,可能要三十秒到好幾分鐘。輔助式 GNSS 做的事情很單純,就是把同一份軌道資料改從網路上抓下來,不到一秒就好,接收器因此知道該往哪裡找。
沒有輔助資料,就是一次冷啟動。定位還是會來,只是要等比較久。實際上這才是大家在收訊死角真正會察覺到的那件事,也是為什麼出發前在登山口站著等一分鐘是值得的。
底下那張地圖
地圖圖磚——街道、等高線、衛星影像——是從伺服器抓回來的圖片,跟定位一點關係都沒有。沒有網路,你拿得到座標,但沒有底圖可以把座標畫上去,那正是灰色方塊的由來:少掉的是一張圖,不是一個位置。
沒訊號的時候,還是會出狀況的部分
- 冷啟動比較久,就像上面說的。出發前在空曠的地方給它一分鐘。
- 深谷、密林、隧道和車廂內部,都會擋掉或反射訊號。這跟行動通訊涵蓋率無關——在市區正中央一樣會發生,所以穿過高樓區的軌跡,有時候看起來會從房子裡面穿過去。
- Wi-Fi 定位——手機在室內靠附近的網路名稱推算你在哪裡的那一套——需要查資料庫。離線又在室內,你就只剩下衛星,等於幾乎什麼都不剩。
- 除非 App 事先把圖磚存起來,否則地圖是空白的。
在完全沒有訊號的地方記錄一趟路
對一個記錄工具來說,真正要緊的問題不是定位收不收得到——收得到——而是 App 把它放到哪裡去。把整趟路先堆在記憶體裡、結束後再一次上傳的 App,等於自己造了一個定位系統本身並不需要的網路依賴。連「過去的紀錄清單」都要從伺服器讀的 App,造了第二個,而那一個才真的會痛:你騎進隧道,打開 App,你的所有紀錄看起來全不見了。
Roam 走的是另一條路,而且是結構上的。每一個定位點一收到就立刻寫進手機裡的資料庫,和這趟路當下的累計數字在同一個交易裡落地,所以不存在「已經騎完的一公里只活在記憶體裡」這種空窗。列出你所有紀錄的那個畫面,讀的就是同一個本機資料庫,而且沒有別的地方可讀——專案裡有一道建置關卡,會把整個功能掃過一遍找網路相關的符號,只要出現一個就讓建置失敗。會有這道關卡,正是因為這個 App 早期的版本真的從伺服器讀清單,也真的做出了上面說的那種「在隧道裡打開,看到一片空的清單」。
老實說有一個例外,就是地圖的底圖影像,它跟任何地圖一樣,是從圖磚伺服器抓回來的。沒有網路,你的軌跡線照樣畫得出來、算得出來、存得下來,只是線後面的街道可能不會出現。那是世界的圖片沒到,不是你的紀錄不見了。
常見問題
飛航模式下 GPS 還能用嗎?
可以。飛航模式關掉的是發射端——行動網路,預設還有 Wi-Fi 和藍牙——而 GNSS 接收是被動的,不受影響。在 iOS 上,定位服務是另一個獨立的開關,不會被飛航模式關掉。你會遇到的是第一次定位比較慢,因為輔助式 GNSS 沒辦法下載軌道資料,另外就是沒有地圖圖磚。
GPS 會吃行動數據嗎?
定位本身一點都不吃。輔助式 GNSS 會下載幾 KB 的軌道資料來加快第一次定位,而地圖圖磚則可能吃掉非常多流量——但那是地圖,不是定位。
沒訊號的時候,手機為什麼說「無法取得位置」?
多半是冷啟動還沒跑完,或者你所在的地方根本看不到天空。走到室外、站著別動、給它一分鐘。如果某個 App 給你的是一個空畫面,而不是一個慢畫面,那它在等的八成是伺服器,不是衛星。
出國健行可以不開漫遊就記錄嗎?
可以。把手機切到飛航模式,照常記錄就好——定位不花錢,也不經過網路。唯一會受影響的是需要抓圖磚的地圖,所以出發前先把想要的離線地圖下載好,或者接受一條畫在空白背景上的軌跡線。
一個不會把這趟弄丟的記錄 App
Roam 每收到一個定位點就立刻寫進手機,和當下的累計數字在同一個交易裡落地;訊號斷掉的那一段就標成斷的,不拿一條直線糊過去;爬升讀的是氣壓計,不是 GPS 高度。沒有帳號、不用登入、不做同步。完整記錄一趟、看它、回放它,都是免費的。