智慧型手機中的 GNSS 定位高程
現代智慧型手機中多內建 GNSS 定位, 定位結果為三維座標,一般以經緯度及高程表示。 但高程從計算的方式不同,有不同高程, 常用的有 正高 、 橢球高 、 正常高 。 手機的因為是以 GNSS 定位,一般是橢球高, 需要經高程現代化,以大地起伏模型改正為正高。
android 系統中使用 gnss 定位
由於 gnss 的衛星已完善, 只要有接收儀在空曠處就能用 gnss 定位。 現代智慧型手機多能夠接收美國的 gps 的信號, 使用 gps 定位。
手機的 gps 定位功能也被廣泛應用在不同的應用程式中: 例如 android 上的 google map 可以由 gps 定位, 將使用者所在位置標示在地圖中, 供使者用在地圖上確認與周遭地物的相對位置。 facebook 則可以由 gps 定位, 讓使用者在地標上 打卡 ,標記到此一遊。
但一般 app 多是直接解析定位結果為地標或地圖上的位置, 而不會顯示詳細的 gps 座標資訊; 所以要另外裝專門顯示詳細 gps 定位座標的 app, 我裝了課程中史天元老師推薦的開源軟體 gps test 與免費軟體 gps status 。
正高、橢球高與大地起伏
gps 定位的結果是橢球高,但橢球高是沒有物理意義的, 因為小區域內的重力與橢球高無關,而是與正高的方向垂直, 也就是在橢球高較高處,水不一定會往橢球高低處流。 橢球高與正高間的差異為大地起伏, 橢球高減去大地起伏即為正高。
一般人不一定清楚橢球高與正高的差異, 也不清楚 gps 定位出來的高是什麼高, 所以很多 gps app 都會用內建的大地起伏網格, 將定位結果的橢球高轉換為一般人概念中的高, 也就是與重力方向垂直的高。
大地起伏可以由重力測量的結果計算, 因此,在全國進行重力測量, 計算出全國各地的大地起伏後, 就能由橢球高計算正高,稱為 高程現代化 。 國土測繪中心的網頁,有提供全台灣大地起伏的資料 , 只要輸入 twd97 經緯度座標,就會計算出該地的大地起伏, 供只能觀測橢球高的 gps 定位化算為正高。
app 測試
我測試了 gps test 與 gps status 二款 app 的定位, 二者都有選項供使用者調整是否使用大地起伏改正, 切換橢球高與正高,由此可以觀察正高與橢球高的差異。 再將二款 app 中測出的經緯度, 輸入國土測繪中心的網頁中,計算台灣標準的大地起伏, 與 app 中提供的大地起伏比較。
gps test
gps test 中可以正常切換是否使用 geoid, 我所測試地點在交通大學博愛校區正門和校區內的圓環中間, 時間是 2019-03-09T15:05。
截圖
測試結果
種類 | 數值 |
---|---|
經度 | 120°59′00.180″ |
緯度 | 24°47′53.652″ |
gps test 橢球高 | 27m |
gps test 正高 | 10m |
gps test 大地起伏 | 17m |
e-gnss 大地起伏 | 19.466m |
gps status
gps status 是另一款顯示 gps 定位結果的 app, 在高程可以選擇要用 wgs 橢球高,或是 msl 平均海水面高。 但我在我現在用的 unihertz atom 手機上運作不正常, 選擇 wgs 與 msl 顯示的高程均相同。 後來換成以前的紅米手機,切換 wgs 與 msl 就會有變化了。 所以我就用以前的紅米手機截圖。
這是在 2019-03-03T19-38 測的, 位置大概在新竹高中正門口外的馬路上。
截圖
測試結果
種類 | 數值 |
---|---|
經度 | 120°58.8360′ |
緯度 | 24°47.7200′ |
gps status 橢球高 | 42.5m |
gps status 正高 | 27.6m |
gps status 大地起伏 | 14.9m |
e-gnss 大地起伏 | 19.463 |
GPSTest (barbeuDev)
另外我還找到一個也叫 gps test 的 app, 開發者名字是掛 barbeuDev,他是 open source 的, 在高程方面是直接二種高,橢球高和正高。 但在我二台手機上使用都不正常, 顯示的橢球高和正高都一樣,所以不使用。
結論
我在室外觀測 gps 時,數值極不穩定, 就算我都沒有移動,在二三分鐘內 gps 的橢球高可能會有三公尺左右的變化。
而大地起伏是用現成的事先計算好的資料不會改變, 如果橢球高增加 3 公尺,因為大地起伏不變, 那正高也就增加 3 公尺。
而 app 內建的大地起伏, 看來 gps test 的較接近台灣官方的資料。 以現成資料計算的大地起伏, 本來就會依球諧級數的階數不同、內插的方式不同有差異。