Google Maps Embed APIでwebサービスを作りたい全ての人に向けて書きました

  • 2014.07.21(Mon) 12:30
  • APIの使い方
Google Maps Embed APIの写真

位置情報を取り扱うwebサービスや、観光ブログなんかではGoogle Mapsをページに埋め込む機会が多いと思います。今回は「新しいGoogle Maps」の埋め込み地図を自由にカスタマイズできる「Google Maps Embed API」の使い方を解説します。

このAPI、2014年7月現在、1日の使用可能回数が200万回と、制限がとても緩いのでwebサービスにとっても組み込みやすいんです。さすがGoogle様!

Google Maps Embed API Google Developers

目次

  1. API KEYを作成する
    1. Googleのアカウントを用意する
    2. Googleコンソールにアクセスする
    3. 新しいプロジェクトを作成する
    4. APIリストを表示する
    5. 「Google Maps Embed API」を探す
    6. 「無効」をクリックして「有効」にする
    7. 「有効」になっていることを確認する
    8. 「新しいキーを作成」をクリックする
    9. キーのタイプを選択する
    10. 許可するリファラーを設定する
    11. 発行されたAPI KEYを確認する
  2. 4つのモードでGoogle Mapsを埋め込む
    1. Place mode (マーカー付きの地図)
    2. Search mode (検索結果の地図)
    3. Directions mode (アクセス方法の地図)
    4. View mode (マーカーなしの地図)
  3. Google Mapsの埋め込み地図用のHTMLタグ
    1. 基本的なiframeタグ
    2. レスポンシブに対応したiframeタグ

1API KEYを作成する

ここが難関…、というか一番面倒くさいフェーズだと思って下さい。「Google Maps Embed API」を利用するには、「API KEY」が必須です。「API KEY」とは「誰がAPIを使っているか」を示すキーで、Google側が使用回数制限の状況などを把握するのに必要です。まずは、API KEYを取得しましょう。難しいことは全くなく、ただの作業です。

1-1Googleのアカウントを用意する

Googleのアカウントを作成する
Googleのアカウントを作成する

API KEYを取得するには、Googleのユーザーアカウントが必要です。まだ持っていない人は作成して下さいね。

Google アカウントの作成 Google

1-2Googleコンソールにアクセスする

Googleコンソール
Googleコンソール

下記のリンクから、「Googleコンソール」という画面にアクセスして下さい。ここはGoogleの様々なAPIを利用する拠点となるページです。まだの場合はログインが求められます。ここで、まずは「プロジェクトを作成」をクリックして下さい。「プロジェクト」とは、ここでは「あなたのwebサイト」と同義だと思って大丈夫です。

Google Developers Console Google

1-3新しいプロジェクトを作成する

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

入力画面が出現するので、好きなプロジェクト名を入力します。私の場合は、このブログ名と同じ「Syncer」というプロジェクト名にしました。プロジェクトIDは、自動的に決まるランダムな文字列なので、気にしなくて大丈夫です。プロジェクト名を入力したら「作成」をクリックすれば完了です。

1-4APIリストを表示する

APIリストを表示する
APIリストを表示する

プロジェクトが作成できたら、左メニューの「APIと認証」→「API」とクリックして、APIの一覧を表示させて下さい。Googleが提供する全APIです。(上記画像はクリックすると拡大できます。)

1-5「Google Maps Embed API」を探す

Google Maps Embed API
Google Maps Embed API

表示させたAPI一覧の中から、「Google Maps Embed API」を探して下さい。これが、Google Mapsの埋め込み地図をカスタマイズするためのAPIの名称です。

1-6「無効」をクリックして「有効」にする

「無効」をクリックする
「無効」をクリックする

「Google Maps Embed API」の右側にある「無効」というボタンをクリックして、「有効」に変更して下さい。これで、あなたのプロジェクトで「Google Maps Embed API」を利用することができるようになります!

1-7「有効」になっていることを確認する

「有効」になっていることを確認する
「有効」になっていることを確認する

「無効」の文字が、緑色の「有効」になっていれば、大丈夫です。次の作業に進んで下さい。

1-8「新しいキーを作成」をクリックする

「新しいキーを作成」をクリックする
「新しいキーを作成」をクリックする

続いて左メニューの「APIと認証」→「認証情報」とクリックして下さい。上記図のような画面に移動するので、下の方の「新しいキーを作成」をクリックして下さい。このキーが、API KEYのことです。

1-9キーのタイプを選択する

キーのタイプを選択する
キーのタイプを選択する

キーのタイプを選択します。今回はweb画面でGoogle Mapsを表示させるので「ブラウザキー」を選択しましょう。アプリなどを作成する場合は「Androidキー」「iOSキー」が必要になってきますねー。

