GitHub - CRaLFa/google-maps-restaurant-list-finder: 日本国内の Google マップ公式エリア別レストランリストを地図から探せるようにした Web アプリ · GitHub
Skip to content

About

日本国内の Google マップ公式エリア別レストランリストを地図から探せるようにした Web アプリ

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Google マップ レストランリスト検索

Google マップ公式のエリア別レストランリスト (「渋谷: トップリスト」等) を地図から探せるようにした Web アプリ。 対象は 日本国内のみで、海外のエリアは扱わない。

https://google-maps-restaurant-list-finder-bxnbzgrdda-an.a.run.app

現在 201 エリア / 601 リストを収録している。

レストランリストとは

Google マップがエリアごとに用意している公式のおすすめレストラン一覧のこと。 Google 公式ブログ で 2024 年 4 月に発表された機能で、ユーザーが作ったリストではなく、Google マップ上で人々が興味を持っている・お気に入りに登録している場所のデータから自動で作られる。

エリアごとに次の 3 種類がある (括弧内は公式ブログでの英語名)。

リスト 中身
🏆 トップリスト (Top List) Google マップ コミュニティで常に人気の定番店。長年愛されている実績のある店
💎 地元で人気 (Gems) 近所の隠れた名店。まだあまり知られていない店
📢 トレンド (Trend) 最近人気が急上昇した店。毎週更新される

Google マップアプリでエリア名を検索し、下から出てくるシートを上にスワイプすると表示される。 リストに載っている店の詳細を開くと、その店が入っているリストへのリンクが出るので、そこから辿ることもできる。 いずれにせよエリア名か掲載店を先に知っていないと辿り着けない。

何ができるか

  • 地図から探す。 エリアごとのピンをクリックすると、そのエリアの 3 種類のリスト (トップリスト / トレンド / 地元で人気) へのリンクが開く。
  • 地名で絞る。 検索ボックスに入れると、ヒットしたエリアだけに地図のピンと左のツリーが絞られる。 エリア名でも所在地でも引ける (「名古屋」で名古屋市内の区が出る)。
  • 都道府県から辿る。 左のツリーは 都道府県 ▶ 市 ▶ 区 ▶ エリア ▶ リストの入れ子。 池袋は東京都 ▶ 豊島区 の下に出る。 都道府県と市区町村は全国地方公共団体コード順、繁華街などのエリアは北から南の順に並ぶ。 名前の横の括弧の数字は、その下にあるエリアの数。
  • 漏れを報告する。 一覧に無いエリアを見つけたら、左下のボタンから報告できる。

ブラウザがダークモードなら、地図も含めて暗い配色で表示される。 スマートフォンでは地図とツリーが縦に積まれる。

ピンの位置はエリアの中心ではない。 Google マップの共有 URL を開いたときに地図が寄る中心座標をそのまま使っており、そのエリアの「トップリスト」の中心にあたる。 リストに載っている店の分布で決まる値なので、行政区画としてのエリアの中心とは数 km ずれることがある。 同じエリアの 3 リスト (トップリスト / トレンド / 地元で人気) でも中心は一致しないため、トップリストの値を代表として全リストに使っている。 ピンはエリアを探すための目印であって、正確な位置を示すものではない。

なぜ作ったか

Google データエクスポート (Takeout) では、自分が作成したリストのスポットは取得できるが、他人が作成し自分がフォロー (保存) したリストの中身は含まれない。

Google 公式のエリア別リストはまさに後者にあたる。 そのうえ「渋谷: トップリスト」のようなリストはアプリ内で地道に探すしかなく、全国にどれだけあるのかを一覧する手段が無い。

そこで実機の Google マップアプリを adb + uiautomator で自動操作して共有 URL を集め、地図上に並べて探せるようにした。

構成

層 使っているもの
フロント 単一 HTML + Maps JavaScript API。ビルド無し
サーバ Go / Cloud Run。静的ファイルを //go:embed で埋め込んだバイナリ 1 個
データ Firestore (Native)
スパム対策 reCAPTCHA Enterprise + サーバ側のレート制限
収集 Python + adb + uiautomator (実機の Google マップアプリを自動操作)。座標の取得のみ PC のブラウザ

ドキュメント

  • docs/development.md — 開発ガイド。 セットアップ、環境変数、収集スクリプトの使い方、新しいエリアを追加する手順、CI/CD、Firestore のデータとバックアップ・復旧。
  • docs/webapp-design.md — Web アプリの設計と、正データを TSV から Firestore へ移した記録。 データモデル、API、画面設計、採用しなかった案とその理由。 末尾に今後の課題 (フロントの TypeScript 化) をまとめている。
  • docs/adb-workflow.md — adb + uiautomator による収集手順の実証結果とハマりどころ。 リスト一覧の全件収集 (スワイプの慣性による取りこぼしと対策)、共有 URL の取得、欠落しているエリア別リストの追加取得 (geo: インテント・曖昧なエリア名の扱い)。
  • docs/missing-areas.md — 政令指定都市の区や繁華街エリアの調査結果。

注意

このリポジトリが集めているのは Google マップ上の公式リストへの共有 URL であって、リスト内のスポットの情報ではない。 リストの中身は共有 URL を開いて Google マップ上で見ることになる。

収録範囲は日本国内に限っている。 エリアの階層は 都道府県 ▶ 市区 ▶ エリア という日本の住所の形を前提に組み立てており、報告フォームの都道府県も 47 都道府県からしか選べない。 海外のエリアを足すには階層の組み立てから作り直しが要る。

利用規約

公開しているページは Google マップの機能とコンテンツを利用している。 利用には Google の Google マップ追加利用規約 と プライバシーポリシー が適用される。

About

日本国内の Google マップ公式エリア別レストランリストを地図から探せるようにした Web アプリ

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages