Google Maps APIを使ってGoogle Mapsをウェブサイトに表示させる方法

ウェブサイトにGoogle Mapsを埋め込んで、自分好みにカスタマイズしたい場合は「Google Maps API」を使う必要があります。
今回はこのGoogle Maps APIの取得方法から、ウェブサイト上に表示させるところまでの流れをまとめておきます。
Google Maps APIの料金プラン
2018年7月16日以前は、無料版と有料版に分かれていて、最低限の機能は無料版で、それ以上のカスタマイズがしたい場合は有料版を使う必要がありました。
しかし、2018年7月16日以降はそれが統合され、「Google Maps Platform」という1つのサービスになりました。
そして料金形態も使用した分に応じて変動する方式で、毎月$200ドル分は無料で使用できます。
使用する機能によっても変わってくるので、具体的にどれくらい利用すると料金が発生するのかは、下記のページをご覧ください。
クライアントのサイトで使用する場合は、クライアント側にGoogle Maps APIを取得しておいてもらわないと、料金が発生したときに話がややこしくなりますし、使用料によって料金がかかることも事前に考慮しておく(してもらっておく)必要があります。
Google Maps APIキーの取得方法
Google Maps APIキーは、下記のサイトから登録します。
また、取得するGoogleアカウントでログインする必要があるので、アカウントを間違えないように注意しましょう。
Google Cloud Platformでプロジェクトの作成
アクセスしたページの「Creating API keys」にある「Go to the project selector page」と書かれた青いボタンをクリックします。

「Google Cloud Platform」というサイトへ遷移するので、ここで新しいプロジェクトを作成します。

「プロジェクト名」と「場所(組織名やフォルダ)」を設定して、作成をクリックします。
Google Maps APIは、このプロジェクトに紐付く形で取得します。
APIを有効化する
プロジェクトを作成したら、サイドバーの[API とサービス]→[ダッシュボード]をクリックします。
![[API とサービス]→[ダッシュボード]](https://webrandum.net/mskz/wp-content/uploads/2020/11/image_3-5.png)
「API とサービス」ページへ移動するので、ページのタイトル右にある「API とサービスの有効化」をクリックします。

「API ライブラリ」というページへ移動します。
このページでGoogleのAPIの有効化ができるのですが、今回は「Maps JavaScript API」を有効化できればOKなので、探して有効化します。
よく使われるものなのでトップに表示されていると思いますが、見当たらない場合は「Maps JavaScript API」で検索しましょう。

「Maps JavaScript API」をクリックして、移動先のページで「有効にする」ボタンで有効化します。

APIを取得する
APIの有効化ができたので、あとは実際にAPI キーを作成して取得するだけです。
「API とサービス」のページに戻って、サイドバーの[認証情報]をクリックします。
認証情報ページのタイトル横にある「認証情報を作成」→「API キー」をクリックします。

これでAPIキーが作成されて、モーダル内に自分のAPIキーが表示されます。
このキーを使ってAPIの呼び出しを行うので、コピーしておきましょう。

ただ、APIキーの作成はできましたが、このままでは他の人にこのAPIキーを勝手に使われてしまう可能性もあります。
それを防止するためにキーの制限もしておきましょう。
モーダル右下の「キーを制限」をクリックします。
ページが移動するので、ここで自分がAPIキーを使用するサイトのURLやIPアドレス・アプリの情報を入力して、「キーを制限」にチェックを入れて「保存」すると、指定したサイトでしかAPIキーが機能しなくなります。

Google Maps APIは、最初に説明した通り使用した分に応じて変動してしまうので、誰かに使われてしまうことがないように、制限するようにしましょう。
APIキーの使用と確認
Google Maps APIを使用するためには、下記のスクリプトを読み込みます。
このとき、「APIキー」と書かれた場所に、先ほどの自分のAPIキーを入力します。
<script async defer src="https://maps.googleapis.com/maps/api/js?key=APIキー&callback=initMap"></script>実際にAPIキーの設定がちゃんとできているかの確認
Chrome拡張機能の「Google Maps Platform API Checker」を入れておくと、サイトを開いたときに拡張機能のアイコンの色によって、APIキーの設定状況を確認できます。
- 緑色:APIキーがちゃんと登録・設定されている
- 赤色:APIキーの設定がちゃんとされていない可能性がある
- グレー:Google Maps APIは利用されていない
赤色の場合は、APIが制限されていてアクセスできていない可能性もあるので、設定を見直しましょう。
基本のHTML
基本はdivタグを用意して、そのdivタグに対してnew google.maps.Map(マップを表示させるタグ, 地図のオプション)で地図の情報を入力して表示させます。
<div id="map"></div>
<script>
function initMap() {
let map = new google.maps.Map(document.getElementById('map'), {
center: {lat: - 35.681382, lng: 139.766083},
zoom: 8
});
}
</script>このオプションがいろいろあるのですが、最低限必須のオプションが「center」と「zoom」です。
「center」は中に{lat: 緯度, lng: 経度}の形式で緯度経度を指定して、「zoom」はマップの拡大率を「0」〜「22」の間で指定します。
あとはCSSでdivタグの大きさを指定してあげておけば、基本の表示はOKです。
#map {
width: 100%;
height: 420px;
}緯度と経度の覚え方
余談ですが、「lat(latitudeの略で緯度)」と「lng(longitudeの略で経度)」はGoogle Mapsを扱う上でよく出てくるので、ごっちゃにならないように覚えておきましょう。
どっちがどっちか分からなくなりそうですが、覚えやすい方法がこちらの記事で紹介されていました。
緯度は±90度で、経度は±180度まであります。
だから、数字として経度の方が長い(long)のでlongitudeが経度、残ったもう片方のlatitudeが緯度だそうです。





横幅が広がったときの挙動が変わる!CSS Gridの「auto-fill」と「auto-fit」の違い
アイコンフォントをPCにインストールしている場合は、コーディング後の確認に注意
「Dart Sass」「LibSass」「Ruby Sass」などSassの種類や記法に関するまとめ
Nuxt.jsでページを作成・追加する方法|Nuxt.jsの基本
Visual Studio CodeでMovable TypeのMTMLファイルを開く拡張機能「Movable Type Markup Language Syntax」
pointer-eventsプロパティでクリックイベントを無効化にする|気になるCSSプロパティ
TwitterとFacebook用のOGP設定方法と表示確認方法
gulp-plumberとgulp-notifyでgulpエラー時にデスクトップで通知がくるようにする
WebPに対応して画像サイズを最適化する方法
思考したり情報整理したい時はMarkdown記法で文章を書き出そう!!Webデザイナーの情報整理術
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
高機能なスクリーンショットアプリ「CleanShot X」
macOSの効率化に関するDiscordコミュニティ「CMD-F」を立ち上げました
1Passwordの開発者向け機能(SSH Agent / Environments / 1Password CLI / Developer Watchtower)
Default Folder Xで保存ダイアログ内のファイルリストにフォーカスする方法
Obsidianで整理した知識をAnkiで定着させる方法
Figma × Keyboard Maestroでどこまで効率化できる?
マウス操作の完成度が高いウインドウリサイズアプリ「Magnet」
Macで複数ディスプレイを使っている場合に便利な設定集
AppCleanerでMacアプリを関連ファイルごと完全に削除する
操作に没頭できる!Firefox版 Arcのようなブラウザ「Zen Browser」