【完全版】GASとGoogleマップ連携で店舗一覧を自動作成する方法|地図×リストで店舗管理を一気に効率化!

はじめに

「店舗一覧を手作業でまとめるのが大変すぎる…」
「Googleマップと連携して、一括で店舗管理できないかな?」

そんなあなたにぴったりなのが、
Google Apps Script(GAS)を使ったGoogleマップ連携による店舗一覧自動作成です!

この記事では、初心者でも実践できるように、
GASを使ってGoogleマップから店舗情報を取得し、スプレッドシートにまとめる方法をわかりやすく解説します。

これを導入すれば、
地図とリストを両方使ったスマートな店舗管理が実現できます!


GASでGoogleマップ連携するメリット

まず、なぜわざわざGASでGoogleマップと連携するのか?

  • 地図上の位置情報と店舗情報を一括管理できる

  • スプレッドシートにリアルタイムで店舗データを反映できる

  • 住所、緯度経度、営業情報なども自動取得できる

  • データ更新もワンクリックで自動化できる

  • 自作マップやサイト埋め込み用データ作成にも応用可能

つまり、
「手間なく正確な店舗リスト」を常に最新で持てるのです!


GASで店舗一覧を作成する基本設計

全体像を整理しましょう。

  1. スプレッドシートに店舗名またはキーワードを入力

  2. GASでGoogleマップAPI(Places API)にリクエスト

  3. 店舗の住所・緯度経度・電話番号などを自動取得

  4. スプレッドシートに一覧形式で保存

  5. 必要に応じて更新ボタンで再取得

これが基本の流れです!


【実践編】GASでGoogleマップ連携の店舗一覧作成をやってみよう!

ここから、実際に手を動かしていきましょう!


ステップ1:Google Cloud ConsoleでAPIキーを取得

まずはGoogle Cloud Consoleにアクセスし、

  • 新しいプロジェクトを作成

  • 「Places API」と「Maps JavaScript API」を有効化

  • APIキーを発行

このAPIキーをGASで使用します!


ステップ2:スプレッドシートの準備

スプレッドシートを作成して、以下のカラムを用意します。

  • A列:店舗名(検索キーワード)

  • B列:住所

  • C列:緯度

  • D列:経度

  • E列:電話番号

  • F列:ウェブサイトURL(任意)

このスプレッドシートが店舗データベースになります!


ステップ3:Apps Scriptエディタでスクリプトを書く

スプレッドシートの「拡張機能」→「Apps Script」を開き、以下のコードを記載します!

function fetchStoreInfo() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1');
  const data = sheet.getDataRange().getValues();
  const apiKey = 'あなたのGoogle APIキー';

  for (let i = 1; i < data.length; i++) {
    const storeName = data[i][0];
    if (!storeName) continue;

    const query = encodeURIComponent(storeName);
    const url = `https://maps.googleapis.com/maps/api/place/textsearch/json?query=${query}&key=${apiKey}`;
    const response = UrlFetchApp.fetch(url);
    const result = JSON.parse(response.getContentText());

    if (result.results && result.results.length > 0) {
      const place = result.results[0];
      const placeId = place.place_id;
      const detailUrl = `https://maps.googleapis.com/maps/api/place/details/json?place_id=${placeId}&key=${apiKey}`;
      const detailResponse = UrlFetchApp.fetch(detailUrl);
      const detailResult = JSON.parse(detailResponse.getContentText());

      if (detailResult.result) {
        const detail = detailResult.result;
        sheet.getRange(i + 1, 2).setValue(detail.formatted_address || '');
        sheet.getRange(i + 1, 3).setValue(detail.geometry.location.lat || '');
        sheet.getRange(i + 1, 4).setValue(detail.geometry.location.lng || '');
        sheet.getRange(i + 1, 5).setValue(detail.formatted_phone_number || '');
        sheet.getRange(i + 1, 6).setValue(detail.website || '');
      }
    }
  }
}

このスクリプトで、

  • 店舗名をもとにGoogleマップで検索

  • 詳細情報(住所、緯度経度、電話番号など)を取得

  • スプレッドシートに自動書き込み

が実現できます!


ステップ4:実行してみよう!

Apps ScriptでfetchStoreInfoを実行すれば、
スプレッドシート上に店舗情報が自動入力されるようになります!


トリガー設定で定期更新も可能!

もし店舗情報を定期的に更新したい場合は、
トリガーを設定して自動実行させましょう。

手順:

  • スクリプトエディタで「トリガー」→「新しいトリガー」

  • 関数をfetchStoreInfo

  • イベントを「時間主導型」(例:毎週月曜10時)に設定

これで、
最新の店舗情報を定期的にメンテナンスできるようになります!


さらにできる応用アイデア

Googleマップ連携は、さらにこんな使い方もできます!

  • 取得した緯度経度を使ってオリジナルマップ(My Maps)を作成

  • 近隣検索(指定半径内の店舗を一覧取得)

  • カテゴリー(カフェ、レストランなど)別にフィルター管理

  • 営業時間データも取得してシフト管理に連動

  • 店舗ごとのレビュー情報も合わせて取得・分析

アイデア次第で、店舗管理がどんどんスマート化できます!


よくあるエラーと対策

初心者がハマりやすいポイントも整理しておきます!

■ APIキーの設定ミス

  • 有効化されているAPI(Places API)とプロジェクトが正しいか確認しましょう!

■ リクエスト制限超過

  • 無料枠には1日のリクエスト数制限があるので注意!

■ 住所取得できないケース

  • マイナーな店舗や表記揺れがある場合、結果ゼロになることもあります。

  • 店舗名+住所や「〇〇市 △△店」など具体的なワードにするとヒットしやすいです!


まとめ|GASでGoogleマップ連携すれば、店舗一覧作成が超ラクになる!

この記事では、
GASとGoogleマップを連携して店舗一覧を作成する方法を初心者向けに徹底解説しました!

✅ GoogleマップAPIで店舗情報取得
✅ スプレッドシートに自動整理
✅ 更新もワンクリックで完了
✅ トリガー設定で完全自動運用!

これができれば、
もう手作業で店舗データをまとめる必要はありません!

今日からあなたも、
**「スマート店舗管理担当」**になりましょう!

Shop now