Googleマップをトーストに表示する方法【HTML/CSS/JavaScript・サンプルコード付き】

トースト

Googleマップをトーストに表示する方法

Googleマップをトーストに表示する方法を紹介します。このサンプルでは、ボタンをクリックすると画面右下にトーストが表示され、その中へGoogleマップを埋め込みます。Googleマップから取得できる埋め込みURLをiframeへ設定するため、Google Maps JavaScript APIやAPIキーを使用せずに実装できます。

店舗サイトのアクセス案内、会社概要ページの所在地表示、イベント会場の案内、施設紹介ページなど、必要なときだけ地図を表示したい場面に利用できます。通常時は地図を非表示にしておき、「地図を表示」ボタンをクリックしたときだけ画面右下へ表示するため、ページ内のコンテンツを大きく占有せずにGoogleマップを確認できます。「×」ボタンをクリックするとトーストを閉じられます。

HTMLではGoogleマップの埋め込みURLやトースト内のタイトルを変更でき、CSSではトーストの横幅、位置、余白、角丸、影、地図の高さなどを調整できます。画面幅が狭い場合はトーストとGoogleマップが画面内へ収まるようにサイズを変更するため、スマートフォン・タブレット・PCで利用できます。

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

デモ

Googleマップをトーストに表示

ボタンをクリックすると、画面右下のトースト内に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>

  <!-- 操作エリア全体 -->
  <div class="google-map-toast_wrap">

    <!-- タイトル -->
    <div class="google-map-toast_title">
      Googleマップをトーストに表示
    </div>

    <!-- 説明文 -->
    <p class="google-map-toast_text">
      ボタンをクリックすると、画面右下のトースト内にGoogleマップを表示します。
    </p>

    <!-- 地図を表示するボタン -->
    <button
      type="button"
      class="google-map-toast_button"
      data-google-map-toast-open="">
      地図を表示
    </button>

  </div>

  <!-- Googleマップを表示するトースト -->
  <div class="google-map-toast_message" data-google-map-toast="">

    <!-- トースト上部 -->
    <div class="google-map-toast_header">

      <!-- トーストタイトル -->
      <div class="google-map-toast_heading">
        Googleマップ
      </div>

      <!-- 閉じるボタン -->
      <button
        type="button"
        class="google-map-toast_close"
        data-google-map-toast-close=""
        aria-label="Googleマップを閉じる">
        ×
      </button>

    </div>

    <!--
      【Googleマップの埋め込みURLの設定方法】

      1. Googleマップで表示したい場所を検索します。
      2. 「共有」をクリックします。
      3. 「地図を埋め込む」を選択します。
      4. 「HTMLをコピー」をクリックします。
      5. コピーしたiframeコード内の src="..." のURLを使用します。
      6. YOUR_GOOGLE_MAP_EMBED_URL を取得したURLへ置き換えてください。

      このサンプルではGoogle Maps JavaScript APIを使用しないため、
      APIキーやMap IDは必要ありません。
    -->
    <iframe
      class="google-map-toast_frame"
      src="YOUR_GOOGLE_MAP_EMBED_URL"
      title="Googleマップ"
      loading="lazy">
    </iframe>

  </div>

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

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

ファイル構成と設置方法

このサンプルはHTML・CSS・JavaScriptの3ファイルで構成されています。HTMLでは「地図を表示」ボタンと、Googleマップを表示するiframeを含んだトーストを作成します。CSSでは操作エリアやトーストの位置、横幅、余白、角丸、影、Googleマップの表示サイズなどを設定し、JavaScriptではボタンをクリックしたときの表示・非表示を切り替えます。

GoogleマップはGoogle Maps JavaScript APIではなく、Googleマップの「地図を埋め込む」から取得できる埋め込みURLをiframeのsrc属性へ設定して表示します。そのため、このサンプルではAPIキーやMap IDは使用しません。利用する際は、表示したい場所のGoogleマップ埋め込みURLを利用者自身で取得し、index.htmlのYOUR_GOOGLE_MAP_EMBED_URLへ設定します。

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

各ファイルの役割
index.htmlは、操作エリアとGoogleマップを表示するトーストを構成するファイルです。「Googleマップをトーストに表示」のタイトル、説明文、「地図を表示」ボタン、トースト内の「Googleマップ」という表示、閉じるボタン、Googleマップを読み込むiframeが含まれています。表示する場所を変更する場合は、iframeのsrc="YOUR_GOOGLE_MAP_EMBED_URL"を編集します。

style.cssは、操作エリアとトーストのデザインを設定するファイルです。操作エリアの横幅や余白、ボタンの色、トーストの表示位置、横幅、角丸、影、Googleマップの高さなどを変更できます。また、トーストは通常時には透明な状態で画面右下に配置され、is-showクラスが付くと表示される構成です。

