ROADSTOCK

アプリ概要

ROADSTOCKは、車・オートバイのツーリングの記録を残すためのアプリです。GPSログに加えて、走った道路や立ち寄った場所の情報、給油やメンテナンスの記録などを保存すること、そして、これらをできるだけ自動的に残すことを目的としています。特に「道」の記憶を残すことを重視しています。

ROADSTOCK_ja_480_2

もう一つの目的は、ツーリングや道路の記憶を残すことを中心として、給油記録やメンテナンス記録もまとめて1つのアプリで管理できるようにすることです。そのため、燃費管理もしくはメンテナンス管理のために使うこともできます。

なお、ROADSTOCKは車・バイクに特化したアプリです。自転車やランニングのログは取得できません(モーションセンサーで除外しています)。

ROADSTOCKはGPSとモーションセンサーを利用します。また、道路名取得のため、頻繁にデータ通信をします。そのため、常時給電状態での利用を強く推奨します。

コンセプト(開発のきっかけ)

iPhoneがない時代のツーリングの記録は、ジャケットのポケットやタンクバッグに入れた小さなメモ帳に、停まるたびに鉛筆で書き込んでいたものです。ROADSTOCKは、その作業をなるべく自動的に代行します。途中で休憩したり、食事をとったりするために停止すると、その情報を残します。走行した道路の情報は、Webサービスを介して道路名を取得して、自動的に保存します(但しOpen Street Mapに情報がある場合に限られます)。区間ごとの走行距離や時間も、GPS情報に基づいて記録します。

メモと鉛筆の場合、雨が降ったり、時間に追われたりすると途端に空白だらけになったものですが(そのような残念な経験こそが、ROADSTOCKの開発に至った大きな理由です)、ROADSTOCKを使えば、基本的にはほとんどのツーリング情報を勝手にiPhoneに記録します。

とはいえ、ある場所で停まったという記録は残っても、何のために停まったかは当の本人にしかわかりません。道路名の自動取得は完璧ではありません(林道や農道は情報を取得できませんし、高速道路と一般道が重なったようなところも苦手です。そもそも通信圏外では取得できません)。これらはツーリングが終わってから、行程を振り返りながらゆっくり書き込んでください。面倒に思われるでしょうか。それでも、都度手書きするよりはよほど楽です。ROADSTOCKに残っている大雑把な情報を手直しするだけでいいのですから。

機能

車両管理

  • 自動車・二輪車を複数台登録可能(現行バージョンでは5台まで)
  • 各車両のサービスデータを任意に設定可能(タイヤ空気圧や各種オイル量、締付けトルク等のメモとして使用することを意図しています。サンプルは提供していますが、これはあくまでサンプルです。貴方にとって必要な情報を自分で書き込んでください)

ツーリング記録(GPSログ+情報)取得

  • GPSログを取得します
  • 何らかの理由で所定の時間(デフォルトでは3分)停止した場合は、停止イベントを自動的に追加します
    • 再び走り出した場合は、停止状態から走行状態に戻り、ログ取得を再開します
    • 各イベント毎に名前設定、写真追加、アイコン設定などができます
    • モーションセンサーにより走行状態かどうかを判断するため、車両から降りて歩いた場合等はログを取得せず、停止扱いとなります
    • 停止後に歩き回った際、それはログ取得対象外となります
    • エンジンをかけたまま仮眠をした場合等は乗車状態と判断する場合があります
  • イベントは手入力も可能です。休憩、給油、メンテナンス、写真等の情報を残すことを想定しています
  •  位置情報を用いて、実際に走行した道路名を取得します
    • 道路名とGPSログはリンクしていますので、道路名タップ→地図上の表示、またはその逆が可能です
    • Web APIを用いて、適当な間隔(時間または距離)をおいて道路名を取得するため、道路が変わるタイミングは不正確です(実際の道路変更点より数秒後の地点になることが多いです)
    • 【日本国内限定】道路名の取得には、Open Street Mapの情報を用いています。Open Street Mapに無い場合は取得できません
    • 例えば高速道路と一般道が重なる場合など、正確な値は取得できません
    • データ通信圏外となった場合は道路名を取得できません
    • 道路名、道路が切り替わるタイミングは事後編集できます
    • 過去に走ったことがある道を再度通過する場合、ROADSTOCKに記録済みの位置情報があれば、それを優先利用します。何度も通っている場合は、直近の情報を利用します。即ち、道路名をWebサービスから取得できない場合でも、過去に道路名を手入力してあれば、それを利用して道路名を取得できます
  • 区間ごとの走行距離・時間を記録します。平均速度が一定以上の場合は高速道路走行と判断します
  • 距離は基本的にGPSの値を使用しますが、オドメーター値を手入力することも可能です。手入力した場合はそちらを優先します
  • ツーリング全体の所要時間、走行時間(停止時間除外)、平均速度、最高標高、燃費、費用等をサマリー情報として表示します
  • 特定のイベントに関係ない費用(道路代など)を記録できます
  • 各イベントに付加した写真を一覧表示できます

