位置情報APIで経緯度を取得して、現在地から郵便番号を取得する【Amazon Location Service + Next.js】

14476 ワード

なんだかんだやってみた結論

https://geoapi.heartrails.com/api.html 無料で使わせてくれるコレでいいんじゃないかと感じている...。無料の怖さはあるけど、個人開発勢としては無料ほど嬉しいものはない。(自由入力の検索もAmazon Location Serviceよりもいい感じなのよぉ...。)


navigator.geolocation.getCurrentPosition() を使うことで現在地情報を取得できますが、この値を用いることで現在地から郵便番号を取得する(逆ジオコーディングと呼ばれるようです)、という仕組みを簡単に実装することができます。(Google MapsのGeocoding APIでも同様のことができますが、料金が1/10ぐらい全く違うっぽいです。正しく理解できているかは自信がありません...。)

※リージョンには注意しながら作業進めていきましょう。

1. Amazon Location Serviceの設定をする

1-1. IAMユーザーを作成する

まずはAPIにアクセスするためのユーザーをIAMで作成する必要があります。
https://us-east-1.console.aws.amazon.com/iamv2/home?region=us-east-1#/home にアクセスして、ユーザーを追加しましょう。

「AWS 認証情報タイプを選択」で「アクセスキー・プログラムによるアクセス」にチェックを付けます。

次のページで「アクセス許可の設定」という画面になりますが、ここでは一旦何も設定せずに次に進みます。

これでユーザーの作成は完了です。

1-2. ポリシーを作成する

次にAmazon Location Serviceを使えるようにポリシーを作成します。
https://us-east-1.console.aws.amazon.com/iamv2/home#/policies にアクセスして、「ポリシーの作成」をクリックします。

正直、ポリシー周り全然分からないので下記の公式ドキュメントを参考にいい感じに作ってください。(郵便番号取得に最適な設定をコメントで教えて頂けると嬉しいです!)