1000以上のルートを、ユーザごとの地図に投影する方法(7) - まとめ&ソースコード
前回までで、個々の技術説明は終わりました。
まとめとしてスクリプトを晒してみます。
マップ作成の考え方
記録1、記録2、記録3の3つの記録がある場合を
サンプルに考えます。
ユーザ1、ユーザ2の2名がいて、それぞれ
- ユーザ1が記録1、記録2
- ユーザ2が記録2、記録3
を登録したとき
- ユーザ1が記録1、記録2
- ユーザ2が記録2、記録3
- システム全体で記録1、記録2、記録3
の3つの地図ページを用意します。
必要なプログラムは2つ。それぞれサンプルコードを作成しました。
処理時間について
ヤマレコの場合、約2,000ユーザ、6,000個のルートがあり、
4日間CPUを使い続けてやっと画像一式ができあがりました。
ヤマレコで作った全ルート表示地図
今回のような2段階の生成にしておくことで、全マップ作成は1回だけやれば良いです。
普段は以下の更新だけをすればOK。
- 前回スクリプト実行時から更新された記録だけ、記録単位のタイル画像を作成
- データが更新されたユーザの地図だけ、ユーザ単位のタイル画像を再合成
CPU負荷がかかるタイル画像の生成処理を記録ごとに1回づつやれば良くなったので、
やっと現実解になりました。