Amazon Web Services ブログ

Amazon Location Service を利用した東南アジアでの高品質で費用対効果の高いアプリケーションの構築

本記事は Building high-quality, cost-effective apps in Southeast Asia with Amazon Location Service を翻訳したものです。

Amazon Location Service は、位置情報とマップ、検索、ルーティングなどの機能をお客様のアプリケーションに簡単に追加できるフルマネージドサービスです。Amazon Location Service では、複数のデータプロバイダから高品質のデータにアクセスできるため、プロジェクトに最適なデータを持つプロバイダを柔軟に選択することができます。これにより、サードパーティとの契約や統合が不要になり、追加のアカウント、認証情報、ライセンス、課金などを管理することなく、アプリケーションの構築に集中することができます。Amazon Location Service の新しいデータプロバイダとして、GrabMaps を使って東南アジアで高品質で費用対効果の高いアプリケーションを構築できるようになったことを発表します。

GrabMaps とは

Grab は当初、配送の計画と実行をサポートするために、サードパーティのマッププロバイダーに依存していました。しかしすぐに、グローバルなマッププロバイダーでは、東南アジア地域の頻繁な変化や特定のニーズに対応できないことに気づきました。そこで、彼らは 2017 年に GrabMaps の構築を開始しました。

GrabMaps はその後、Grab の主力商品である Grab Superapp(東南アジアの食品、食料品、荷物の配送、ライドシェアサービスをワンストップで提供するサービス)を支えるまでに成長しました。GrabMaps は、小さな路地や分譲地の存在、ナンバープレートによる車両制限、東南アジア特有の交通手段など、地域特性を考慮した独自のアプローチでデータを取得しています。また、Grab の消費者、加盟店、ドライバーや配送パートナーのフリートを活用したコミュニティベースのマップ作成戦略を採用しています。GrabMaps は、何百万もの注文や乗り物から毎日更新される情報を受信、分析、検証し、道路閉鎖やビジネスアドレスの変更などに関するパートナーからのリアルタイムなフィードバックを提供します。また、ドライバーや配送パートナーは、POI(Point of Interest)、道路画像、道路名、交通標識の位置などの位置情報を提供するインセンティブを与えられています。これにより、GrabMaps は正確性、カバー率、鮮度の面で高品質の地域マップデータを提供することができます。

GrabMaps のデータは、AWS アジアパシフィック(シンガポール)リージョンの Amazon Location Service で利用できるようになりました。

お客様のビジネスのための費用対効果の高いソリューションの開発

Amazon Location Service は、特にジオコーディングやルート計算などにおいて、競争力のある価格設定を行っています。位置情報サービスのルート計算は、競合他社に比べ最大 10 倍安く、バイクルートや交通量予測などの高度なルート計算機能を追加費用なしで提供します。また、Amazon Location Service のジオコーディングとリバースジオコーディングは、競合他社と比べて最大 10 倍安く、ジオコーディングしたデータを無期限に保存・再利用する権利を購入できる保存オプションも提供しています。これは、繰り返し利用される住所の割合が高いユースケースで、特に費用対効果が高くなることがあります。
Amazon Location Service のマップタイルも価格競争力があり、多くの場合、タイル単位の価格は競合他社のセッションベースの価格よりも安価です。

東南アジアの高品質データへのアクセス

AWS アジアパシフィック(シンガポール)リージョンにおいて、Amazon Location Service のマップ、プレース、ルート APIを利用し、シンガポール、カンボジア、ベトナム、フィリピン、インドネシア、マレーシア、ミャンマー、タイなど東南アジアの数カ国をカバーする GrabMaps データにアクセスすることができるようになりました。Amazon Location Service の マップ API では、GrabMaps がデザインした 2 つのマップスタイルを提供しています。ストリートライトとストリートダークです。どちらも、詳細な土地利用レイヤー、地域名、道路、ポイントオブインタレストを備えた汎用的なマップスタイルで、さまざまなアプリケーションやユースケースをサポートするために専門的に設計されています。Amazon Location Service のプレース APIは、GrabMaps のデータを利用しており、東南アジア全域の 50M 以上の住所と POI にアクセスすることが可能です。このAPI は、ジオコーディング、リバースジオコーディング、オートコンプリート機能をアプリケーションに追加することができ、エンドユーザーが場所を検索したり、地理座標を住所に変換したり、逆に住所に変換したりすることを可能にします。最後に、Amazon Location Service のルート API は、GrabMaps の最新の道路ネットワークと交通情報を使用して、一般的な交通手段とローカルな交通手段(車、徒歩、バイク、自転車)、出発時間、回避手段(フェリー、有料道路、高速道路)など、さまざまなパラメータを使って最速なルートを提供します。これにより、アプリケーションにルートプランニングと最適化の機能を追加し、エンドユーザーがより効率的かつ十分な情報を得た上で移動の意思決定を行えるように支援します。

以下のセクションでは、データプロバイダとして GrabMaps を使用して Amazon Location Service リソースを設定し、Web アプリケーションで使用する方法について説明します。次のビデオチュートリアルをご覧ください。

ソリューション概要

