Amazon Location Serviceを利用した住所ジオコーディング
海外住所のジオコーディング
UPWARDでは、お客様のCRM(顧客関係管理)内の住所情報をジオコーディングして位置情報へと変換するサービスとしてUPWARD ENGINE(以下、ENGINE)を提供しています。
ENGINEは、これまで日本の住所情報のジオコーディングにのみ対応していました。しかし海外に拠点を置き活動されるお客様からのニーズの高まりを受け、現在ENGINEチームでは海外住所のジオコーディング機能の開発を行っています。
そこで本記事では、開発中の海外住所ジオコーディング機能内で利用している「Amazon Location Service」の概要と、その基本的な使用方法について、ご紹介したいと思います。
Amazon Location Serviceとは
Amazon Location Serviceは2021年6月からAmazon Web Service(AWS)上で提供されているサービスです。地図データ、ジオコーディング、ルート検索などの地理空間情報、そして地理空間情報に関する処理を提供するサービスとなっています。
Amazon Location Serviceでは、サービスで利用する地理空間情報を提供するデータプロバイダーを選択することができます。2023年11月現在、選択できるデータプロバイダーは以下の4種類となっています。
Esri
Grab
HERE
Open Data
各データプロバイダーはそれぞれ自社独自の地理空間情報サービスを提供しています。Amazon Location Serviceは、それらのサービスをハブして、AWS上で提供可能にしたサービスといえます。
データプロバイダー毎に使用できるリージョン・機能・データの特性が異なります。
たとえばGrab社が提供するデータは、東南アジアの地理空間情報に特化しています。ただし使用できるリージョンがシンガポール(ap-southeast-1)に限定されています。
Amazon Location Serviceの利用者は利用ニーズにあわせて、各データプロバイダーを選択することになります。
Amazon Location Serviceが現在、提供している機能は主に以下の5つです。
Maps …… 地図情報をタイルおよびベクター方式で提供します。
Places …… 地点の検索、ジオコーディング、リバースジオコーディングサービスを提供します。
Routes …… 地点から地点へのルート検索サービスを提供します。
Geofence …… 仮想的な空間境界を設定し、その境界への入退出イベントを検知するサービスです。
Trackers …… デバイスから位置情報の更新を受け取り、そのデバイスの移動情報を追跡するサービスです。
この5つの主要機能に、さきほど紹介したデータプロバイダーを個別に割り当てることができます。
各機能のニーズに特化したデータプロバイダーを設定し、かつ、それをAmazon Location Serviceというひとつのサービスプラットフォーム上で利用可能になることが、本サービスの強みといえます。
Amazon Location Serviceでジオコーディングしてみる
Amazon Location Serviceの全般的な説明はここまでとして、ここから実際に本サービスを利用してジオコーディングを行ってみたいと思います。なお、以降の記述はAWSアカウントをすでに取得していることを前提として進みます。
プレースインデックスの作成
Amazon Location Serviceでジオコーディングを行うには「プレースインデックス」というリソースを作成する必要があります。今回はリージョンを東京(ap-northeast-1)、データプロバイダーに「Esri」を選択することにして、作業を進めます。
AWSのマネジメントコンソールにログインしたら、検索欄で「Amazon Location Service」を検索し、表示されたパネルをクリックします。
Amazon Location Serviceの画面が表示されたら「インデックスの配置」をクリックします。
「インデックスの配置」という画面が開かれます。ここで「プレースインデックスを作成」ボタンをクリックしましょう。
ボタンをクリックすると、プレースインデックスを作成するためのダイアログが表示されます。以下のように情報を入力していきましょう。
名前:TEST-INDEX
説明:Test Geocoding
データプロバイダー:Esri
データストレージオプション:いいえ、単回使用のみ
APIキー:APIキーを作成する
APIキー名:TESTKEY
アクション:「SearchPlaceIndexForText」のみチェック
入力が完了したら、「利用規約への同意」をチェックして、プレースインデックスを作成しましょう。作成が完了すると以下のような画面が表示されます。
以上でプレースインデックスの作成は完了です。これでAmazon Location Serviceを利用したジオコーディングを行う準備が整いました。
ジオコーディングしてみる
それでは実際にジオコーディングを行ってみましょう。今回はPostmanを利用してジオコーディングを実行してみたいと思います。Postman以外でもREST-APIが実行可能なクライアントソフトであれば、ほぼ同様の手順で実施可能です。
Amazon Location Serviceのプレースインデックスを利用したジオコーディングを行うには、以下の4つの情報が必要です。
APIエンドポイント
作成したプレースインデックスの名前(今回は「TEST-INDEX」)
APIキー
ジオコーディングしたい住所
APIエンドポイントについて、今回は東京リージョンにプレースインデックスを作成したので「geo.ap-northeast-1.amazonaws.com」を利用します。
実際にジオコーディングを行うには、この文字列の先頭に「places.(利用するサービス)」、そして最後に「/places/v0/indexes/[プレースインデックス名(今回は「TEST-INDEX」)]/search/text」を付加してリクエストを作成します。
APIキーについては、さきほどプレースインデックスを作成した画面の下段にAPIキーへのリンクが表示されているので、それをクリックします。
APIキーの詳細ページが表示されます。そこで「APIキー値を表示する」というボタンがあるので、ボタンを押したあとに表示される文字列を控えておきましょう。
ジオコーディングする住所ですが、今回はUPWARDの東京本社がある「東京都港区西新橋1-1-1 WeWork日比谷FORT TOWER」を使ってみましょう。
それではPostmanで実際にリクエストを投げてみましょう。新規POSTリクエストを作成して、URL欄に
https://places.geo.ap-northeast-1.amazonaws.com/places/v0/indexes/TEST-INDEX/search/text
を入力します。
またKeyの項目に「key」というパラメーターを追加し、値に控えておいたAPIキーの値を貼り付けます。
次に「Body」の項目に
{ "Text" : "東京都港区西新橋1-1-1 WeWork日比谷FORT TOWER" }
を設定します。
設定ができたら「Send」を実行します。
実行すると以下のようなレスポンスが返却されます。
{ "Summary": { "Text": "東京都港区西新橋1-1-1 WeWork日比谷FORT TOWER", "MaxResults": 50, "ResultBBox": [ 139.752756506089, 35.670162060144, 139.752756506089, 35.670162060144 ], "DataSource": "Esri" }, "Results": [ { "Place": { "Label": "東京都港区西新橋1-1-1", "Geometry": { "Point": [ 139.752756506089, 35.670162060144 ] }, "AddressNumber": "1", "Neighborhood": "1", "Region": "東京都", "Country": "JPN", "PostalCode": "1050003", "Interpolated": false, "Categories": [ "AddressType" ], "SubMunicipality": "西新橋" }, "Relevance": 0.9379000000000001 } ] }
「Results」のなかの「Point」に表示されている値がジオコーディング結果です。では、この結果をOpen Street Map上で確認してみましょう。
「35.670162060144,139.752756506089」で検索したところ、UPWARDの東京本社が置かれている「WeWork日比谷FORT TOWER」の地点が取得できていることがわかりました。
今回はPostmanを用いてジオコーディングを行いましたが、AWS が公開している開発者キットを用いてプログラムからジオコーディングリクエストを送信することもできます。開発者キットについての情報は以下にまとまっています。
さいごに
いかがだったでしょうか。現在、ENGINEチームでは本記事で紹介したAmazon Location Serviceを利用した海外住所のジオコーディング機能の開発を進めています。機能の公開は来年初頭を予定しています。
またUPWARDは現在、部門を問わず、一緒に働ける仲間を募集しています。UPWARDにご興味を持っていただけた方は、カジュアル面談を受け付けていますので、コンタクトをお待ちしております。