WebページにGoogle Map埋め込む[Google Maps API]

# Google Maps APIを使えば場所や経路表示を埋め込める
店や会社のアクセスなどで使われているよく見るMapです。
昔はAPIキーを使わなくても表示できたようですが、今はAPIキーが必要です。
通常のサイト程度なら課金されることはないとのことですが、読み込み回数が一定以上になると課金されます。

ただ、制限をかけられますので設定をミスしなければ課金されなので安心して使いましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/4e09c446-5923-def9-486a-e1a0245575ae.png)

## 登録して使い始める
APIキーを取得するために、まずはGoogle Cloud Platform

[Google Cloud](https://cloud.google.com/)

「コンソール」からでもいいみたいですが「使ってみる」クリックして
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/a33a36cc-1273-b8e0-b2ae-7d8c6dca8408.png)

Mapを使いますので☑
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/ba1d48db-1c71-a177-36ef-98974e02a758.png)

プロジェクトは何でもいいですが名前を決めましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/90671127-8c5e-908c-3ab9-5623c2815de6.png)

# 有効化されていなかったら
左上のメニュー　→　APIとサービス　→　ダッシュボード
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/b43fddd0-080c-5c4e-b7eb-d0b47d280aeb.png)

有効化します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/c29755e6-c5d9-63ba-d7d1-ce05109c1627.png)

webアプリに使うのでjavascript使うことにします。
![map4.PNG](https://qiita-image-store.s3.amazonaws.com/0/260345/d3080912-1ab8-94aa-73bf-b56bc60e6e49.png)

こんな画面なる
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/993edb70-0f55-1398-6790-f33185006f66.png)

## APIを使えるようにする
認証情報を作成して使えるようにしていきます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/4a5a7f88-de6b-f246-0230-a3e677634264.png)

APIキー選択
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/882e3eda-819b-0722-9e7a-ceb0bb841ff2.png)

自分のキーが出ます。閉じないで「キーを制限」クリック
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/7c9984b3-80e4-b0d5-1ea6-8df78bfde071.png)

## 不正に使われないように制限を付ける

httpリファラーで制限を付けます。
使用するサイトのURL入れる。*はワイルドカード。www.やrootパス以下に適用します。
開発環境ならlocalhostなど。

`http://*.example.com/*（http の場合）
https://*.example.com/*（https の場合）
http://localhost/* とか http://*.localhost/*
`

複数登録できるので開発環境と本番環境登録しておくとよい思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/8188c9ad-ab24-dd5a-9654-862eb85785da.png)

APIの制限もしておきます。

今回はまだJavaScriptしか使っていないので１項目しかなかったですが、複数あった場合は使うものだけ選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/0e85f2ee-6855-5aee-9041-0b455a3f2185.png)


割り当て上限を設定する
APIサービス　→　下のほうにある Maps JavaScript API　→ 割り当て
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/9ec5a104-e684-2bb5-b29f-c84dfe5b5fae.png)

記事作成現在、一か月の読み込み回数が28500回なので28500 / 30 = 950

なので900とか800とか入れておきます。そうすれば課金はされません。
(回数は確認しておきましょう。ちゃんと設定していれば上限を超える方が難しいはずです。)

## 課金登録
ところで、課金設定していないとこんな画面が出ます。
面倒ですがクレジットの登録が必要です。設定ができていれば課金されることはないですので設定してしまいましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/ba9dcaab-220e-777f-2ddb-647e892041cf.png)

## マップを表示させる
サンプルコードを何も書いていないページにコピペすればこんな感じで最初は表示されると思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/4e09c446-5923-def9-486a-e1a0245575ae.png)

[サンプルコード1](https://developers.google.com/maps/documentation/javascript/tutorial)
[サンプルコード2](https://developers.google.com/maps/documentation/javascript/examples/map-simple)

## 見たい場所を指定
latとlng：数字を入れれば特定の場所に合わせることができます。緯度と経度です。
ツールを使って数字を調べて入力すればOK

zoom：大きくなるほどズーム。1が世界地図。20が建物レベル。調整しましょう。
[経度と緯度を調べる](https://google-developers.appspot.com/maps/documentation/utils/geocoder/?hl=ja)

該当箇所を変更すれば好きな場所にズームできます。

```
center: {lat: -34.397, lng: 150.644},
zoom: 8
```

## その他のサンプル
Maps Javascript API 以外もありますが経路など表示できるようです。
[サンプル：経路]
(https://developers.google.com/maps/documentation/javascript/localization)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/f72e2673-a7e3-ed4e-96f3-b3232f0ad812.png)

英語ですが他にも様々なパターンがあります。サイドバーから確認して使ってみるといいと思います。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/260345/f03a6669-d2fe-ddcc-36e7-54ef069669ad.png)


何個も使う場合キーのアクセス回数制限設定に気をつけましょう。