1-10許可するリファラーを設定する

許可するリファラーを設定する
許可するリファラーを設定する

「許可するリファラー」を設定します。API KEYを使用できるwebサイトのURLのことですね。入力を間違えてAPI KEYが使えなかったりすると混乱するので、ここではまだ空白のまま、「作成」をクリックしてしまいましょう。必要なら後で再設定することができます。

1-11発行されたAPI KEYを確認する

API KEYを確認する
API KEYを確認する

お疲れ様でした!これでAPI KEYが発行されたはずです。「Google Maps Embed API」は、ソースコード上からユーザーにAPI KEYが丸見えになる性質なので、特に秘密にする必要はありません。他のwebサイトで勝手に使用されるのを防ぎたい場合は「許可するリファラー」を設定することで対応しましょう。

24つのモードでGoogle Mapsを埋め込む

それではいよいよ、iframeタグ内に指定するGoogle Maps Embed APIの「埋め込み地図用URL」を組み立てていきましょう。埋め込み地図用URLは、基本的に下記のように組み立てます。Google Mapsの埋め込みには4つのモードが用意されていて、赤文字の「モード」という部分に、それぞれに対応したコードを入れることになります。

2-1Place mode (マーカー付きの地図)

Place modeのGoogle Maps
Place modeのGoogle Maps (サンプル画像)

「Place mode」は、最もスタンダードな地図です。紹介したい1つの場所にマーカーを立てた地図を表示します。コードはplaceです。qパラメータに「目的の場所」を指定して下さい。「緯度、経度」を指定しても、「場所名」を指定しても大丈夫ですが、日本語の場合はURLエンコードをする必要があります。

指定できるパラメータ

パラメータ説明
key[必須] API KEY
q[必須] マーカーを立てる場所
center地図の中心地を緯度、経度で指定
zoomズームを0〜21の間で指定
maptypeマップタイプ
- [初期値] roadmap
- [roadmap] 通常の地図
- [satellite] 衛星写真
language地図上に表記される言語
- [ja] 日本語
- [en] 英語
region境界線やラベルなどの材料となる地域
- [jp] 日本
ccTLD(トップレベルドメイン)のコードを指定する

サンプルプログラム

例えばPHPで埋め込み用タグを生成するには、次のようにプログラミングしましょう。

//API KEY
$key = "AIza...Y3EE";

//表示したい場所名(普段Googleの検索バーに入力する感覚で指定)
$name = "竹の塚 らーめん大";

//URLエンコード
$q = rawurlencode($name);

//埋め込み地図用URL
$url = "https://www.google.com/maps/embed/v1/place?key={$key}&q={$q}";

//地図を出力
echo "<iframe src=\"{$url}\" width=\"640\" height=\"480\"></iframe>";

2-2Search mode (検索結果の地図)

Search modeのGoogle Maps
Search modeのGoogle Maps (サンプル画像)

「Search mode」は、地図上で検索結果を表示します。例えば、上記図は「竹の塚 ラーメン店」で検索した結果です。該当場所に赤いアイコンが表示され、それをクリックすると、その場所の情報を確認することができます。コードはsearchで、qパラメータには「検索する施設名など」を指定して下さい。日本語の場合はURLエンコードが必要です。

指定できるパラメータ

パラメータ説明
key[必須] API KEY
q[必須] 検索キーワード
center地図の中心地を緯度、経度で指定
zoomズームを0〜21の間で指定
maptypeマップタイプ
- [初期値] roadmap
- [roadmap] 通常の地図
- [satellite] 衛星写真
language地図上に表記される言語
- [ja] 日本語
- [en] 英語
region境界線やラベルなどの材料となる地域
- [jp] 日本
ccTLD(トップレベルドメイン)のコードを指定する

サンプルプログラム

PHPで、Search modeのGoogle Mapsを出力するには、次のようにプログラミングしてみて下さい。

//API KEY
$key = "AIza...Y3EE";

//検索したい施設名など(普段Googleの検索バーに入力する感覚で指定)
$name = "竹の塚 ラーメン店";

//URLエンコード
$q = rawurlencode($name);

//埋め込み地図用URL
$url = "https://www.google.com/maps/embed/v1/search?key={$key}&q={$q}";

//地図を出力
echo "<iframe src=\"{$url}\" width=\"640\" height=\"480\"></iframe>";

2-3Directions mode (アクセス方法の地図)

Directions modeのGoogle Maps
Directions modeのGoogle Maps (サンプル画像)

「Directions mode」は、「出発地から目的地までのアクセス方法」を地図上に描写します。コードはdirectionsで、「出発地」「目的地」「経由地」など、細かい指定が可能です。地名を日本語で指定する場合はURLエンコードが必要です。

