はじめに
Android には Fused Location Provider(以下 FLP)という、GNSS(GPS)/ Wi-Fi / 携帯基地局などを統合して 位置情報 を取得できる API があります。
以前からこの API を使って自作の GPS ロガーアプリを運用していますが、ログの精度が安定しないと感じる場面があったため、過剰な位置情報更新を避けつつ、徒歩用途で実用的な設定を探る目的で簡単に検証しました。
本記事は 徒歩での利用を前提とした検証です。
なお、FLP 自体の技術解説は他記事に譲り、ここでは検証結果に絞ります。
検証環境
ハードウェア
| 種別 | 値 |
|---|---|
| 端末 | Pixel 7 |
| OS バージョン | Android 12 |
検証に使用したコード
検証用にシンプルなテストアプリを作成しました。
アプリ内で Priority と 取得間隔(Interval) を設定でき、取得した位置情報をアプリ内の SQLite に保存します。
また、Foreground Service として稼働させているため、画面OFFやバックグラウンド移行後も計測を継続します。
※ 端末の「強制停止」などを行った場合は停止します。
検証条件
屋外での挙動を見たかったため、東京駅〜鎌倉橋を徒歩で移動し、途中で 西側へ一度曲がるルートで検証しました。
日時は 2025/04/20 15:00〜、天気は 晴れです。
検証結果
Priority の比較
まずは Priority を以下で比較しました。
PRIORITY_BALANCED_POWER_ACCURACYPRIORITY_HIGH_ACCURACY
Interval は 30秒に固定しています。
可視化した HTML は以下です。
青が PRIORITY_BALANCED_POWER_ACCURACY、赤が PRIORITY_HIGH_ACCURACY です。
位置情報ログの点を丸で示し、それらを線で結んでいます。
観察としては、青(BALANCED)はログ点が少なく、曲がり角が軌跡に反映されていない結果となりました。
Interval の比較
次に Interval を変更した場合のログを比較しました。
Priority は PRIORITY_HIGH_ACCURACY に固定し、以下の Interval で記録しています。
- 30秒(赤)
- 20秒(緑)
- 10秒(ピンク)
- 5秒(オレンジ)
HTML は以下です。
30秒〜10秒は点の入り方がケースによってばらつきましたが、5秒ではログ点が明確に増え、結果として 移動の形状が追いやすい状態になりました。
まとめ
今回の条件(徒歩 + ビル街 + 晴れ)では、観察ベースで以下の設定が最も扱いやすい結果になりました。
- Priority:
PRIORITY_HIGH_ACCURACY - Interval: 5秒
今回は屋外・徒歩のみのため、今後は以下も追加で検証したいです。
- 屋内(駅構内など)
- 車・交通機関での移動
- Interval を上げても形状を維持できる条件の把握(省電力寄りの設定探索)


