t2g3 Project - GPSデータからGoogle Maps用データ作成

■動機

trk2googlemaps という公開当初は大変高機能&便利な旅アルバム作成ソフトがあり、バイクツーリング・旅の軌跡や写真アルバムの作成に大変お世話になっていました。(個人情報満載なので非公開)
trk2googlemapsを実際にアルバム作成として使い始めたのは2006/9/16、現時点(2021.5)で15年ほど使用させていただいています。

trk2googlemapsが出力したHTMLだと軌跡と写真データが羅列されるだけの味気ないものなのですが、そこにScript(当時はPerl)を作成してHTMLを変換、レイアウトを若干変更、コメントを自由に付けられるようにして、ギリギリ人様に見ていただけるアルバム作成ツールとしていました。

当時としては非常に高機能なtracking viewerだったのですが、Googleの仕様変更などが続いて次第に使える機能が減っていき、ついには一番肝心のGoogle Mapが表示できなくなってしまいました(trk2googlemapsがAPI v2だったため)。
そこでScriptを使ってAPI呼び出しをv2→v3に変換し、なんとか食いつないでいました。

しかし、この変態的なやり方を続けていても新たな限界が出てきそうですし、trk2googlemapsでの作成作業もコマンド一発!と言うにはほど遠い、マウスでふらふらといくつかのステップを踏まなければならず、、、一念発起して同様のものを作成することにしました。(いわゆる車輪の再発明)

現時点では作成作業が(少し)大変なだけなので、自由時間を食い潰してまでも作り直す必要は、、という自主的ブレーキはあるものの、
・自由に拡張できる
・関連の技術を学べる
・コマンド一発で作成できるのは嬉しい
ということでダメ元で作ってみることにしました。

■目的

trk2googlemaps と同等機能+αを考えていますが、ギリギリ人様に見せられるアルバム作成ツールを目指します。

似たようなアプリはすでにあるようで、山登りをしている人であれば YAMAP などを使用されているのではないかと思います。
YAMAPを使えば、trk2googlemaps同等の機能はもちろん、SNS的な機能もあり、遙かに高機能であるためわざわざ自作する必要性はほぼゼロです。。
これが15年ほど前なら話題になったかもしれませんが、一念発起するのが遅すぎた。

t2g3にあってYAMAPに無い機能:
・見ている写真がどの位置で撮影されたのか地図上で簡単にわかる(スマホ版YAMAPだとできるけど)
・有料会員にならないと写真は50枚まで、と言う制限が無い
・他人のGPXからも作成できるので、どんな登山をしたのか詳細を調べられる(どこでどれだけ休憩したとか)
・費用計算・表示ができる
・統計的な情報表示。すべてのデータ項目の表形式表示、ランキング表示ができる(歩行距離の長い順、消費カロリー順など色々)

欠点
・自前のWebサーバー、または同等のWebサーバーにデータをアップする必要あり(これが最大のネックだね)

■サンプル

■Download

t2g3-20240225.zip 永遠のβ版?

使用環境:Windows/Linuxで動作確認。Macでも動くと思う。
対応GPSフォーマット:GPX, NMEA

使用方法:

※わからないところはGoogle先生に★
※Windowsを前提に説明しています
※書いてみると説明は長いし、覚えなければならないことはやや多いし、キーボードだけですべて操作できると思うけど、写真とコメントの対応が面倒なので、慣れたとしてもこのツールはあまりお勧めしないかな(笑)
 何年も使っている私でさえ、表示したくない写真の選択をよく間違えます。。(これさえ改善できれば悪くないのだけど)
  →編集用の専用アプリを作成したのでかなり楽になった。使用している人がいれば公開しても良いけど。

セットアップ

日々のアルバムの作成

コメントファイルの書式 comment.txt

長いので別ページにしました

t2g3.pyのオプション

一番最初、すべて作り直す場合 t2g3.py *.gpx *.log *.jpg
写真のファイル名を表示したい場合 t2g3.py *.gpx *.log *.jpg -p
comment.txtだけを更新した場合 t2g3.py -l -c
comment.txtが更新されたら自動的に処理を開始したい場合 t2g3.py -l -c -w (詳細後述)
最新の地点データ(後述)をダウンロード・更新 t2g3.py -u
※他のオプションと同時利用可能
GPSデータ、地点データが更新された場合
※サムネイルの作成に一番時間がかかるのでその処理だけ省略。
t2g3.py *.gpx *.log *.jpg -n
写真が追加・変更された場合 最初からやり直してください
写真が追加・変更され、かつcomment.txtが編集済みの場合 comment.txtはバックアップを取り、
最初から作り直し、
comment.txtをマージしてください。

