Googleマップをタブ切り替えに表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

タブ切り替え

Googleマップをタブ切り替えに表示する方法

Googleマップをタブ切り替えに表示する方法を紹介します。このサンプルでは、複数のGoogleマップを1つの表示エリアにまとめ、タブをクリックすると対応する地図へ切り替えられるようにします。HTMLのiframeでGoogleマップを埋め込み、CSSでタブと表示エリアを整え、JavaScriptで選択したタブに対応する地図だけを表示します。

店舗案内や会社案内、支店・営業所のアクセスページなど、複数の場所を1ページで紹介したい場合に利用できます。すべての地図を縦に並べるのではなく、タブごとに表示を切り替えられるため、地図をまとめて見やすく配置できます。タブをクリックするだけで表示地点を変更できるので、複数店舗を掲載するWebサイトにも導入しやすい構成です。

タブ名やGoogleマップの埋め込みURLはHTMLから変更でき、CSSでは全体の横幅、余白、タブの色、枠線、角丸、地図の高さなどを調整できます。画面幅に合わせて全体とiframeが縮小するレスポンシブ対応としているため、スマートフォン・タブレット・PCで利用できます。HTML・CSS・バニラJavaScriptで構成した、カスタマイズしやすいサンプルです。

コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。
免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

デモ

Googleマップをタブ切り替えで表示

タブをクリックすると、東京・大阪・名古屋のGoogleマップへ切り替わります。

東京

大阪

名古屋

「東京」「大阪」「名古屋」のタブをクリックすると、対応するGoogleマップへ表示が切り替わります。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>Googleマップをタブ切り替えに表示する方法</title>

  <!-- CSSファイル -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- Googleマップのタブ切り替え全体 -->
  <div class="google-map-tab-switch_wrap">

    <!-- タイトル -->
    <div class="google-map-tab-switch_title">
      Googleマップをタブ切り替えで表示
    </div>

    <!-- 説明文 -->
    <p class="google-map-tab-switch_text">
      タブをクリックすると、表示するGoogleマップを切り替えられます。
    </p>

    <!-- タブ一覧 -->
    <div class="google-map-tab-switch_tabs">

      <button
        class="google-map-tab-switch_tab is-active"
        type="button"
        data-tab="map1">
        地図1
      </button>

      <button
        class="google-map-tab-switch_tab"
        type="button"
        data-tab="map2">
        地図2
      </button>

      <button
        class="google-map-tab-switch_tab"
        type="button"
        data-tab="map3">
        地図3
      </button>

    </div>

    <!-- 地図1 -->
    <div
      class="google-map-tab-switch_panel is-active"
      data-panel="map1">

      <p class="google-map-tab-switch_label">
        地図1
      </p>

      <div class="google-map-tab-switch_frame">

        <!--
          Googleマップの埋め込みURLをsrc属性へ設定します。

          【埋め込みURLの調べ方】
          1. Googleマップで表示したい場所を検索します。
          2. 「共有」をクリックします。
          3. 「地図を埋め込む」を選択します。
          4. 「HTMLをコピー」をクリックします。
          5. コピーしたiframeコード内の
             src="..." に書かれているURLだけをコピーします。
          6. 下記の YOUR_GOOGLE_MAP_EMBED_URL_1 を
             コピーしたURLへ置き換えてください。

          このサンプルではGoogle Maps JavaScript APIを使用しないため、
          APIキーやMap IDをJavaScriptへ設定する必要はありません。
        -->
        <iframe
          src="YOUR_GOOGLE_MAP_EMBED_URL_1"
          title="地図1"
          loading="lazy"
          allowfullscreen>
        </iframe>

      </div>

    </div>

    <!-- 地図2 -->
    <div
      class="google-map-tab-switch_panel"
      data-panel="map2">

      <p class="google-map-tab-switch_label">
        地図2
      </p>

      <div class="google-map-tab-switch_frame">

        <!--
          YOUR_GOOGLE_MAP_EMBED_URL_2 を、
          2つ目に表示したいGoogleマップの埋め込みURLへ
          置き換えてください。
        -->
        <iframe
          src="YOUR_GOOGLE_MAP_EMBED_URL_2"
          title="地図2"
          loading="lazy"
          allowfullscreen>
        </iframe>

      </div>

    </div>

    <!-- 地図3 -->
    <div
      class="google-map-tab-switch_panel"
      data-panel="map3">

      <p class="google-map-tab-switch_label">
        地図3
      </p>

      <div class="google-map-tab-switch_frame">

        <!--
          YOUR_GOOGLE_MAP_EMBED_URL_3 を、
          3つ目に表示したいGoogleマップの埋め込みURLへ
          置き換えてください。
        -->
        <iframe
          src="YOUR_GOOGLE_MAP_EMBED_URL_3"
          title="地図3"
          loading="lazy"
          allowfullscreen>
        </iframe>

      </div>

    </div>

  </div>

  <!-- JavaScriptファイル -->
  <script src="script.js"></script>

