子連れスポット検索を作った話(公開当初は0〜5歳・関東向け、現在は0〜6歳・全国対応)
未就学児を連れて出かける時、いつも「今日どこ行こう」で迷っていました。検索すると いこーよ や こどもとおでかけ など定番サイトがヒットするのですが、対象年齢が 0〜12歳 とかなり広い。「3歳児を連れて行ける範囲」で絞り込めず、結局スクロールしながら自分の頭で選別することになります。
レビューや混雑情報の精緻さでは大手サイトに勝てない。でも 「年齢を絞り込めない」「カバー範囲が足りない」 という不満ポイントは、個人開発でも十分に解消できそう ── そう思って作りました。
何ができるツールか
kids.tool-koubou.com で使えます。
- 0〜5歳(未就学児)特化 で関東15,000件超を一括検索(※公開当初の対象。現在は0〜6歳の未就学児を対象に拡大、対象エリアも47都道府県へ広げて15万件以上を収録しています。最新の件数は公開ツールを参照してください)
- 動物園・水族館・博物館・図書館・公園・室内遊び場・ふれあい牧場・モール、そして 「隠れスポット」(ホテルのキッズスペース等)まで横断
- 地図 + マーカークラスタリング、15万件規模でも軽快
- 「屋内」「雨でもOK」「無料」「駐車場あり」「駅近」のフラグで絞り込み
- レビューも混雑情報も載せない(その代わり全部載せることに振り切り)
思想:レビューよりカバー範囲
このツールは レビューを書きません。理由は2つあります。
- レビュー運用は重い。投稿管理・スパム対策・通報対応が必要で、個人運営には向かない
- 大手サイトに勝てる勝負ではない。あちらは数百万のレビューを抱えている
代わりに 「あなたの周辺にこういう施設があります、開館情報は公式で確認してね」 という案内に徹底。カバー範囲を広げる設計にしました。
作り方:データをどう集めたか
データ収集は3層構成で始めました。
- 地図データ(OpenStreetMap)から関東7都県の動物園・水族館・博物館・図書館・公園をまとめて取得 → 約3,400件
- 手動キュレーションで大手チェーン(ボーネルンド・キドキド・ファンタジーキッズリゾート等)と認知度の高い施設を追加 → 約100件
- 記事発掘で note・アメブロの公開ページから「3歳と行ってよかった場所」系の候補記事を収集し、施設名候補を AI で抜き出して、住所から地図上の位置を調べる(ジオコーディング) → 約40件(最終的な掲載内容は施設名・位置情報などの事実情報に限定しています)
公開当初は合計3,500件ほどでしたが、3つ目の「記事発掘」は毎週土曜の朝に勝手に走る仕組み(クラウド上で動く自動処理)にしてあります。新しい候補記事を公開ページから探し → 施設名候補を抜き出し → 地図上の位置を調べて → データに追記 → 保存、まで全自動。何もしなくても毎週ちょっとずつ施設が増える 仕組みで、しばらく走らせ続けた結果、いまは47都道府県で15万件以上を収録するところまで育ちました。最新の数字は公開ツール側を参照してください。
なお、外部記事から取得しているのは 施設名候補を見つけるための手がかりに限定 しています。記事本文・レビュー文・写真・評価コメント等を転載することはせず、最終的にツールに掲載するのは 施設名・所在地・カテゴリなどの事実情報のみ です。取得元サイトの利用規約や robots.txt に反する使い方にならないよう運用は今後も見直していくつもりですし、掲載の停止や削除のご希望があった場合は リクエスト・連絡フォーム 等から知らせていただければ速やかに対応します。
公園データの罠
地図データの「公園」をそのまま全部入れると、住宅地の中にある名もなき街区公園が大量に混ざります。「○○公園」と名前がついていても、子連れでわざわざ行く価値があるとは限らない。
そこで 「名前が”公園”で終わっていて、かつ Wikipedia に項目があるくらい知られている公園」だけに絞り込む ことにしました。Wikipedia に載るレベルの公園なら、最低限「行く価値のある場所」だろう、という割り切りです。これで街区公園を排除しつつ、有名な大型公園は残せました。
隠れスポット — このツール独自のカテゴリ
定番の動物園や博物館だけだと、結局 既存サイトと差別化できない。そこで 独自のカテゴリ(隠れスポット)を作りました。例えば:
- 京王プラザホテル ibasho:宿泊しなくても利用できる本格的なキッズプレイルーム
- IKEAスモーランド:1時間無料で子供を預けられる(店舗・年齢・混雑状況により条件が異なるため、利用前に公式で確認)
- ITOCHU SDGs STUDIO KIDS PARK:商社が運営する無料の遊び場
- グロースリンクかちどき:複合ビル内の知育スペース
こういう「知ってる人は知ってるけど、検索してもなかなか出てこない場所」を集めることで、家族向けサイトとしての存在価値を出しています。
作りはかなり素朴です
中身は凝ったことをしていません。地図は Google マップの仕組みをそのまま借りていて、たくさんのマーカーが重なる場所は自動でまとめて表示しています。
特徴的なのは、施設のデータをまとめてブラウザに渡して、絞り込みは手元(ブラウザ側)でやってしまう ところです。サーバー側で検索する仕組みを持たないぶん、作りも運用もシンプルになります(楽天最安値検索ツールと同じ考え方です)。数万件くらいなら、この「全部渡して手元で絞る」やり方の方がむしろ速くて楽でした。今は15万件を超えたので、データを地域ごとに分けて少しずつ読み込ませています。
置き場所はいつものサイトを置く場所(Cloudflare Pages)で、データの更新は前述のとおり毎週勝手に走る仕組みに任せています。
おまけ:Google Maps の予算アラート
Maps JavaScript API は無料枠が広いとはいえ、何かの拍子に予想外の課金が起きるのが怖い。そこで Cloud Billing で 月¥500の予算アラート(50% / 90% / 100% でメール通知)を設定し、API キーには HTTPリファラ制限と API 種別制限をかけています。
ひとつ注意しておくと、予算アラートは「メール通知」であって、超えた瞬間に課金を止めてくれる安全装置ではありません。本当に守ってくれているのは API キーのリファラ制限・API 種別制限の方で、こちらが本命の防御線。予算アラートは「思ったより使ってる」に気づくための補助、くらいの位置づけです。
外部データの帰属について
OpenStreetMap から取得したデータには、利用条件として © OpenStreetMap contributors のクレジット表示が必要です。本ツールではフッターにこの帰属表示を入れています。Google Maps の表示についても、APIが自動で表示するクレジットをそのまま見せる形にしています。
まとめ
家族で出かける時に毎週開きたくなる、そんなツールに育てていきます。「ここが載ってない」「このカテゴリも欲しい」というリクエストは tool-koubou.com のリクエストフォームから送ってもらえると嬉しいです。
← 他の制作記を見る | トップ | お問い合わせ