comment.txtの自動更新

comment.txt編集時、comment.txtの編集作業とt2g3.pyの実行を行ったり来たりするのは面倒です。そこで-wオプションを使用するとcomment.txtの編集とブラウザのリロードの操作のみで済むので楽になります。
t2g3.py -l -c -w
バッチファイルと組み合わせれば常に自動的に更新できるようになります。

■地点データ

地点データを集めています。
現在は山頂・峠データのみ。

[地点データ登録] こちらで地点データを入力してください。

もしすでにあるよ!っていう情報をお持ちの方、下記連絡先までお願いします。
1003山はすでに国土地理院から出ていますが、それ以外のデータは見つかりません。。

■FAQ

Q. 次のようなエラーが出た
UnicodeDecodeError: 'cp932' codec can't decode byte 0x9d in position 625: illegal multibyte sequence
A. gpxファイルに日本語文字が含められている場合に発生します。(GARMINのMapSourceで保存したときに発生)
エディターを使ってgpxファイルから関連の文字を削除してください。
(gpxファイルの前処理が必要かもしれないな。。)

■サポートなど

こちらの t2g3 Project会議室 を用意しました。
直接連絡されたい場合は、下記連絡先まで。

■統計データ

これまでのトラッキングデータを一覧で表示
サンプル
付属のt2g3out.pyを使えばできます。
が、本ソフトを使用する人が今のところいないので説明は省略。

■今後の予定

■進捗

trk2googlemaps同等の機能を実現するには色々とやらなければいけないのですが、Pythonを使うと比較的簡単にでき、順調に進んでいます。
今のところgpxデータからグラフ作成でき、ある程度の目処が立ったのでこのhomepageを立ち上げました。(2021.5.12)

2021.5.14 意外と進捗が良いので、α版レベルは数日でできそう
2021.5.15 Pythonのソースコードは現時点で1500行程度。そのくらいでtrk2googlemapsと同等(?)の機能が実現できるんだからPython恐るべし。
2021.5.16 とりあえずできた!まだ精度などに若干の問題はあるけど、α版としては十分。

2021.5.19
こういうプログラミングは楽しくてかなりいいレベルまで来ました。個人的にはもう少しで実用レベル。ただよくわからないのが、trk2googlemapsで作成した写真の緯度・経度と微妙に異なること。どういう計算しているんだろう。

2021.5.30
ようやくtrk2googlemapsとほぼ同等の機能が実現できました!さらに登山用に、コースタイムを与えればコースタイムと実際の山行時間との比率、休憩時間の表示、(小さいものを含めた)ピークの数、大小のピークの上り下りの総高低差など、統計的な数値結果を出せるようになっています。
一般的なアプリにするにはこれをいかにわかりやすく表示するのか、っていうところですが、デザインスキルがゼロなので。。
YAMAPみたいなアプリだと一般の人に理解できない機能はリリースできないはずなので、ここは自分用に作ったアプリのいいところ。でもYAMAPは遙か先に行っているので、自作のアドバンテージはほとんど無さそうですけど。

2021.6.2
さらに欲が出てきて、路程に経由した山名などを表示したくなってきた。(ほとんどYAMAP)
山のデータはネット上にある、と思ったけど意外と国土地理院の1003山くらいしか見つからなかった。
自分の歩いたところの情報があれば良いので、地道に入力していくことにしようかな。
ここはクリックした高度・緯度・経度がわかるので便利。
こういうのはみんなで作って共有すれば良いと思うけど、すでに誰かがやっていないかな?キーワードがわからない。。

2021.6.8頃
β版公開

2023.11.10
Google Mapsの仕様変更により、lightbox plusのspica.jsと衝突してGoogle Mapsが表示されなくなりました。(恐らく11.1から)
そのため、lightbox plusを最新版に差し替え、index.htmlの一部を変更しました。

高速道路の位置情報

https://www.javadrive.jp/google-maps-javascript/data/index6.html
主要な高速道路のIC情報のみ。


連絡先:

t2g3 Project 会議室 - 感想・要望など