GPX ファイルには、向いていた方向も記録されている?
記録したハイキングを地図で見ると、進んだ方向は一目瞭然に見えます——線はまず北へ向かい、尾根に沿って東へ曲がっている、というように。この「向き」の感覚が、各地点に添えられたコンパスの読み取り値としてファイルのどこかに入っているのだろうと思ってしまうのも無理はありません。ところが GPX ファイルを開いて探してみても、そんな項目はどこにもありません。向いていた方向も、進んでいた方向でさえも、GPX の一点が持つように作られたものではないのです。
まず結論
入っていません。GPX の軌跡の一点が持つのは、緯度、経度、たいていは標高、そしてタイムスタンプだけです。コンパスの向きを表す項目も、向いていた方向を表す項目も、進んでいた方向を表す項目もありません。GPX の軌跡を見て感じる「向き」は、点そのものに書き込まれた何かではなく、ある点と次の点を見比べることで初めて分かるものです。
GPX の一点に実際に入っているもの
GPX のスキーマは、軌跡の一点が持つ項目を小さく固定した集合に絞っています。どこにいたか、どれくらいの高さだったか、いつ記録されたか——それだけです。地図に線を描くのに必要なのは、意図的にそれだけしかありません。コンパスの向き、つまりその瞬間にスマートフォンがどちらを向いていたかは、まったく別の測定値で、別のセンサーから来るものであり、フォーマットにはそもそも置き場所がありません。ウェイポイントも同じように限られていて、名前、位置、あれば短い説明文までで、向きを表す項目はありません。
方向は割り出せる——ただし記録はされていない
地図アプリが進行方向を示す矢印を描けるのは、アプリ自身が計算しているからです。ある点と、その次の点を取り出し、その二点のあいだの方位を計算する。これを軌跡全体で繰り返すと、それぞれの区間でどちらへ進んでいたかが、順序付けられた座標のリストからあとになって組み立て直されます。この計算結果はファイルのどこにも保存されておらず、軌跡を開くソフトウェアが、開くたびに計算し直しているだけです。
この計算された方位は、向いていた方向とも同じではありません。数歩だけ後ろ向きに歩いたり、立ち止まって横の景色を眺めたりしても、連続する二点のあいだの方向は、あくまで実際に移動した経路に沿ったものを指すだけで、その瞬間にスマートフォンや自分がどちらを向いていたかは何も語りません。コンパスの向きと移動方向は別の測定値で、前を向いてまっすぐ歩いているときだけ、たまたま一致するのです。
なぜこの仕組みになっているのか
GPX はルートを小さく予測しやすいファイルとしてアプリ間で受け渡すために存在していて、移動方向のためにわざわざ専用の項目を持たせる必要はありません。矢印がほしいアプリは、ファイルにすでにある座標から自分で計算できるので、それを別途保存するのは、すべての点を膨らませるだけの重複データになってしまいます。コンパスの向きはさらに事情が違い、ルートの形とは無関係に絶えず変化し、スマートフォンの持ち方でぶれ、その瞬間ごとの向きを反映するだけで、歩いた経路の形とはほとんど関係がありません。これを含めないことで、GPX は「どこへ行ったかを記録する」というひとつの仕事に専念でき、スマートフォンのセンサーが偶然報告した値をすべて記録するログにならずに済んでいます。
つまずきやすいところ
- 生の GPX ファイルのどこかに「矢印」や「向き」の項目があるはずだと思い込む——そんな項目はありません。アプリが表示する矢印は、連続する点から計算されたものであり、項目として読み出されたものではありません。
- 二点間の方向が、その瞬間にスマートフォンが向いていた方角を表していると思い込む——実際に表しているのは位置が移動した方向だけで、立ち止まったり、周りを見回したり、引き返したりすれば、それとは一致しなくなります。
- 一点だけを取り出して見て、そこに何らかの向きの情報があるはずだと期待する——単独の点はただの位置であり、方向は二点以上が順番に並んで初めて意味を持つ関係です。
- コンパスが正しく働いていない端末では使える軌跡が記録できないはずだと考える——移動方向は GPS の位置の並びから来るものでコンパスは関係ないので、軌跡自体には影響しません。
TrailCam の場合
TrailCam は iPhone で GPS を使ってルートを記録し、撮った場所ちょうどに動画クリップ、写真、音声メモを紐づけます。保存したルートを再生すると、何をどこで見つけたかが、下を流れる高度プロフィールとともに再現されます。そのルートを GPX 1.1 または CSV として——一本の記録単位でも、履歴全体でも——書き出すときに運ばれるのは、GPX の一点がもともと持っている位置・標高・時刻という座標だけで、それが Strava や Garmin Connect、Komoot でそのまま開ける理由でもあります。書き出しは任意の TrailCam Pro に含まれる機能で、アプリ自体のダウンロードは無料です。
よくある質問
- GPX に向きや方位を表す項目を持たせられるバージョンはありますか?
- 軌跡の一点についてのコアな GPX スキーマには、そうした項目は定義されていません。ソフトウェアによっては独自の目的で標準外の追加項目を持たせることもありますが、それは基本フォーマットの外側の話で、別のアプリがそれを読み取ったり保持したりする保証はありません。
- 方向が記録されていないなら、アプリはどうやって動く矢印を表示しているのですか?
- あとから計算しているだけです。各点をその一つ前の点と比べて、そのあいだの方位を割り出し、軌跡を表示するたびにその計算をやり直しています。ファイルから読み取っているわけではありません。
- GPX の二点間の方向は、コンパスの向きと同じものですか?
- 同じではありません。片方は記録された二点のあいだで位置が移動した方向で、もう片方はある瞬間にスマートフォンが物理的にどちらを向いていたかです。まっすぐ前を向いて歩いているときはだいたい一致しますが、それ以外の場面ではまったく食い違うこともあります。
自分のルートを記録する
TrailCam は iPhone 用の GPS ルート記録アプリです。動画・写真・音声メモを撮ったその地点に紐づけて保存し、GPX 1.1 または CSV で書き出せます。ダウンロードは無料です。