microGに完全移行すると位置情報の即位が遅すぎる問題
なんで遅くなるの
普通,位置情報の即位はサーバーが命
位置情報って,衛星とやり取りしてるんでしょ? みたいなイメージを持っている人は少なくないだろうが,実態はかなり違う.
全然詳しくないので簡単に言えば,GAFAあたりのクソデカ企業が持つ,みんなのWi-FiとかBluetoothのデータとか,DocomoやSoftbankの基地局からの電波とかを使って位置情報を即位している.
頭のいい人が考えたこの測位方法はGoogle/Appleのサーバーが頼りなんですね~~
つまるところ,Googleの助けを断ると,クソデカデータを使えないので位置情報を割り出すのがバカほど遅い…ということになる.
microG開発陣も黙っちゃいない
そう,ちゃんとMozilla (FireFoxの開発元) のサーバーデータだったり,中国のテンセントかアリババあたりのサーバーはオープンで,結構繋げる (みたい,詳しくは知らない) .
これを利用していたりするっちゃするのだ.Unified Network Location Provider (UnifiedNlp) といって,いろんな方法で位置情報の即位を行う.
でも遅い
ここが日本だから? microGの開発陣が最近やる気を無くしているから? それとももっとはやく開発すべきことがあるから? 何一つ私には理由がわからないが,遅い.やっぱり遅いのだ.
Appleのサーバーに接続する方法は2018年に更新が止まっていて,それを使っても位置情報は取得できない.多分接続できなくなったんだと思う.
Mozillaのやつも最終更新は2022年だが,取得できない.中国のサーバーに接続するやつとか,Googleをやめた意味がなさすぎる.
俺はもう諦めた
ほぼすべてのUNlpを試したが,ムリ.唯一,自己完結型のUNlpもあるのだが,10から15秒かかる.う~~ん,UNlpはだめっぽい.
かといって,天気予報の現在地情報がずっとずれたままなのは勘弁.誤差 (Accuracy) が50000mなのにも関わらず数秒で即位したと思い込む.
あれ,衛星からずっと即位しとけばよくね?
そう.衛星から測位は無料だ.電池を食う,一から即位すると時間がかかる以外のデメリットがない.
ということは,ずっと位置情報割り出しとけばデメリットの一つは消える.そこで,出てくるのがこのアプリである.
位置情報記録マン
直訳するとこうなるが,位置情報をゴリッゴリに調べだして,ストレージにガリガリガリガリ記録していくアプリである.今は亡きZenlyの先駆けだと思ってくれたらいい.
多分,想定された使用用途としては登山している人の位置情報を定期的に緊急連絡先に送る → 遭難したときの救助活動が簡単,みたいなことだろう.正直そういう人も使った方が良いと思う.
最近はGoogleくんがいつでも位置情報を取得するアプリはだめ! とキレたせいでこういうアプリもそんなにないんじゃないか?
なんか疑似ロケーションアプリ (mock location app) として設定できる
P○kem○n G○とか,Drag○nQuestWalkとかで位置偽装する人がよく使う機能.なんで対応してるんだろう? よくわからないけれども,これを使う.
注意
ちょっと日本語訳がガバってるので英語表記にした方が良い.近い内に翻訳に協力するつもり.
例えば
のin minutesが毎分という意味に捉えられていて日本語訳が「毎分どのくらい自動送信するか」みたいな翻訳になっていたりする.これはいただけない.
GPS Loggerでの設定
ホーム画面でSTART LOGGINGを押す.
左上のハンバーガーメニュー (≡) から,
General Options > Start on bootup → ON
Performance > Keep GPS on between fixes → ON
Performance > Logging Interval → 好きな秒数,早くすればするほど電池消費がアップ! その代わり,現在地の更新頻度も上がる.0だと絶え間なく記録する.
これだけでもとりあえずは使える.ただし電池消費がエグいことになるので,TaskerかMacrodroidを用いる.Automateは使ったことないので知らん.
Tasker/Macrodroidの設定
Taskerの場合
zip / 7z をダウンロードして解凍後,全部importしたらOK.
どっちも私のGoogleドライブです.
あとは各々で頑張って調整してください.
設定としては,
マップを開いてるとき→GPSの更新間隔が2秒
マップを開いていなくて適当なWi-Fiに繋いでるとき→更新間隔が30分 (もっと長くしてもいい)
繋いでないとき→更新間隔5分 (もっと長くしてもいい)
「Wi-Fiに繋いでいる→家にいる→頻繁に更新しなくてよい」という考えのもと更新間隔をなが~~くしています.
いちいち設定したい/Macrodroidの場合
ちょっと説明がめんどいので,簡単にいうとtasks/actionsのsend intentで
actionの欄にcom.mendhak.gpslogger.TASKER_COMMAND
packageの欄にcom.mendhak.gpslogger
classの欄にcom.mendhak.gpslogger.TaskerReceiverをそれぞれ入力
TargetをBloadcast (Receiver)
に設定し,Extraに
Taskerの場合,settimebeforelogging:<記録間隔:秒>
Macrodroidの場合は,settimebeforeloggingをparameter name,記録間隔(秒)をvalueに入れる
開発者オプションでの設定
多分下の方にSelect mock location app (疑似ロケーションアプリの選択) があるので,それでGPSLoggerを選択する.