JogNote。スマホアプリでランニング中のGPSログを記録したり、SNS機能があったりして気軽に使えて2015年からお世話になっていましたが、2020年3月をもってサービス終了となるアナウンス[3]がありました。
終了にあたり、GPSログやラップログをエクスポートして、他のサービスにインポートできるようにしてくれたようですが、具体的には色々と制約があるようです。 単に別のアプリに移行するだけなら機能を選べば良いので簡単ですが、JogNoteで記録してきたGPSログやラップタイムログを廃棄したくないし、できれば別のアプリにそっくりインポートしてシームレスに参照したいです。
また、私の場合はレース記録を公開する目的も兼ねています。 今までもブログの記事や、レースの記録ページからJogNoteの当該ページにリンクを貼って、過去のレース結果やラップなどの記録を探し易くして使っていました。 このため、そのアプリの登録メンバーでなくゲスト訪問者にも、公開することができるものでないと困ります。
JogNoteからインポート可能なアプリとして、有名なところでいうと、
- Runtastic[5]
- Strava[6]
などがあります。 しかしいずれも(おそらく)ゲスト公開ができません。 まあ、ゲスト公開するとサーバー負荷がどっと上がってしまうので、運営上は賢明な選択なのかもしれませんが、私的にはこれらはパスです。
次に考えたのは、現在使っている
- Garmin Connect
にインポートする方策です。
しかし残念ながら、GPSデータ(.gpx形式ファイル)だけをインポートしても、json形式ファイルに記録されているラップタイムデータはインポートされません。。 いやはや困った。。
別の方法として、新たなアプリにシームレスに移行するのをあきらめて、
- JogNote難民救済サイト[7]
- JoggFIle[8]
へ期待を寄せる。。 というのも一手でしょう。
しかし、元々JogNoteは心拍計データをラップタイムデータやGPSデータと紐づけて表示できませんでしたし、これから準備するサイトがどんなものになるのか、ある程度の想像と期待はできますがそれ一本に絞るのも勇気が要ります。
ということで、現時点で私が最善と考えて取った方法は、以下のような手順でGarmin Connectに取り込むものです。 現時点で、同日に2回以上のワークアウトがある場合は失敗して、.gpxファイルを1個づつ配置して処理しないと生成できない時があるほか、まだまだ不完全かつバグも潜在しています。
ようやくローカルPC上で動作するVB.net版ができました。 phpと同じような動作になるので、使いやすいほうをご使用ください。
VB.net版(Windows専用) [10]
- JogNoteのエクスポートデータのうち、「.json」形式のラップログデータと、「.gpx」データを、「.tcx」テンプレートファイルに埋め込むプログラムを使用し、新たな「.tcx」ファイルを生成する。 その際に、.tcx形式のテンプレートファイルを使用する。
- プロトタイプVB.netプロジェクト
- v0.33 2020-4-12 エラーを抑制
GpxConvert_VB-0.33.zip[11]
- v0.32 2020-4-11 GPXファイルが無い時のエラーを抑制
- v0.31 2020-4-5 エンバグ修正
まだ完全ではありませんが、エラー停止はかなり減ったと思います。
GPSファイルが存在しない場合、.tcxファイルは \tcx_w\noGpx フォルダ内に生成されます。
- v0.30 2020-4-5 GPSファイルが存在しない場合もTCXファイル変換を実行し出力するよう改善
- v0.20 JogNoteのワークアウト総カロリーを各LAP距離で分割し反映
- v0.13 ラップデータが1つ以下の場合の不具合を修正
ver0.12 エラー時の例外処理を追加しました。
ver0.1 ダウンロードを、GitHubへのリンクに変更しました。
- GitHubリポジトリ:https://github.com/naao/GpxConvert[12]
- zipファイルを解凍し、できた「json」フォルダ内にJogNoteのエクスポートデータの「.json」形式のラップログデータを。「gpx」フォルダ内にjsonファイルに紐づけられた「.gpx」データをコピーします。gpxファイル名はjsonファイルの中の最後のほうに書かれています。 一度に処理するファイル数は、まあ20個程度までに抑えておくのが無難でしょう。
- 「GpxConvert/bin/Debug」 配下のアプリケーション「GpxConvert.exe」を起動する。 もし起動に失敗したり、動作中に異常終了する場合は、PCに VisualStudio.net 2019 をインストールして、ご自身でアプリケーションをビルドしてください。
- アプリケーションの「変換実行」をクリック
- 「GpxConvert/bin/Debug」 配下の「tcx_w」フォルダ内に出来た「.tcx」ファイルを、Garmin Connectにインポートする。(複数ファイル一括インポート可能)
- STRAVAにもインポートできることを確認しました。
- 各記録を確認し、1件づつ細かな編集を行う。
動作には、phpが動作するWEBサーバーやPCが必要です。 説明は、下のスクリプトの中にコメントで書いてあります。 意味が分からない人は、サーバーサイドスクリプトのphp言語がわかる友人に相談してください。 なお、いつものお約束ですが、このスクリプトを使用して生じたいかなる不具合や損害にも、当方は保障などの対応は致しません、自己責任でお願いします。
-
| | 新案 | 新案
- JogNoteのエクスポートデータのうち、「.gpx」データと、「.jason」形式のラップログデータを、上記「.tcx」データに埋め込むスクリプトを使用し、新たな「.tcx」ファイルを生成する。 その際に、.tcx形式のテンプレートファイルを使用する。
- v0.20 JogNoteのワークアウト総カロリーを各LAP距離で分割し反映
- 出来た「.tcx」ファイルを、Garmin Connectにインポートする。(複数ファイル一括インポート可能)
- 各記録を確認し、1件づつ細かな編集を行う。
|
+
| | 旧案 | 旧案
- JogNoteのエクスポートデータのうち、「.gpx」データを一括で、Garmin Connectに一旦インポートする。
- Garmin Connectから、「.tcx」データとしてラン記録[16]1件ごとにエクスポートする。
- 「.tcx」ファイル名を、元の「.gpx」だったファイル名に変更する。拡張子は「.tcx」とする。
- JogNoteのエクスポートデータのうち、「.jason」形式のラップログデータを、上記「.tcx」データに埋め込むスクリプトを作成し、新たな「.tcx」ファイルを生成する。
- この「.tcx」ファイルを、再度Garmin Connectにインポートする。
- 各記録を確認し、1件づつ細かな編集を行う。
いやあ、XMLファイルの「tcx」と、jsonファイルをそのまま合体できるわけもなく、面倒くさいですねえ・・ とか思いつつ、3連休を利用して、何とかある程度の完成度のものができました!
|
上記インポートしたもののうち、以下の2レースは公開設定にしてあります。 他のレースも仮インポートしてますがまだラップタイムデータの合体をしていないものが多数です。
将来的に、VB.netで作り変えて、JogNoteのデータからGarminの.tcxファイルを直接生成するプログラムを作ろうと考えています。 そうすれば一旦Garmin Connectにインポートしてから1件ずつエクスポートしてファイル名を書き換えて・・という面倒な作業が無くなり作業時間が大幅に短縮できる見込みです。 JogNoteがまだ使えている3月中には何とか作りたいと思います。
→ (2020/1/22追記)gpxファイルには、標高や距離が埋め込まれているわけではないのですね。。 残念。 tcxに変換したとしても、標高などは入らないかも・・? まずは Time、LatitudeDegreesとLongitudeDegrees のみを埋め込んでみてテストします。 今後のテスト次第では、断念もあり得ます、ご容赦を。。
→ (2020/1/24追記) まずはphpスクリプトで、.tcxファイルを直接生成できるようになりました! このページ中ほどのリンクからスクリプトとテンプレートファイルをダウンロードして使用してください。
→ (2020/2/4追記) とりあえずプロトタイプでVB.net版ができました! このページ中ほどのリンクからプロジェクトファイルをダウンロードして使用ください。
以上、参考になれば幸いです。