灯台コレクション開発記 ― 全国100基の灯台データをどう集めたか
海上保安庁の航路標識データを活用して灯台コレクションを作った開発記録。データ収集からガチャシステムの実装まで。
「灯台コレクション」は、全国100基の灯台・灯浮標・灯標を地図で探索し、ガチャでコレクションするコンテンツです。
開発の経緯からデータ収集、ガチャシステムの設計まで、技術的な裏側をお話しします。
灯台コンテンツを作ったきっかけ
灯台は全国に約3,300基あり、その多くが美しい海岸線に位置しています。しかし、灯台を目的地として訪れる人は多くありません。
海上保安庁が「燈光会」を通じて灯台の魅力を発信していること、近年「灯台巡り」が静かなブームになっていることを知り、地図ベースのコレクションコンテンツとして面白いのではと考えました。
データ収集の方法
海上保安庁の航路標識一覧
灯台の基本データ(名称、位置、光り方、塗色)は海上保安庁が公開している航路標識一覧を参考にしました。ただし、このデータは航海者向けのもので、観光情報は含まれていません。
追加情報の収集
以下の情報を手作業で追加しました。
- 重要文化財指定の有無: 文化庁のデータベースから確認
- 初点灯年: 各灯台の歴史資料から収集
- レア度の設定: 重要文化財灯台をSSR、参観灯台をSR、一般灯台をR以下に分類
- 雑学・クイズ: 各灯台にまつわるエピソードを調査
100基の選定基準は「地理的なバランス」「歴史的価値」「アクセスのしやすさ」の3点です。北海道から沖縄まで、各地域から偏りなく選んでいます。
ガチャシステムの設計
コレクション要素を入れることで「全部集めたい」というモチベーションを生み出す狙いです。
レア度の確率設定
| レア度 | 確率 | 対象 | |--------|------|------| | SSR | 3% | 重要文化財灯台(5基) | | SR | 10% | 参観灯台・歴史的灯台(15基) | | R | 25% | 地域を代表する灯台(25基) | | UC | 35% | 一般的な灯台(30基) | | C | 27% | 灯浮標・灯標(25基) |
ソーシャルゲームのガチャ確率を参考にしつつ、教育コンテンツとして「SSRを引いたら灯台について詳しく知りたくなる」仕掛けを重視しました。
技術的な実装
ガチャの実装はシンプルです。Math.random() で乱数を生成し、累積確率と比較してレア度を決定、そのレア度の中からランダムに1基を選出します。結果はローカルストレージに保存し、コレクション状況を永続化しています。
地図UIの工夫
Leafletを使ったマップでは、灯台の位置をマーカーで表示しています。工夫した点は以下の3つです。
- レア度別の色分け: SSRは金色、SRは紫、Rは青など、一目でレア度がわかる
- クラスタリング: ズームアウト時にマーカーが重ならないよう自動グループ化
- 詳細パネル: マーカーをクリックすると灯台の写真・歴史・雑学を表示
灯台巡りの計画にも使えるよう、現在地からの距離表示やルート検索への導線も設けています。