なんとなく

誰得感満載な記事が多いかも。Mono関係とLinuxのサーバ関係、レビューとか。

SW Mapsでジオイドファイルを使用する

はじめに

公図を使って土地の境界をざっくりと把握したくてスマホにあるGPSを使おうとしたら精度が足りなくイライラした結果、高精度なGNSSバイスを購入してしまったのでそれを使いAndroidスマホでいろいろ遊ぼうと思っている。

どうやらAndroidでは標高を一手間加えないと得られない。 特にSW Mapsという地図アプリを使っているので、その方法をメモっておくことにする。

Androidでは楕円体高からジオイド高を引いて標高を求める

Androidでは楕円体高が得られる。 https://developer.android.com/reference/android/location/Location#getAltitude()

そのためAndroidアプリであるSW MapsではGTX(NOAA Vertical Datum)を使って標高を算出しているようだ。

How do I load a Geoid File? SW Maps uses binary GTX Geoid files. The Geoid file must contain the geoid height from the WGS84 ellipsoid, in meters.*1

データの準備と変換

ジオイドモデルは国土地理院から提供されている。

ジオイド・モデルの提供|基盤地図情報ダウンロードサービス

ダウンロードしてそのデータを利用することはせず、 Windows PCではGISソフトとしてQGISを利用しており、QGISにおいてはそのデータをGEOTIFFの形で利用しているようなのでそれをgtxに変換する。 変換においてもQGISにはGDAL*2が内包されているのでそれを使う形になる。

そのTIFFC:\Program Files\QGIS 3.28.14\share\proj\jp_gsi_gsigeo2011.tif にある。バージョン等は適宜読み替えてほしい。

エクスプローラーで当該作業フォルダに移動し、エクスプローラーの作業フォルダのパスが表示されているところでcmdと打ち、コマンドプロンプトを表示させる。

"c:\Program Files\QGIS 3.28.14\bin\gdal_translate.exe" -ot Float32 jp_gsi_gsigeo2011.tif jp_gsi_gsigeo2011.gtx

とgdal_translateを実行することによってGTXファイルに変換できる。

SW Mapsでの設定

変換できたのでjp_gsi_gsigeo2011.gtxをGoogleドライブなどを使ってAndroidに移動させ、

/storage/emulated/0/Android/media/np.com.softwel.swmaps/Geoids/jp_gsi_gsigeo2011.gtx

に置く。

SW MapsではSettingsから Geoids でGeoid Filesからjp_gsi_gsigeo2011.gtxを選択する。