アプリを使ってライド記録を地図上に描こう

いままでに走ったことのある場所を可視化したい。他の人と自分の走行記録を見比べたい。知らない道を手早く見つけたい。

スポーツ自転車に乗ってサイクルコンピュータで走行記録をとっている人であれば、現在までの走行記録をまとめて表示してみたくなることがあるものです。およそ半年前に Garmin / Strava の走行記録をまとめて表示するという記事を書いたところ、今でも毎日、それなりのアクセス数がありますので同じことを考えている人も少なくないのではないかと推測されます。

実際に表示してみると、もう走り尽くしたと思っていた地域にも行ったことがない場所が、そこかしこに残っていたりと、新しい発見につながるものです。

しかし、上の過去記事に取り上げた方法では、多少の事前知識と実行環境の準備が必要となりますので、誰でも直ぐに実現できるというわけではありません。

そこで今回はデスクトップアプリを使用して、1つ以上の FIT ファイルから位置情報を抜き出して、ウェブブラウザ上で地図に表示することを行います。

手っ取り早く使い方だけを知りたい人は、以下のリンクを見てください。


FITファイルから位置情報を取り出して地図上に表示する方法





そんなものがあるなら、どうして最初に紹介しなかったのかと言うと、無かったので(少なくとも私が探した限りでは見つからなかったので)自分で作ったからです。

ただし、要素技術に用いた Electron に触れることも今回が初めて、シングルページアプリケーション (SPA) に挑戦することも今回が初めて、そもそもフロントエンド自体の経験が全くありませんので、出来栄えについては保証できません。

当初は「週末の2日あれば完成するかな」と軽く考えていたところ、実際には見積もりの1.5倍ぐらいの作業時間が完成までに必要となりました。

とにかく未経験なので SPA のファイル構成や暗黙の規則などの勝手が分からないですし、標準エラー出力の表示からモジュールの読み込み、パッケージビルドまで躓き続けて、ドキュメントも部分的にしか目を通せていないので、一応は動くものを作成した現在においても完全に Electron を理解できたとは到底言えません。

と言うか、1年前の情報でも古くて役に立たなくなっていたりするのに、Electron どころか webpack に elecron-builder にと調べることがありすぎて沼が深すぎます。 JVM も Linux もインストールされていない環境でもプログラムを動かせるぞと思って飛び付いたことを後悔するレベルです。

それでは何故、こんな記事やコードやプログラムを公開しているのかと言えば、恥ずかしくても練習しないと上達しないからです。

とくに人が直接的に操作することを前提としたプログラムは、実際に触って動かしてみないと評価できません。そのために開発中においても評価目的でバイナリを公開しています。

現状は以下のとおりです。


読み込めるのは FIT 形式のファイルのみです(GPXファイルへの対応は未定)
FITファイルの保存形式はSI単位系のみ対応しています
ポリライン描画に使用できるのは赤のみです(何を基準に色を変えるかによって様々な表現ができるので実装を保留中)
地図タイルは OSM のみです
一度に読み込めるファイル容量はお使いの環境に依存します

緩募:アイコン、 Wahoo および CATEYE のアクティビティファイル、新機能のアイデア

私の会社ではありませんけれども、同業の知り合いの会社も3月からレイオフが実施されていていて、業績が悪いのにめちゃくちゃ忙しいので、通常にもまして自由時間が少ない(作業の進展が遅い)です。


具体的な使い方はこちらになります


パナレーサー(Panaracer) パナレーサー 日本製チューブ2本入 [W/O700x23~26C] 仏式バルブ 0TW700-25F-NP-2 仏式バルブ34mm

OpenCycleMap で見つけるサイクリングロード

感染症流行の収束のために自宅待機が要請される昨今、ライドイベントの開催や泊りがけの旅行はおろか、輪行して近郊の山間地に出かけたり、名物料理や特産品を楽しむことも実質的に不可能になっています。

健康維持のための運動は容認されているものの、感染者と接触する、あるいは無自覚に他人に感染を拡げる可能性を考慮すると、人が密集する公園や海岸、事故の危険性の高まる悪路や山道、あるいは途中休憩が必要となる遠方への外出は避けるべきと考えられます。

