Help us understand the problem. What is going on with this article?

stravaからglobal heat mapのデータを頂く

動機

自転車乗りにとって今年一番ではないかと思われるビッグニュース
ルートラボ終了のお知らせ

代替サービスをいろいろ探していますが、
実験の意味も含めて、自分でルート検索サービスを作ってみるのも面白そうだな、と。
で、以下のblogを発見、真似してみることにしました。
ちゃりラボblog - Strava heatmapを使ったOSRM最適化

まずは Heatmap の取得から...

stravaからglobal heat mapのデータを頂く

URLが変わっています。
新しいURLはこちら。
https://heatmap-external-b.strava.com/tiles/ride/hot/1/0/0.png

フォーマットは
https://heatmap-external-b.strava.com/tiles/ {移動手段} / {色} / {Zoom} / {x} / {y}.png

移動手段には ride / run / both / water / all などが選べます。
色は hot / blue など
Strava Global Heatmap
をいじると選択肢がわかると思います
(URLの変化に注目してください)

Zoomは1から11までOK。
12以上を指定すると

authentication is now required for data access beyond zoom level 12, please login to strava.com and then visit /auth

と叱られます。
authすればいいのですが、今回は zoom = 11 を使うこととします。

x と y はタイルの index です
例えば、zoom = 1 ならば、世界は4分割なので、

x = {0, 1}
y = {0, 1}

の範囲が有効な index となります。

欲しい場所の index を調べる

じゃ、彩湖はどこなの?
となった時に手探りで値を探すのは大変!!
でもいいページを見つけました。
osrmのタイルサービスのデモページ

赤い線で区切られた区画ごとに zoom/x/y が記述されています。
この値を Strava Heatmap のURLに適用すると、その場所にヒートマップ(png画像)が取得できます。
便利!

はい、彩湖です
https://heatmap-external-b.strava.com/tiles/ride/hot/11/1818/805.png?px=512

複数のタイルを取得して大きな地図を作ってみる

タイル一枚一枚ではなく、広い範囲を取得して、つなげて大きな地図が欲しくなりますよね。
curlとImageMagickで簡単にできました。
便利な世の中です。

1. ImageMagickをインストール

$ sudo apt-get -y install imagemagick
$ which convert
/usr/bin/convert

2. 手動で連結

$ ls
test_1817.png  test_1819.png test_1816.png  test_1818.png  test_1820.png

$ convert +append *.png concat.png

3. 自動で連結

$ for y in {800..810} ; do
> for x in {1810..1825} ; do
> curl https://heatmap-external-b.strava.com/tiles/ride/hot/11/${x}/${y}.png?px=512 > test_${x}.png
> done
> mkdir ${y} ; convert +append *.png ${y}/${y}.png
> done
$ convert -append */*.png map.png

これで、Heatmapを入手できるようになりました。

次はルーティングエンジンの準備ですね
まて次号

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away