script.jsは、トーストの表示と非表示を切り替えるファイルです。「地図を表示」ボタンをクリックするとトーストへis-showクラスを追加し、「×」ボタンをクリックするとis-showクラスを削除します。

設置方法・使い方
sampleフォルダへindex.html、style.css、script.jsを配置します。index.htmlからstyle.cssとscript.jsを読み込む構成になっているため、3ファイルは同じ階層へ保存してください。次に、トーストへ表示する場所のGoogleマップ埋め込みURLを用意します。

Googleマップで表示したい場所を検索し、「共有」をクリックします。共有画面から「地図を埋め込む」を選択し、「HTMLをコピー」をクリックしてください。コピーされるiframeコードの中にsrc="..."があります。このsrc属性に入っているURL部分を使用します。

取得した埋め込みURLを、index.htmlにあるYOUR_GOOGLE_MAP_EMBED_URLへ置き換えてください。iframeタグ全体を貼り付けるのではなく、src属性へ指定されているURLだけを設定します。この実装ではGoogle Maps JavaScript APIを使用していないため、APIキーやMap IDの取得・設定は必要ありません。設定後にsample/index.htmlをブラウザで開き、「地図を表示」をクリックすると画面右下のトースト内へGoogleマップが表示されます。「×」をクリックするとトーストが閉じます。

カスタマイズできる内容
index.htmlでは、操作エリアのタイトル、説明文、「地図を表示」ボタンの文章、トースト内のタイトルを変更できます。また、YOUR_GOOGLE_MAP_EMBED_URLへ別のGoogleマップ埋め込みURLを設定することで、トースト内へ表示する場所を変更できます。

style.cssでは、操作エリアの最大横幅、余白、背景色、角丸、ボタンの背景色、トーストの表示位置、横幅、余白、角丸、影、Googleマップの高さなどを変更できます。トーストのrightbottomを調整すると、画面右端・下端からの距離を変更できます。

数値調整
style.css
max-width:700px;
操作エリアの最大横幅です。値を大きくすると横に広がり、小さくするとコンパクトになります。

margin:40px auto;
操作エリアの上下余白です。40pxを大きくすると上下の間隔が広がり、小さくすると狭くなります。

padding:32px;
操作エリアの内側余白です。値を大きくすると内容と枠線の間隔が広がります。

border-radius:18px;
操作エリアの角丸です。値を大きくすると丸みが強くなり、0にすると四角になります。

font-size:22px;
操作エリアのタイトル文字サイズです。値を大きくすると文字が大きくなります。

padding:12px 24px;
「地図を表示」ボタンの内側余白です。上下の12pxと左右の24pxを変更するとボタンの大きさが変わります。

right:24px;
トーストと画面右端との間隔です。値を大きくすると画面右端から離れます。

bottom:24px;
トーストと画面下端との間隔です。値を大きくすると画面下端から離れます。

width:min(520px,calc(100vw - 48px));
トーストの横幅です。520pxが最大横幅となり、それより画面が狭い場合は画面幅に合わせて縮小されます。

padding:18px;
トーストの内側余白です。値を大きくするとトーストの枠と内容の間隔が広がります。

border-radius:12px;
トースト全体の角丸です。値を大きくすると丸みが強くなります。

box-shadow:0 12px 30px rgba(0,0,0,.18);
トーストへ表示する影です。12pxや30pxを変更すると、影の位置や広がり方が変わります。

transform:translateY(12px);
非表示時のトーストを下方向へ12px移動します。値を大きくすると表示時の移動距離が大きくなります。

transition:.3s;
トーストの表示状態が切り替わる時間です。0.3秒で変化します。値を大きくするとゆっくり、小さくすると速く切り替わります。

width:36px;height:36px;
「×」ボタンの横幅と高さです。値を大きくすると閉じるボタンが大きくなります。

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

レスポンシブ対応
このサンプルはレスポンシブ対応です。style.cssの操作エリアにはwidth:100%max-width:700pxを指定し、トーストにはwidth:min(520px,calc(100vw - 48px))を指定しているため、画面幅に合わせて横幅が縮小されます。Googleマップを表示するiframeにもwidth:100%を指定しているため、トーストの横幅に合わせて表示されます。

画面幅640px以下では、操作エリアの余白をpadding:24px 18px;へ変更し、トーストを右端・下端から16pxの位置へ配置します。トーストの横幅はcalc(100vw - 32px)となり、Googleマップの高さも360pxから300pxへ変更されるため、スマートフォン・タブレット・PCで利用できます。


こちらもおすすめ


コメント