ライドに出かけるにしても、人通りも疎らな午前4時頃に出発して、字義通りにどこにも(自販機にすらも)立ち寄らず、60km 程度の距離を走って帰宅するのであれば、誰とも接触せずに健康維持に必要な運動量を確保することも難しくはありません。

「うちの近所には適切な場所がない」と思われるかも知れませんが、OpenCycleMap を覗いてみると意外と知られていないサイクリングロードが身近にあったりするものです。


OpenCycleMap.org – the OpenStreetMap Cycle Map
https://www.opencyclemap.org/





多摩川から幾度と無く奥多摩に出かけている人でも浅川には行ったことがなかったり、朝霞水門を毎日のように通り過ぎている人でも黒目川(目黒川の誤植ではありません)の存在を知らなかったりすることは珍しくはありません。

意外と知っているようで知らないのがサイクリングロードです。

サイクリングロードの存在そのものが広報されていないことに加えて、どこも出入り口が分かりづらく、途中で未舗装路や行き止まりに突き当たったり、橋を渡って対岸を進まなければならなかったりと全容把握が容易ではないことから、サイクリングロードの情報は常に不足しています。

調べても欲しい情報が見つからないことも普通ですし、そもそも情報そのものが無いと思われていることも少なくありません。

その点、OpenCycleMap では一つのサイクリングロードの沿線だけではなく、地域全体の地図に複数のサイクリングロードが同時に表示されるので、始点や終点だけにとどまらず、サイクリングロードまでの道筋や行き止まりに遭遇した際の代替経路までをも含めてライドプランを俯瞰することができます。

以前に、茨城県のサイクリングロード延伸計画は隣県も意識すべきと書いたことがありますが、OpenCycleMap を見ると現状でも小貝川と利根川、印旛沼、新川、花見川とをつないで、つくばの万博記念公園から幕張メッセ(サイクルモード会場)まで、信号も踏切もほとんどない道を通って行けることが一目でわかります。

ところが、そうした情報は一般的には共有されていませんので、何度も現地を訪れている人でなければ、つくばから千葉まで(あるいは江戸川区の葛西臨海公園まで)複数のサイクリングロードを経由して行くことができるという発想には思い至らないわけです。

このような、おおよそ地元民にしか知られていないようなサイクリングロードが、OpenCycleMap には少なからず掲載されています。

もちろん、善意のボランティアが編集しているものなので、浅川や浜名湖や網走常呂線のように情報が欠落していたり、統一の基準を欠いているために多摩湖自転車道のような自転車走行には不適な遊歩道や普通の一般道が混入していたりと、まだまだ不完全な部分も無いわけではありません。

護岸工事や災害復旧のために一時的に通行禁止になっているところも反映されていませんし、掲載時期も一定ではありませんので、いつの時点の情報なのかも判然としません。

しかし、それでもなお地図を見直すたびに新たな発見があり、行くべきところが容易に把握できる点においては非常に有用です。

早期収束を考えると自宅でローラー台を回していることが最善となりますが、どうしても自宅で必要な運動量を確保できない環境なのであれば、せめて他人と接触しない時間帯に、ほかに誰も来ない場所で運動不足を解消したいものです。

過去の記事を読んでいる人には繰り返しになりますが、全容が明らかになっていない未知のウイルスに感染しても良いことは一つもないですし、重症化して死亡までいかなくとも、肺に後遺症が残ればトレーニングどころか運動を続けることすらも難しくなるかも知れません。

自分自身もそうなる可能性が常にあることを認識した上で、気を緩めずに危険回避に努めてください。


実は以下のように Leaflet を読み込んでやると記事中に OpenCycleMap を埋め込むことができます。

ただし、この場合 Thunderforest で入手できる API key が誰の目にも明らかになってしまう問題があります。API key に対する保護などは特になさそうなので、無闇に公開しない方が良さそうです。

<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" />
  <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"></script>
</head>

<body>
  <div id="map" style="width:450px"></div>
  <script type="text/javascript">
    const link = '';
    const map = L.map('map');
    map.attributionControl.setPrefix('');
    L.tileLayer(link, {
      attribution: 'Maps &copy; <a href="https://www.thunderforest.com">Thunderforest</a>, Data &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMapcontributors </a>',
      maxZoom: 22
    }).addTo(map);
    map.setView([35.676, 139.650], 10);
  </script>
</body>

</html>

サイクリングはしても良い? – 流行感染症にうつららない・うつさないために