道路の管理

  • GPSログ(経路)を道路毎に分割し、道路名を設定できます
  • 道路毎に写真やメモを貼付できます
  • 道路名は自動取得しますが、精度が良くないこと、全ての道路名を取得できるわけではないこと、そもそも通信圏外では取得できないことから、編集機能を用意しています
  • 保存済みの道路を分割/結合できます

Favorite(★)表示

  • をつけたツーリングだけを一覧表示/地図表示
  • をつけた道だけを一覧表示/地図表示

給油記録管理

  • ツーリングとは関係なく、通常の給油記録管理(燃費計算)をすることができます
  • ツーリング時と通常時(非ツーリング時)の情報をまとめて管理します
  • 機能的には通常の給油管理アプリが普通に持っている機能と同等ですが、それに特化したアプリではないので、最低限の機能しかありません。例えば、給油間の走行情報(エアコンをつけていたか、何名乗車だったか、高速道路メインだったか等)を保持する機能はありません。メモを残すことはできるのでそれで代替してください

メンテナンス記録

  • ツーリングとは関係なく、通常のメンテナンス記録を管理できます
  • ツーリング時と通常時(非ツーリング時)の情報をまとめて管理します
  • 予定(ToDo)を登録しておき、実施時に実績化することができます。ツーリング中に不具合(異音がする、フィーリングが悪いなど)に気付いたものの、すぐに対処できない場合等のメモとして利用できます
  • 項目ごとにフィルタリングすることができます(数があまりにも多くなった場合に、エンジンオイル交換の間隔だけ見たい時などに利用することを想定しています)
  • オイル交換等、定期的に実施するメンテナンス項目等をリマインドする機能はありません
  • メンテナンス項目は全て手入力ですが、コピーして再利用することは可能です(メンテナンス管理に特化したアプリでは、項目を予め用意しているものもありますが、コピー再利用で充分だと考えています)

出費管理

  • 車両毎の出費情報(税金、保険など)を管理できます
  • リマインダーのような機能はありませんが、過去の実績をコピーして再利用することはできます

エクスポート/シェア

  • GPSログをGPXファイルとしてエクスポートできます
  • GPSログではなく、ツーリング画面(ログを反映した地図およびタイムライン)をTwitter, Facebook, メールに送ることができます。タイムラインはテキストとして送ることもできます
  • 各種イベント単体でシェアすることもできます

インポート

  • GPX形式のGPSログをインポートすることができます。インポートにあたっては、ポイント毎の速度等をもとにして自動的にイベントを挿入して区間に分割します。但し、GPXログにはモーションセンサー情報が無いため、徒歩移動なども含まれてしまうことから、正確ではありません
  • インポートしたログに道路情報を付加することができます(通常のログに再付加することもできますが、あまり意味はないでしょう)。なお、この機能はWeb APIの制約により、ツーリング丸ごと実施することはできません。区間ごとの実施になります。また、短時間に何度も使うとWeb APIの制約により失敗することがあります

