re:Invent 2020で発表され、現在プレビューのAmazon Location Serviceを試してみました。
プレビュー段階ながら東京リージョンで利用できるのは有り難いですね。
マップリソースを作成する
コンソールへログイン後、Amazon Locationのページへ遷移し、左メニューのManage ResourcesのMapsをクリック
続いてCreate mapをクリック

Nameに任意の名前を入力し、Mapsセクションにてマップタイプというかスタイルを選択、Create mapボタンをクリック


作成が完了するとARNが表示される。この後使うのでメモしておく。

IDプールの作成
IDプールの管理から新しいIDプールの作成を行う。

ここで認証されていないIDに対してアクセスを有効にするにチェックを入れてプールの作成ボタンをクリック。

詳細を表示すると2つのロールの概要があるが、下の方がunauthenticated identitiesのものなので、こちらのポリシードキュメントに以下を追記する。
※Resourceの<region>と<account ID>は任意の値に置き換えてください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "MapsReadOnly",
"Effect": "Allow",
"Action": [
"geo:GetMapStyleDescriptor",
"geo:GetMapGlyphs",
"geo:GetMapSprites",
"geo:GetMapTile"
],
"Resource": "arn:aws:geo:<region>:<account ID>:map/ExampleMap"
}
]
}
地図の表示
ドキュメントによると
- AWS SDK
- Mapbox GL JS
- Mapbox Maps SDK
- Tangram
- Tangram ES
による使用方法が案内されている。
iOSやAndroidのネイティブアプリに組み込む場合にはAWS SDKまたはMapbox Maps SDKを使うことになりそう。
今回はブラウザで見れれば良いのでMapbox GL JS(とReact)を使って表示してみました。
感想
- MapboxやGoogleMapsと比較すると地図を表示させるまでの準備に若干手間がかかる印象
- 地図の注記にアルファベット表記が散見されるので国内向けとして使うにはちょっと気が引ける
- 建物などはよく整備されているデータを使っている(OpenStreetMapのようにスカスカではない)
期待したいこと
- 注記を日本向けにしてほしい
- 注記の密度が低い
- 日本語で表示してほしい
今後試したいこと
- ジオコーディング
- ルーティング
デモ
サンプルソース
サンプルのソースコードはこちら
https://github.com/chaki1019/aws-location-service-app
参考