趣味のこと以外は記述しないという方針に反し、中共のせいで何かと活動に影響を受ける今日この頃です。

ご存知の通り、China-Originated Virus こと新型コロナの感染拡大を受けての渡航規制により香港に帰れなくなったり、予定していた環島ができなくなったり、技術試験や結婚式の予定がなくなったり、そもそも取引先ごと会社もなくなりそうです \(^o^)/

私が香港を離れたのは今年の正月明けで、それから仕事でミュンヘンに滞在しつづける予定でしたが武漢や上海の様子を伝え聞いて「もう仕事にならんだろう」と2月半ばで切り上げて、強引にドイツから出国してきました。

当時は日本の感染者数が 700 人超で突出していて、シンガポールなどがそれに続き、ドイツは 16 人、フランスは 12 人、イタリアは 3 人しか感染者がいなかったため、知人、友人、同僚に本気で引き止められましたが、移民になる気もないのだから居ても仕方がないだろうと言い聞かせて出国しました。

空港では東京行きの飛行機はいつもと違うゲートに移動されたり、中国・澳門・香港・台湾との航空便が運休されているために東京便に中国人やイタリア旅行者の団体が押し寄せて、オフシーズンとは思えないほどの満席状態でした。

それにも関わらず、日本に到着してみると対策らしい対策もなしに入国できるわ、中国人が大手を振って空港内を闊歩しているわ、緊張感の欠片もなくオリンピック開催を喧伝しているわで頭が痛くなってきました。

幸いにも、私は咳も発熱も最後に経験したのは数年前のことですが、症状は無くとも感染している・他人に伝染させる可能性はありますので羽田空港を離れてから 3 週間は引きこもって毎日ピザばかり食べてました。

そうして私が自主隔離している間にも東京マラソンを開催したり、下船させたクルーズ船客を隔離もせずに自宅に帰らせたり、水際対策も何もせずに外国人渡航者を入国させて、せっせと感染者数増加に尽力しておきながら、今頃になって緊急事態を言い出している政府の方針は理解不能ですが、感染して良いことは一つもありませんので要請の有無に関わらず、他人との接触を避けることは重要です。

とくに、このサイトを閲覧されているようなランニング、サイクリング、スイミング、登山などを生き甲斐にする人にとって、重症化して肺機能の低下を伴う後遺症が残ることは死活問題に関わることですので、普通の人以上に感染に気をつける必要があると考えていただいても結構です。

不要不急の外出自粛を要請されている最中にあっても自転車を用いた運動は推奨されているようですが、電車に乗って輪行せず、コンビニにも立ち寄らず、ソロライドで日帰すれば十分というわけではなく

  1. 補給食は自宅から持っていく
  2. 自販機も素手で触らない
  3. 1回の走行距離は 60km までにおさえる
  4. 出発も帰宅も明るい時間帯のうちに済ませる
  5. よく見知った場所のみを走行する
  6. 急斜面や舗装状態が悪い場所には行かない
  7. 路面凍結している可能性がある場所には行かない

などの制限を設けて、とにかく他人との接触と予期せぬ事故(による怪我や病院利用)の2点を予防できるように細心の注意を払うぐらいで調度いいと思います。

走行距離を 60km までとしているのも、自宅を出てから一度も自転車を降りずに、安全運転で行って戻ってこられる距離がそれぐらいだからです。

これぐらいの走行時間なら集中力も途切れませんし、明るい時間のうちに出かけて、暗くなる前に帰ってくることができるという意味もあります。

暗くて視界が悪い時間帯の事故を予防し、ついでに日照前や日没後の気温変化による体調不良も避けられます。

行き先を何度も訪れたことがある場所に限定するのは、事故予防だけではなく、人がたくさんいる曜日や時間帯を避けるために必要なことだからです。

自分が感染しないためにも、もし仮に自覚なく感染していたとしても、他人に伝染させないために予防できる接触は避けるべきです。

もちろん外出せずに自宅でローラー台を用いてトレーニングを行うことが、もっとも感染リスクを抑えられることは言うまでもありません。

夏になって気温と湿度が上がれば収束に向かうと楽観視する考えもありますが、シンガポールの現地の話を聞いていると、とても季節が変われば自然と収束するようには私には思えませんので個人的には「注意しすぎるぐらいでいい」と思います。