使い方(詳細)

オンラインマニュアルを参照ください。

アップデート情報(Ver 1.1.x)

Ver 1.0.xで発生していた以下の問題を修正しました。

  • 道路名を取得できない
  • iOS11以上の場合、ロギングが途中で止まってしまうことがある

また、以下の対応を実施しました。

  • イベントのアイコンに温泉マークを追加しました。
  • iPhone X/XS/XS Max/XRに対応しました(今更)
  • その他細かい不具合を修正しました。

道路名を取得できない問題

2018年夏頃から、道路名を取得できない問題が出ていました。原因は、Google Maps APIのポリシー変更によるものです。Google Geocoding APIは従来無料でしたが、それが有償化され、地点情報の取得方式が変わりました。ROADSTOCK Ver 1.0.xは、新しい指示方式に対応できていないためエラーとなり、道路名を取得できませんでした。

【修正方針】
有償APIは従量制で、概算ですが10回程度の日帰りツーリングを処理すると無償範囲を超えて有償となります。これは利用者ごとではなく、全ROADSTOCK利用者の合計です。その金額は、現在のROADSTOCKのアプリ収入(広告収入のみ)から考えると全くペイしませんので、Google Geocoding APIを使うという選択肢はありません。その代替として、Open Street Mapを利用するように修正しました。ただし、取得できる道路名は従来より精度が落ちます。取得できないよりは良いと思いますので、その方針で修正しました。

なお、Google Geocoding APIでは県道より上位のものしか取得できませんでしたが、Open Street Mapを使うことで、市道や農道、林道等の道路名も取得できる可能性はあります。ただし、あくまで有志の方が道路名を登録してくれている場合に限ります。

【精度が落ちる例】
Open Street Mapは有志により作られているものであり、登録者の癖が反映されますし、各種名称の統一化が徹底できていません。また、道路の正式名より通称が優先されている傾向があります。したがって、下記のような事象が発生します。これが期待に沿わない場合、自分でOpen Street Mapの活動に参加して直すしかありません。

・県道xx号、といった表示(整理番号)が「xx線」という路線名や「xx街道」のように通称となることが多い。
・同じ道なのに、区間により「xx街道」「xx線」「県道xx号(xx街道)」のような別表現が混在する。

なお、ROADSTOCKは一度通った座標を再利用するため、意図した道路名を手修正でセットしておけば、同じ道を再度通る際はおかしな道路名にはなりません。

【補足】
これは日本限定の現象です。日本以外では元々Google Geocoding APIではなく、AppleのGeocoderを利用しています。理由は、Apple Geocoderが返す日本の道路名が著しく不正確なためです。Appleの対応が変わり、正確な道路名を返すようになれば、Apple Geocoderに変更することで正確な道路名を取得できるようになるかもしれませんが、それがいつになるのかは誰もわかりません。

米国以外の他国では同じく不正確という情報も見たことがありますが、実際にテストすることができないため、それ以上追求していません。

GPSロギングが止まる問題

iOS11以降で位置情報取得に関するポリシーが変わりました。おそらくそれが原因で、バックグラウンド動作中にログ取得処理が停止する問題が発生していましたが、iOS11以降の作法に修正しました。

新規インストールの場合、初回のツーリング記録取得時に表示されるダイアログで「常に許可」を選択すれば、ROADSTOCKを起動しているかどうかにかかわらず常時ログ取得となります。「使用中のみ許可」を選択すると、ROADSTOCKをバックグラウンドで動作させている場合、いつの間にかログ取得が停止してしまうことがあります。

以前から利用していてアップデートした場合、この確認画面は出ません(アプリから出すことができません)。「設定→プライバシー→位置情報サービス→ROADSTOCK」と選択し、「使用中のみ許可」になっている場合は「常に許可」を選択してください。