Amazon Location Serviceで作成したMapをWebアプリに埋め込む

## はじめに

Uber Eatsやタクシー配車アプリ「GO」をはじめリアルタイム位置情報を使ったサービスが続々と出てきています。今回はアプリケーションにロケーションを素早く、簡単に追加できるAmazon Location Serviceを試してみました。
## Amazon Location Serviceの概要

Amazon Location Serciceの機能は大きく以下の５つになります。

- マップ
- インデックスの配置
- ルート計算ツール
- ジオフェンスのコレクション
- トラッカー

## マップを試してみる

Amazon Location ServiceではAWSコンソールで作成したMapを簡単にアプリケーションに埋め込むことができます。
以下ではJavascriptでマップを表示する設定を行いました。

#### MySampleMapという名前のMapを作成
まずはWebアプリに表示したマップをAWSコンソールで作成していきます。用意されているものを選択していくだけなのでとても簡単です。

![スクリーンショット 2022-08-22 22.08.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/5a8b4cb4-044e-a493-d7d8-9e92e7131628.png)
Web画面に表示するMapのスタイルを選択できます。
![スクリーンショット 2022-08-22 22.08.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/b0f92d9b-d9b0-644c-f95a-dbbfd8e35301.png)

#### Web画面にMapを埋め込むための認証設定①　〜IDプールの作成〜

ここで設定しているのは下画像でいう赤枠の部分です。

![スクリーンショット 2022-08-22 22.50.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/e0df5d3c-1fab-c9fb-27ae-7c38d8e05c99.png)
引用：https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-browser.html

![スクリーンショット 2022-08-22 23.10.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/43fc4a90-4726-b9f0-ef41-aaf1dafddd7b.png)

ID プールのIDは後で使うのでメモしておきます。

![スクリーンショット 2022-08-22 22.16.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/0b958451-62fa-9cfc-44ce-15f19c21bf92.png)

#### Web画面にMapを埋め込むための認証設定②　〜IAM Roleの作成〜

AWSの案内に従って認証設定を行います。

![スクリーンショット 2022-08-22 22.35.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/cf796980-7a42-95ea-0def-58c6bc4b7bbf.png)

以下の画面でWebアプリからAmazon Location Serviceへのアクセスを許可するポリシーを作成します。
![スクリーンショット 2022-08-22 22.30.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/2684fcf1-4ace-8d62-fbf3-2d295b776ded.png)

上の画面で作ったIAM RoleでWebにMapを表示します。


#### Web画面を作成

AWSが用意してくれているソースコードをindex.htmlにコピペするだけでMapを表示することができます。
先ほど作成したIDプールがドロップダウンで選択できるので、選択した後、下のソースコードをコピペしましょう。


![スクリーンショット 2022-08-22 22.55.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/c7338b1a-a3e1-5f77-6908-eeb887634450.png)


![スクリーンショット 2022-08-22 22.57.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/4d17c587-c42f-36a5-6ca2-cd36fc982486.png)

作成したindex.htmlと同じディレクトリで`npx serve`と入力してWebサーバーを起動するとlocalhost:3000からAWSで作成したMapを表示させることができます。

```
% npx serve
Need to install the following packages:
  serve
Ok to proceed? (y) y

   ┌─────────────────────────────────────────────────┐
   │                                                 │
   │   Serving!                                      │
   │                                                 │
   │   - Local:            http://localhost:3000     │
   │   - On Your Network:  http://192.168.1.5:3000   │
   │                                                 │
   │   Copied local address to clipboard!            │
   │                                                 │
   └─────────────────────────────────────────────────┘


```

localhost:3000にアクセスするとAWSコンソールで作成したマップが表示されました！
![スクリーンショット 2022-08-22 22.58.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235110/842142f9-ce0a-d26b-8103-e1341bb7eff1.png)

このようにAmazon Location Serviceを使うと、Mapの作成と認証設定をするだけでアプリに地図を埋め込むことができます。今回はWebに地図を表示するだけでしたが、次回はジオフェンシングという機能を試してみたいと思います！

## おまけ

10月中旬（予定）に54時間でStartup Weekendという起業体験イベントが多摩地域で開催されます。
身近な課題や社会課題をハックしたいというハッカーは奮って参加ください。

https://swtama.doorkeeper.jp