見出し画像

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」を検索

Amazon Location Serviceの画面が表示されたら「インデックスの配置」をクリックします。

「インデックスの配置」をクリック

「インデックスの配置」という画面が開かれます。ここで「プレースインデックスを作成」ボタンをクリックしましょう。

「プレースインデックスを作成」をクリック

ボタンをクリックすると、プレースインデックスを作成するためのダイアログが表示されます。以下のように情報を入力していきましょう。

  • 名前:TEST-INDEX

  • 説明:Test Geocoding

  • データプロバイダー:Esri

  • データストレージオプション:いいえ、単回使用のみ

  • APIキー:APIキーを作成する

  • APIキー名:TESTKEY

  • アクション:「SearchPlaceIndexForText」のみチェック


名前に「TEST-INDEX」、説明に「Test Geocoding」を入力
データプロバイダーは「Esri」を、データストレージオプションは「いいえ、単回使用のみ」を選択
「APIキーを作成する」をチェック。APIキー名に「TESTKEY」を入力。アクションは「SearchPlaceIndexForText」をチェック。

入力が完了したら、「利用規約への同意」をチェックして、プレースインデックスを作成しましょう。作成が完了すると以下のような画面が表示されます。

プレースインデックスとAPIキーの作成が完了

以上でプレースインデックスの作成は完了です。これで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キーへのリンクが表示されているので、それをクリックします。

「TESTKEY」のリンクをクリック

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にご興味を持っていただけた方は、カジュアル面談を受け付けていますので、コンタクトをお待ちしております。


いいなと思ったら応援しよう!