</body>
</html>
コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。
サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでは3つのタブと、それぞれに対応するGoogleマップのiframeを配置します。CSSではタブや地図表示エリアのデザインとレスポンシブ表示を設定し、JavaScriptではクリックしたタブに対応するGoogleマップだけを表示する処理を行います。

sample/
├── index.html
├── style.css
└── script.js

各ファイルの役割
index.htmlはタブとGoogleマップを構成するファイルです。「地図1」「地図2」「地図3」のタブ名やラベルを変更できます。また、各iframeのsrc属性へ利用者自身で用意したGoogleマップの埋め込みURLを設定します。

Googleマップの埋め込みURLは、Googleマップで表示したい場所を検索し、「共有」から「地図を埋め込む」を選択して取得できます。「HTMLをコピー」で取得したiframeコードのsrc="..."部分に書かれているURLを使用してください。サンプル内のYOUR_GOOGLE_MAP_EMBED_URL_1YOUR_GOOGLE_MAP_EMBED_URL_2YOUR_GOOGLE_MAP_EMBED_URL_3を、それぞれ取得したURLへ置き換えます。このサンプルはGoogle Maps JavaScript APIを使用していないため、APIキーやMap IDをJavaScriptへ設定する必要はありません。

style.cssはタブ切り替え全体の横幅、余白、背景色、枠線、角丸、タブの色、Googleマップの表示サイズなどを設定するファイルです。選択中のタブは青色で表示され、現在選択している地図を確認できます。

script.jsはタブをクリックしたときの切り替え処理を行うファイルです。クリックされたタブのdata-tabを取得し、同じ値を持つdata-panelのパネルだけへis-activeクラスを付けて表示します。

設置方法・使い方
sampleフォルダへindex.htmlstyle.cssscript.jsを同じ階層で保存します。次にGoogleマップで表示したい場所をそれぞれ検索し、埋め込みURLを取得してください。取得したURLをindex.html内のYOUR_GOOGLE_MAP_EMBED_URL_1からYOUR_GOOGLE_MAP_EMBED_URL_3へ設定します。設定後、sample/index.htmlをブラウザで開くと、3つのタブからGoogleマップを切り替えて表示できます。

カスタマイズできる内容
index.htmlではタイトル、説明文、「地図1」「地図2」「地図3」のタブ名、各地図のラベル、iframeへ表示するGoogleマップの埋め込みURLを変更できます。表示したい店舗、施設、観光地などに合わせて、それぞれ異なるGoogleマップを設定できます。

style.cssでは全体の最大横幅、余白、背景色、枠線、角丸、タブの背景色・文字色、地図表示エリアの高さなどを変更できます。

数値調整
style.css

max-width:700px;
タブ切り替え全体の最大横幅です。値を大きくすると全体が横に広がり、小さくするとコンパクトになります。

margin:40px auto;
タブ切り替え全体の上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。

padding:32px;
全体の内側余白です。値を大きくすると内容と外側の枠線との間隔が広がります。

border-radius:18px;
タブ切り替え全体の角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

font-size:22px;
タイトルの文字サイズです。値を大きくするとタイトルが大きく表示されます。

padding:14px;
タブの内側余白です。値を大きくするとタブが大きくなります。

margin-left:6px;
隣り合うタブ同士の間隔です。値を大きくするとタブの間隔が広がります。

padding:18px;
Googleマップを表示するパネルの内側余白です。値を大きくすると地図とパネルの枠線との間隔が広がります。

height:450px;
通常画面でのGoogleマップ表示エリアの高さです。値を大きくすると地図が縦に広く表示され、小さくすると低くなります。

height:360px;
画面幅640px以下でのGoogleマップ表示エリアの高さです。スマートフォンで表示する地図の高さを調整できます。

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssのwidth:100%max-width:700pxにより、画面幅に合わせてタブ切り替え全体が縮小されます。Googleマップのiframeにもwidth:100%を指定しているため、親要素の横幅に合わせて表示されます。また、画面幅640px以下では全体・タブ・パネルの余白を小さくし、地図の高さを360pxへ変更しています。スマートフォン・タブレット・PCで利用できる構成です。


こちらもおすすめ


コメント