加賀温泉郷おでかけマップをつくりました

【マップはこちら】https://kaga.love/

10月18日に、金沢市文化ホールで行われたHello! Project 2020 〜The Ballad〜へ行ってきました。

参加していたのは松永里愛さん、山岸理子さん、野中美希さん、そして加賀楓さんの4人。野中美希さんの髪型が可愛くなっていたことは覚えていたのですが、推しの記憶は全部飛んでしまいました。フォロワーさんいわく「好きという昂った気持ちを抑えながら観たものは記憶に残りにくい」そうです。なるほど。

閑話休題。加賀楓さんが、石川県加賀市より「加賀温泉郷観光大使」に任命されました。

諸般の事情で加賀四湯博が中止され、そこへ追い打ちをかけるようにやってきたコロナ禍。誰もが加賀楓さんの大使継続を絶望視していた中、加賀温泉郷協議会から市に任命主体を変えて、温泉郷大使の委嘱を継続してくださることになりました。加賀市には足を向けて寝られません。私は最近北枕にしました。

さて、ファンとして加賀温泉郷になにか恩返しを出来ないものか。

コンサートの前日、加賀温泉郷を構成する温泉地のひとつである山代温泉に宿泊していました。そこにあるplay.kagaというコーヒースタンドのお姉さんとおしゃべりしていると「加賀ヲタはすぐ一般人に擬態する」「いっぱい来てくれているのに、旅館の末端のスタッフはそのことに気づけない」という話に。なるほど。これだ。

こうして、加賀温泉郷おでかけマップをつくることにしました。開発方針は次の三つ。

  1. 現地の人は、加賀ヲタの来訪状況を一目で俯瞰できる
  2. 加賀ヲタは、現地におでかけする際の参考にできる
  3. 1・2を通して、加賀市の観光産業に貢献する

実は、私が学生だった昨年2月にも同様の構想を立てていて、さかな(@sakanamanbo)さん、しょこβ(@anemptyarchive)さん、千歳(@helloChito)さん、よねり(@AKANEnoYONELI)さんに私を加えた5人で「加賀温泉郷メモリーズ」、ちぢめて「加賀メモ」の開発プロジェクトを立ち上げていました。今回のおでかけマップは運用作業のほとんどを自動化していますが、当時は人力でキュレーションを行っていく方針で、開発もスクラッチで行うつもりでした。

しかし計画が壮大すぎたことに加え、プロマネ兼エンジニアの私がちょうど就職する時期で、マネジメントを全く行えずプロジェクトを自然消滅させてしまいました。恥ずかしい限りです。

今回のおでかけマップも、基本的には4人が昨年出してくださったアイデアをリブートさせたものです。自動化の恩恵で、今回は私ひとりで完成させてしまいましたが、「加賀メモ」を経なければ作ろうとも思わなかったと思います。勝手にプロジェクトを自然消滅させて、また勝手に作ってとなんとも厚かましいところですが、この場を借りて4人にお礼申し上げます。ありがとうございました。そして、申し訳ありませんでした。

技術面について

技術的には、R言語の{rtweet}パッケージと{leaflet}パッケージ、{ggmap}パッケージを組み合わせて作っています。

マップ生成部分について

rtweet::search_tweets()で加賀温泉郷関連の写真付きツイートを収集し、テキスト中に出現するスポット名をもとに位置情報を付加した後に、それをleaflet::addPopups()で地図上にプロットするスクリプトを書きました。これをcronで1日2回走らせて、出力された静的htmlファイルをWeb上に公開しています。

技術的には15分程度の間隔で最新のツイートを地図上に反映できるのですが、ストーカー行為(過去にそのような事例を見聞きした訳ではありません)対策のため朝夕2回の更新にしています。日中は更新しないため「●●氏は今△△にいるな〜」のような使い方はできません。

位置情報の付加作業は、手作業でスポット名のリストを作成した後に、ggmap::geocode()でGoogleのGeoCode APIを叩いて緯度経度情報を紐付けることで実現しています。登録したスポット名がツイート中に出現したら、あらかじめ登録された緯度経度にプロットしています。

マップ表示部分について

加賀温泉郷関連の写真付きツイートは、約500件/週程度あります。これを馬鹿正直に表示すると、500個のリッチなdiv要素を画面上に描画することになり、古いスマホではまともに動作しなくなります。

そこで、エリアを「作見(加賀温泉駅)」「大聖寺・橋立」「片山津」「山代」「山中」に5分割し、それぞれのエリアごとに最新の200件を表示させる仕様にすることである程度の軽量化を実現しています。

マップタイルはOpenStreetMapを利用しています。当初は国土地理院の淡色タイル(加賀温泉郷ポスターマップで使用されています)を用いていましたが、よりスポット情報の多いOSMに切り替えました。ただ、Yahoo!マップやGoogleマップに比べると、やはり何かモノタリナイ感は否めず、将来的には商用サービスに切り替えたいところです。(ただ費用が……😭)

インフラ面について

千葉県にある、えもんが家のHyper-Vサーバー上でホスティングしています。同じ物理ホスト上には、このブログやかえでぃーNAVIが動いている仮想マシンもそれぞれ同居しています。

現在、電気代ならびに回線(フレッツ光+V6プラス固定IP)代で月……円程度の出費が発生していますが、推しのふんどしで銭を稼ぐのは好ましくないという考えから、アフィリエイト等を導入する考えは現状ありません。ただそれでも大勢の皆さんがアクセスしてくださると、サーバーが少し熱くなるのでこれからの季節は暖房代わりになって嬉しいです。

本来であればAWS等のクラウドを利用するべきところですが、費用面の兼ね合いで(クラウドよりは電気代+回線代の方が安いです)えもんが家の仮想基盤で動かしています。電源や回線の冗長化もなされていないため、頻繁に障害が発生する可能性が高いことをご承知おきください。