キャンプ前に天気予報を見るとき、雨量・風速・気温・湿度をそれぞれ確認するのが地味に面倒です。
普通の天気予報アプリでも情報は見られるのですが、キャンプ目線だと知りたいことが少し違います。
- 雨撤収になりそうか
- 風でタープや焚き火が厳しそうか
- 夜に冷え込みそうか
- 湿度が高くて結露しそうか
- この条件で本当に行くべきか
こういう判断をまとめて見られるWebツールが欲しかったので、キャンプ前の天気リスクを確認できるWeb版を作りました。
作ったもの
地図から地点を選ぶと、その場所の天気予報を取得して、キャンプ目線のリスクを表示します。
主に見ているのは以下です。
- 降水量
- 風速
- 気温
- 湿度
- 雷を含む天気傾向
- 投稿DBに近い条件があれば過去判断との比較
時間ごとの予報は、雨・風・気温・湿度を1つのグラフにまとめています。
また、当日夜に見ると「今日の残り数時間分しか表示されない」という問題があったので、予定日が今日の場合は、現在以降から次の24時間分を表示・集計するようにしました。
なぜWeb版を作ったか
もともと、同じようなコンセプトのAndroid/iOSアプリを作っていました。
- iOS: https://apps.apple.com/jp/app/キャンプ天気リスクチェック/id6760535815
- Android: https://play.google.com/store/apps/details?id=com.syunpp.campweather
ただ、アプリだけだと試してもらうまでのハードルが少し高いです。
Web版ならURLを開くだけで使えるので、まずは触ってもらいやすいと思いました。
技術構成
構成はかなりシンプルです。
- フロント: HTML / CSS / JavaScript
- 地図: Leaflet + OpenStreetMap
- API: FastAPI
- DB: PostgreSQL
- 天気予報: MET Norway Locationforecast API
- 開発補助: Codex
最初はOpen-Meteoも候補にしていましたが、広告掲載や商用利用の可能性を考えると少し気になったため、現在はサーバー側プロキシ経由でMET Norwayを使っています。
地図検索はNominatimを使いつつ、検索した地点は内部DBにも保存し、次回以降は外部APIを呼ばずに候補を返せるようにしています。
投稿DBでやりたいこと
このツールで本当にやりたいのは、単なる天気予報の見せ方ではなく、
「この条件のとき、他の人は行く判断をしたのか」
を少しずつ蓄積することです。
現時点では投稿DBはまだ全然育っていません。
そのため、今は通常の天気予報をキャンプ向けに整理するツールに近いです。
ただ、今後ログが増えてくると、
- この雨量なら行く人が多い
- この風速だと装備を増やして行く人が多い
- この湿度や気温だと迷う人が多い
のような参考情報を出せるようになるはずです。
Codexを使って進めたところ
今回のWeb版は、かなりCodexと対話しながら作りました。
特に助かったのはこのあたりです。
- UIの調整
- 地図表示の不具合修正
- グラフの見やすさ改善
- 天気APIの切り替え
- サーバー側APIの修正
- DB集計ロジックの整理
- セキュリティ面の見直し
- READMEへの仕様整理
特にグラフ周りは、実際に画面を見ながら細かく直しました。
例えば、
- 予報点が少ないときに見づらい
- 雨量0mmだとデータがないように見える
- 棒グラフが左右にはみ出す
- 当日夜だと数時間分しか表示されない
といった細かい違和感を、都度直していきました。
Codexは「一気に完成させる」というより、実際に触りながら違和感を潰していく作業と相性が良いと感じました。
まだ弱いところ
まだβ版なので、弱いところはかなりあります。
- 投稿DBが少ない
- キャンプ場検索の精度がまだ弱い
- 実際のキャンプ後ログは集めにくい
- 判断ロジックはまだ荒い
- 使ってもらわないと価値が育たない
特に、検索と投稿DBは今後の課題です。
キャンプ場名で検索してヒットしないケースもまだあるので、検索結果を内部DBにためながら少しずつ改善していく予定です。
今後やりたいこと
今後はこのあたりを進めたいです。
- 実際の利用ログを増やす
- 判断結果に近い過去条件を表示する
- キャンプ場検索の精度を上げる
- 地点DBを育てる
- アプリ版との連携を強める
- UIをもう少し分かりやすくする
収益化も少し考えましたが、まずは使ってもらうことと、データが育つことを優先しようと思っています。
おわりに
キャンプ前に、
「この天気、行って大丈夫そう?」
「雨撤収になりそう?」
「風や冷え込みは見ておいた方がいい?」
くらいを軽く確認できるツールとして使ってもらえたら嬉しいです。
まだβ版なので、使いにくいところや欲しい機能があれば教えてください。