AWS CloudFormation を使って必要な AWS リソースを作成し、Amazon Location Service の GitHub リポジトリから利用できる amplify-ui-geo-exploreプロジェクトを使って Web アプリケーションを構成し、デプロイします。
このアプリケーションには、以下のコンポーネントと機能が含まれます。

  • インタラクティブなマップ
  • 住所や地名を検索できる位置検索ウィジェット
  • さまざまな交通手段、出発時間、回避方法などのパラメータを使用して最速なルートを検索するルート計算機
  • ジオフェンスとしてポリゴン境界を作成し、位置追跡をシミュレートし、ジオフェンスに対する位置更新を評価し、入退場イベントをトリガーできるトラッキングおよびジオフェンス機能性

チュートリアル

前提条件

このチュートリアルを完了するには、AWS アカウントが必要です。AWS アカウントをまだお持ちでない場合は、作成してください。

AWS リソースの作成

AWS CloudFormation テンプレートを使用して、データプロバイダとして GrabMaps を使用した Amazon Location Service のマップ、プレースインデックス、およびルート計算機リソースを含む、いくつかの AWS リソースを作成することができます。また、テンプレートはアプリケーションの実行に必要な Amazon Location Serviceのジオフェンスとトラッキングのリソースを作成します。さらに、 Amazon Cognito アイデンティティプールを作成し、いくつかの IAM ロールとポリシーを作成して、誰がこれらのリソースにアクセスでき、どのようなアクションを実行できるかを制御しながら、Amazon Location Service のリソースにアクセスするために必要な権限をアプリケーションに付与します。

このリンクをクリックすると、このテンプレートが AWS アカウントにデプロイされます。AWSマネジメントコンソールが開き、CloudFormation テンプレートのデプロイメントプロセスが開始されます。I acknowledge that AWS CloudFormation might create IAM resources ボックスをチェックし(図2)、Create stack ボタンを選択します。

デプロイメントプロセスが完了したら、Outputs セクションに移動して、Cognito アイデンティティプール ID と作成されたAmazon Location Service リソースの名前を取得します (図3)。

アプリケーションの設定と起動

Amazon Location Service の GitHubリポジトリから利用できるamplify-ui-geo-explore のプロジェクトをクローンします。その後、プロジェクトディレクトリに移動し、依存関係をインストールします。

git clone https://github.com/aws-samples/amazon-location-samples.git
cd amazon-location-samples/amplify-ui-geo-explore/
npm install

次に、src/configuration.js を開き、CloudFormation スタック出力を使用して、Cognito アイデンティティプール ID と Amazon Location Service リソースの名前を入力します。AWS リージョンとしてap-southeast-1、マップスタイルとして VectorGrabStandardLight、デバイス名として Vehicle-1 を使用します。

export const IDENTITY_POOL_ID = "ap-southeast-1:...";
export const REGION = "ap-southeast-1";
export const MAP = {
  NAME: "GrabDemoMap",
  STYLE: "VectorGrabStandardLight",
};
export const PLACE = "GrabDemoPlaceIndex";
export const ROUTE = "GrabDemoRouteCalculator";
export const GEOFENCE = "GrabDemoGeofenceCollection";
export const TRACKER = "GrabDemoTrackers";
export const TRACKER_SIMULATED_DEVICE = "Vehicle-1";

最後に、src/App.jsx を開き、MapView コンポーネントを修正して、初期マップビュー(initialViewState)をマレーシアのクアラルンプールに設定します。経度には 101.656125、緯度には 3.1506347 を使用します。

<MapView
          ...
          initialViewState={{
            longitude: 101.656125,
            latitude: 3.1506347,
            zoom: 11,
          }}
          ...
        >
...
</MapView>

プロジェクトを保存し、以下のコマンドを実行して、アプリケーションを実行します。

npm start

ブラウザで http://localhost:8080/にアクセスすると、GrabMaps のデータを利用した位置検索や経路検索機能付きのインタラクティブなマップが表示されます(図4)。

片付け

このチュートリアルで作成したリソースをすべて削除したい場合は、AmazonLocationServiceGrabDemo というCloudFormation スタックを削除してください(図5)。

まとめ

Amazon Location Service は、東南アジアのAWS顧客向けの新しいデータプロバイダとして GrabMaps を追加しました。これにより、GrabMaps の高品質なデータを使用して、アプリケーションに位置情報データと機能を追加することができます。本記事では、Amazon Location Service のマップ、プレース、ルート API を使用して、GrabMaps からの高品質なデータを使用して、Web アプリケーションにインタラクティブなマップ、位置検索、ルート検索機能を追加する方法について学びました。
Amazon Location Service の GitHub リポジトリには、いくつかのサンプルプロジェクトがあり、AWS 上で位置情報と機能を使ったアプリケーションを構築する方法を学ぶことができます。Amazon Location Service の製品ページでは、提供サービス、一般的な使用例、お客様の成功事例をご覧いただけます。Amazon Location Service の機能をより深く知るには、開発者向けドキュメントを参照してください。

翻訳はソリューションアーキテクトの稲田(@inariku)が担当しました