AWS新サービスAmazon Location Serviceとは？

# はじめに
今年のAWS re:Invent 2020も落ち着きを見せた今日この頃、気になるサービスが米国時間12月16日に発表されました。
それが[こちら](https://aws.amazon.com/jp/location/https://aws.amazon.com/jp/location/)の安全かつ簡単に位置データをアプリケーションに追加できる**Amazon Location Service**です。
![スクリーンショット 2020-12-19 17.22.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/45998d3a-b056-fe39-72df-2705fa3d9d69.png)

# Amazon Location Serviceとは？
## 特徴
Amazon Locationとは、地理空間データを使用して、Maps、Places、Tracking、Geofencing、およびRouting(近日公開予定っぽい)といった機能を提供しています。

### Maps
位置情報を視覚化する機能です。
ロケーションデータプロバイダーとしては、**Esri**および**HERE**から提供されたさまざまなマップタイルを提供しています。
### Places
アプリケーションで検索機能を提供し、住所を緯度と経度の地理座標に変換したり（ジオコーディング）、座標を番地に変換します（逆ジオコーディング）。

### Tracking
Tracking対応アプリケーションを実行しているデバイスの現在および過去の場所を即座に取得できます。これにより、デバイスのロケーショントレイルを使用して、在庫配置、製造順序付け、配送発送などの操作を最適化することができます。

### Geofencing
追跡対象のデバイスがジオフェンスと呼ばれる事前に決定された地理的境界に出入りするときに、アプリケーションを検出して動作することができます。

### Routing
アプリケーションは、任意の2つの場所間の移動時間、距離、および方向を要求できます。これにより、アプリケーションユーザーは、最新の道路情報と実際の交通情報に基づいて、移動時間の正確な見積もりを取得できます。

## 利用可能なリージョン
* US East (N. Virginia)
* US East (Ohio)
* US West (Oregon)
* Europe (Ireland)
* **Asia Pacific (Tokyo)**

## 料金プラン
使用量に基づく課金体系であり、初期の3か月間無料でAmazon LocationAPIを呼び出すことができるそうです。
ただ、マップを表示するといったような使い方に限定した場合、Google Mapsと比較すると安く、マップタイルの1000個取得が0.04ドル（約4.13円）からというような料金プランを出しています。

## 僕的に推していると思われる使用例と感想

結論からいうとGoogle mapのような地図表示、場所検索(場所名等から緯度経度を取得)や、緯度経度からの場所検索をするような使い方をするのであれば、Google mapのが使いやすいと思います。

ドキュメントを見るとmapの表示自体はグローバルロケーションデータプロバイダーの**Esri**および**HERE**を使う形になり、これを使うならGoogle mapの方が見やすい、ストリートビューを使える、開発するためのドキュメントやいろいろな記事があるあたり優秀かと思います。

ちなみに、Amazon Location APIを使用するときのマップレンダリングツール
* https://tangrams.readthedocs.io/en/master/
* https://github.com/mapbox/mapbox-gl-js

ただ、このAmazon　Location Serviceの優位な点もあり、それがmapの表示というよりtrackingとGeofencingという機能な気がします。[公式ドキュメント](https://aws.amazon.com/jp/location/features/)

**これらは、僕的にはかなり面白いです。**
[Geofencing](https://docs.aws.amazon.com/location/latest/developerguide/geofence-an-area.html)のみ少し深ぼりしてみたのですが、使用例として、予め定めたエリアの位置情報(https://docs.aws.amazon.com/location/latest/developerguide/add-geofences.html) を登録しておき、そのエリアに位置情報の更新を送信できるデバイスがいる時、その位置情報をリンクすること(どのように自動同期するかは調査していません。。w)で、AWS側のEventBridgeで吸収、lambdaを発火し何かするような、使い方を推しています。

* [ユースケース](https://docs.aws.amazon.com/location/latest/developerguide/common-usecases.html)を見ても推している使用方法が見解通りっぽいと感じます。

### ユースケース
#### User engagement and geomarketing
位置データを使用して、ターゲットとする顧客へのマーケティングに対するユーザーエンゲージメントを改善するソリューションを構築します。

##### 例
モバイルアプリでコーヒーを注文した顧客が近くにいるときに通知を求めるイベントをトリガーできます。
さらに、geomarketing機能を構築して、小売業者が対象店舗の近くにいる顧客に割引コードやデジタルチラシを送信できるようにすることができます。

#### Asset tracking
資産追跡機能を構築して、企業が製品、人員、およびインフラストラクチャの現在および過去の場所を理解できるようにします。

##### 例
輸送中の出荷を保護し、発送効率を最大化する多数のソリューションを構築できます。

#### Delivery
位置情報機能を配達アプリケーションに統合して、出発地、配達車両、およびそれらの目的地を保存/追跡/調整します。

##### 例
Amazon Location機能が組み込まれた食品配達アプリケーションには、配達ドライバーが近くにいるときにレストランに自動的に通知できる位置追跡機能とgeofencing機能があります。
これにより、待ち時間が短縮され、配達される食品の品質が維持されます。

## ドキュメント一覧
* [Developer Guide](https://docs.aws.amazon.com/location/latest/developerguide/what-is.html)
* [API references](https://docs.aws.amazon.com/location/latest/developerguide/location-actions.html)

## 

# 参考文献
* [公式ドキュメント](https://aws.amazon.com/jp/location/features/)
* [アプリケーションに安全・安価に位置データを追加可能なサービス『Amazon Location Service』がリリースされました！](https://dev.classmethod.jp/articles/amazon-location-service-is-available-preview/?fbclid=IwAR1e0y53KbbyOZnAMr1WN98Bex_fsAm0lE3VoviN6w4cEdmVs_2JG3Ja7wM)
* [Amazon Location Service を使って GPS デバイスが特定エリアを出入りしたら通知する仕組みを作ってみた](https://dev.classmethod.jp/articles/amazon-location-service-mqtt-notification-try/)