位置情報から見つけるサイクリストの休憩場所(前編)
サイクリストの走行ログ(位置情報)を使って、サイクリストがどんなところで休憩しているかを推定してみようという試み。前編・後編の2部構成でざっくり書いてみたいと思います。
悪魔のささやき
ロングライドに行って、疲れてくると必ず出る言葉。「つぎ、休憩しよう!」疲れているときに神のような一言です。
しかし、ロングライドは大抵郊外の人里離れたところを走るため、そもそも都合よくお店や自動販売機に出会えることなどほとんどありません。
気がつけば、坂道を1つ越え、2つ越え、乾いた喉はカラカラ、足はピクピク。ペダルを回しながら、「つぎってドコやねん!もう嫌や!もう無理!」と心の中で何度も叫び、先程の天使は悪魔のように見えてきます。
そんな経験をされた方は多いのではないでしょうか?
泣きの一言、「ググろ!」
もう無理。耐えに耐えてきましたが、もう回りません。先の見えない辛さ。息絶え絶えで出てきた言葉は泣きの一言「ググろ!」
そうです!私たちには文明の利器、Google検索があります。チョチョイと検索して、美味しいスイーツのお店に行って、辛さなんか吹っ飛ばしてしまえばいいのです。これなら先の見通しが立ち、何とか頑張れそう。
調べてみると数キロ先に小さなお店があることが分かりました。最高です。希望の光が見えました。
行き着いた先は・・・
最後の力を振り絞ってペダルを回し、映えるスイーツを食す妄想を膨らまし、やっとの思いで店に到着。
潰れとるやん…。
よくよく見るとネットで先程見た記事は10年以上も前のもの…。もう、大海を漂う小枝のような気分です。
そんな経験をされた方は多いのではないでしょうか?
ベテランさんに聞く?
郊外に行けば行くほど、この問題は深刻になります。ネット上でのポタリングやグルメライドの記事ではカバーされていません。こんな人里離れたところを走るサイクリストは、いったい何処で休憩をしているのでしょうか?
ベテランサイクリストは、郊外の美味しい店をたくさん知っています。やっぱりベテランサイクリストに聞いたり、お願いして連れて行ってもらうのがいいのでしょうか?
「今日はゆるポタでぇ〜笑」と言いつつ、エゲツない獲得標高になったりする体験を積みながら、自らの経験値を上げていくのもひとつの方法です。
では、もっと他に知る方法はないのでしょうか?
走行ログを分析してみる?
サイクリストの走行ログを集めて分析してみたら、もしかすると休憩場所とか分かったりしないのかなぁ…。そんなことを考え始め、やってみることに。
分析の方法をざっくり書くとこんな感じです。最近は全くやってなかったプログラミングを。開発環境の構築とか、いろいろ浦島太郎の状態からスタートです。
走行ログってなんなん?
そもそも、走行ログって何よ?ということで、走行ログとは、自転車などで走ったルートなどを記録したGPSデータ(位置情報)のことです。長距離走ったり、ガチ勢のサイクリストはサイクルコンピュータという装置をつけて、ライドの状況を記録しながら走ります。
最近ではスマホアプリでも簡単に走行ログを記録できたりしますが、スマホのバッテリーを激しく消耗するため、長距離走ったりする場合は敬遠されます。
サイクルコンピュータで取得した走行ログは、Stravaなどのサイトにアップロードして、今回のライドについて、あ~だこ~だ振り返ってムフフと楽しむのです。
実際の走行ログの中身はこんなんです↓↓↓
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<?xml version="1.0" encoding="UTF-8"?><html><body>
<gpx version="1.1" xmlns="http://www.topografix.com/GPX/1/1">
<trk>
<name>しまなみ海道</name>
<trkseg>
<trkpt lat="34.02044305555555" lon="133.01373">
<ele>19.0</ele>
<time>2020-10-18T23:22:05Z</time>
</trkpt>
<trkpt lat="34.02108" lon="133.01263">
<ele>32.0</ele>
<time>2020-10-18T23:23:04Z</time>
</trkpt>
<trkpt lat="34.021923055555554" lon="133.01143">
<ele>24.0</ele>
<time>2020-10-18T23:24:02Z</time>
</trkpt>
<trkpt lat="34.02646" lon="133.00743">
<ele>12.0</ele>
:
:
緯度経度や標高、時間といった情報がひたすら書き込まれた一瞬「ウゲッ…」となるデータです。こういうデータを沢山集めて、ゴニョゴニョするともしかしたらサイクリストの休憩場所が分かるかもしれないよねぇーっというのが今回の試みです。
ベテランに聞いた方が早い?確かに…。そんな気もする…。でも、今度遠征する阿蘇地方に詳しいベテランの人知らんとかあるやん。
メッシュって何?
さてさて、ひたすら緯度経度の情報が書き込まれた走行ログですが、このままだと扱いにくいので、メッシュという情報に置き換えていきます。位置情報を扱う場合のメッシュとは↓↓↓
よく分からん説明ですが、簡単に言うと平面の地図にほぼ等間隔で縦横に線を引いてマス目を作って番号を振ったものです。
よくこのマス目に住んでいる人の密度を色分けして表示します、とかいった利用がされています。
このマス目をどんどん小さく区切っていって、125m四方くらいのマス目を作ります(だいたい8次メッシュ)。これ以上もメッシュを当然小さくできますが、GPSそのものの測位誤差もあるので、あまり小さくする必要はないかと思います。
そして、走行ログの緯度経度情報の一つ一つが、どのメッシュに入るかを計算して、例えば5分以上も移動せず留まっているログが多いメッシュを見つけ出せば、おおよその滞留場所が分かりそうですね。
Google Places APIを使って情報取得
ただ、そのメッシュ付近に何があるかは分からないので、Google先生に聞いてみます。Google Places APIの周辺検索(NearBy Search)を使って、メッシュ周辺のPOI(Point Of Interest)を取得してみると、お店の名前や史跡などの情報が分かります。
また、Google Placesの場合、その場所(お店や史跡など)のレーティングや口コミ件数なども分かるので、評価の高い場所なども抽出することができそうです。
ただ、APIを呼び出すと課金されるので、無尽蔵に呼び出すとお小遣いがなくなります。現在は$200/月までは無料なので、その範囲内で遊べばいいでしょう。
ちなみに、100箇所の周辺検索をするためにやり直しなど含め460回ほどNearby SearchのAPIを呼んだときにかかった金額は、2500円程度と表示されていました。5円/回くらいですね。意外と高いな!
走行ログの分析で分かること
まとめ
サイクリストに適した休憩場所を知っているか知っていないかでライドの充実度が全く違ってきます。今回は、走行ログって何?というところから、走行ログを分析すると、どんなことが分かりそうかという内容を書いてみました。
長くなったので、実際にどんな店などが分かるようになるのかは次回のNoteに書いてみようと思います。
この記事が気に入ったらサポートをしてみませんか?