指定できるパラメータ

パラメータ説明
key[必須] API KEY
origin[必須] 出発地名
destination[必須] 目的地名
waypoints経由させたい地名
※最大20カ所まで | で区切って指定できる
mode交通手段
- [driving] 車
- [walking] 徒歩
- [bicycling] 自転車
- [transit] 電車など
- [flying] 飛行機
※指定しない場合、最適な交通手段が自動的に選択される
avoid避けたいコース
- [tolls] 有料コース
- [ferries] フェリー
- [highways] 高速道路
※複数指定する場合は | で区切る
units距離の単位
- [metric] メートル
- [imperial] マイル
※指定しない場合、表示する場所で一般的に使用されている単位が適用される
center地図の中心地を緯度、経度で指定
zoomズームを0〜21の間で指定
maptypeマップタイプ
- [初期値] roadmap
- [roadmap] 通常の地図
- [satellite] 衛星写真
language地図上に表記される言語
- [ja] 日本語
- [en] 英語
- [en] 英語
region境界線やラベルなどの材料となる地域
- [jp] 日本
ccTLD(トップレベルドメイン)のコードを指定する

サンプルリクエスト

例えば、「池袋駅」から「大塚駅」まで、「屯ちん(ラーメン屋さん)」「サンシャイン水族館」を経由して、「徒歩」でアクセスするための案内地図だったら、次の通りURLを組み立てます。ついでに、距離を「マイル」にしておきました。実際には、日本語部分をURLエンコードして下さい。

サンプルのデモ

上記リクエストを実際に稼働させてみました。指定通りの経由地を通っていること、表示している距離がマイルになっていることなど、確認してみて下さいね!

2-4View mode (マーカーなしの地図)

View modeのGoogle Maps
View modeのGoogle Maps (サンプル画像)

「View mode」は、目的の場所を、マーカーなしで表示するモードです。コードはviewになります。「Place mode」との違いは、マーカーの有無だけです。

指定できるパラメータ

パラメータ説明
key[必須] API KEY
center地図の中心地を緯度、経度で指定
zoomズームを0〜21の間で指定
maptypeマップタイプ
- [初期値] roadmap
- [roadmap] 通常の地図
- [satellite] 衛星写真
language地図上に表記される言語
- [ja] 日本語
- [en] 英語
region境界線やラベルなどの材料となる地域
- [jp] 日本
ccTLD(トップレベルドメイン)のコードを指定する

サンプルリクエスト

それでは「東京スカイツリー」の衛星写真を表示させてみましょう。衛星写真にする場合、ズーム値を18にすると、いい感じになります。

サンプルのデモ

これが、実際に上記のリクエスト通りに埋め込んでみたGoogle Mapsのデモです。地図を上にスクロールさせて行くと面白いですよー。

3Google Maps埋め込み用のHTMLタグ

「Google Maps Embed API」を利用して組み立てたURLを活用するためのHTMLタグのサンプルを紹介します。

3-1基本的な埋め込み地図用コード

iframeタグは次のように指定します。組み立てた埋め込み地図用URLを「{埋め込み地図用URL}」の部分に入れて下さい。

<iframe src="{埋め込み地図用URL}" width="600" height="450" frameborder="0"></iframe>

3-2レスポンシブに対応した埋め込み地図用コード

スマホ表示に対応する場合、下記のようにHTMLとCSSを組み合わせることで、レスポンシブに対応することができます。

HTML

<div class="googlemaps">
	<iframe src="{埋め込み地図用URL}" width="600" height="450" frameborder="0"></iframe>
</div>

CSS

.googlemaps{
	position:relative;
	padding-bottom:56.25%;
	height:0;
	overflow:hidden;
	max-width:100%;
	height:auto;
}

.googlemaps iframe{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}

この記事へのコメント

感想、ご指摘などお気軽にお寄せ下さい。「関連記事を書いた」という方はご報告いただければリンクします。

コメントを書き込む

  • コメント

※Twitter、Facebook、はてな、いずれかのアカウントをお持ちの方は、本人認証(ログイン)を行なうことができます。
※本人認証をすることで、書き込みの待ち時間なし、画像アップロード、アイコンなどが利用できます。
※認証時にサービスと連携しますが、名前とアイコン以外の情報を読み込んだり、また書き込みを行なうことはありません。連携で要求する権限は「公開情報の読み取り」のみです。

コメントは、0件です。

記事の更新履歴

  • 記事を公開しました。
    2014/07/21 12:30

ブログの著者について

あらゆ

Yuta Arai(あらゆ)

足立区竹ノ塚在住の1982年生まれ。ウェブとラーメンが大好きです。
info@syncer.jp

あいさつボタン