Amazon Web Services ブログ

ジオフェンスと Amazon Location Service による旅のパワーアップ

Amazon Location Service は、アプリケーションに高品質な地図をプラグインし、位置情報機能を追加するためのコスト効率の良い方法を提供します。このサービスにより、お客様は、可視化、ジオコーディング、ナビゲーション・ルートの提供、およびジオフェンスの作成が可能になります。

ジオフェンスは、AOI(Area of Interest)として知られ、既存またはカスタム定義された空間を表すポリゴン境界であり、ユーザーは他のデータポイントとの空間的交差に基づく分析やプッシュ通知を実行することが可能です。
いくつかの例を挙げます。

  • 配達 – 自宅の消費者は、荷物が配達されるときにほぼリアルタイムで通知を受け取ります。 倉庫管理者は、トラックがフルフィルメント・センターに出入りすると、通知を受け取ります。
  • ユーザー・エンゲージメント/ジオ・マーケティング – お気に入りの店の前を歩いたり車で移動したりすると、次の時間まで有効なクーポン・コードが表示されます。
  • 安全性/セキュリティ – 屋内型ショッピング・センターの管理者は、消費者の歩行パターンを把握し、禁止区域への立ち入りを把握します。
  • 交通機関 – 電車やバスが駅に入ったり出たりしたときに、ほぼリアルタイムで最新情報を入手します。

この記事では、Amazon Location Service を使用して、高速道路を走行中に近くのガソリンスタンドで提供されている特典を顧客に通知する使用例を紹介します。このユースケースでジオフェンスがどのように作成され、可視化され、管理されるかについて深く掘り下げて説明します。

ユースケース: AB ガソリンスタンド

架空の会社、AB ガソリンスタンドは、高速道路のコンビニエンスストアに併設される有名な給油所チェーンだと仮定してみましょう。これらの店舗は、米国内の主要な高速道路に沿って200マイル間隔で並んでいます。AB ガソリンスタンドの CEO は、新しいロイヤリティ・ポイント戦略に基づいて、高速道路を頻繁に利用するロイヤルカスタマーに以下のような特典を提供したいと考えています。

  • AB 社のカスタマーがガソリンスタンドから5マイル離れたところで、本日の特別メニューやコーヒーをプッシュ通知で送るモバイル(ロイヤリティ)アプリで顧客を喜ばせる。
  • ガソリンスタンドにその日の特別メニューがない場合、アプリがガソリンスタンドで休憩し、無料のクッキーを手にするように促す。

AB ガソリンスタンドは、このアプリの構築に Amazon Location Service を採用したのは、以下の理由からです。

  • 既存のモバイルアプリに Amazon Location Service を簡単に構築・統合できること。
  • このソリューションの構築コストは、非常に競争力があり、同社にとって長期的に魅力的であること。

ソリューション

図1は、本ソリューションの背景として使用した AWS リファレンスアーキテクチャ図です。

デベロッパーガイドに記載されている手順に従って、ジオフェンスの作成、トラッカーのリンク、AB 社のロイヤルカスタマーへのプッシュ通知の送信を行います。次のステップでは、ジオフェンスの可視化と管理の方法を紹介します。

図1:Amazon Location Service のジオフェンスと位置情報トラッキング

1. ジオフェンスコレクションによるガソリンスタンドの位置の地図化

GeoJSON とは、単純な地理的特徴を表すデータを含むJSON 形式のファイルです。これらの特徴は、単純な点(例:緯度経度)、線(例:道路)、ポリゴン(国境などの地理を定義する点の集まり)です。ジオフェンスの場合、作成される GeoJSON ファイルには、目的の点の周囲の境界を定義するポリゴンが含まれます。図2に示すように、ガソリンスタンドの緯度経度座標に点を表示しています。その周りに描かれたポリゴンがジオフェンスです。

このチュートリアルでは、https://geojson.io を使って、ガソリンスタンドの位置を地図上に点で表示し、その周囲にフェンスとなるエリアを描画しています。その後、作成される GeoJSON ファイルを保存します。Amazon Location Service のジオフェンスはポリゴンのみで、ポイント(緯度/経度など)は使用できないので、Amazon Location Service にインポートする前に、地図上に表示した点を JSON から削除する必要があることに注意してください。

図2:ジオフェンスの作成と可視化 – GeoJSONファイル

このユースケースでは、Amazon Location Service を使用して、全ての高速道路沿いのガソリンスタンドの対象地域を表すジオフェンスコレクションを作成する必要があります。デベロッパーガイドに記載されている手順に従って、ジオフェンスコレクションを作成します。次に、先に作成した 1 つまたは複数の GeoJSON ファイルをこのジオフェンスコレクションにインポートします。デベロッパーガイドを見ると、AWS Console、Amazon Location API、または AWS CLI を使用してジオフェンスコレクションを作成できることがわかります。以下の CLI コマンド例では、コレクションを作成し、そのコレクションにジオフェンスをインポートしています。データ入力には、GeoJSON の “coordinates” キーが必要なだけです。

$ aws location create-geofence-collection --collection-name MyGeofenceCollection 
$ aws location put-geofence --collection-name MyGeofenceCollection \
    --geofence-id geofence-01 \
    --geometry 'Polygon=[[[-5.716667, -15.933333],[-14.416667, -7.933333],[-12.316667, -37.066667],[-5.716667, -15.933333]]]'

2. トラッカーとジオフェンスコレクションのリンク

トラッカーは、携帯電話や GPS レシーバーなど、位置情報の更新を送信できるデバイスから位置情報の更新を受信します。 AWS CLI を使用してトラッカーを作成し、それをジオフェンスコレクションに関連付けるには、まず以下のコマンドを実行します。

$ aws location create-tracker --tracker-name MyTracker
$ aws location associate-tracker-consumer --tracker-name MyTracker \
    --consumer-arn ‘arn:aws:geo:us-west-2:123456789012:geofence-collection/MyGeofenceCollection’

AB 社のロイヤリティアプリは、顧客の携帯電話などの携帯端末にインストールされます。これらのデバイスは、アプリで利用可能な Amazon SDK を通じて、Amazon Location Service に位置情報の更新を送信します。そして、デバイスの位置情報の更新は、ジオフェンスに対して評価され、ジオフェンスに対する顧客の位置が決定されます。私たちの場合、お客様が AB ガソリンスタンドから5マイル離れたところにいて、ジオフェンスのあるエリアを横切ると、「ENTER」「EXIT」イベントが発生します。これらのイベントに反応し、Amazon Simple Notification Service(SNS)を通じてモバイルデバイスにプッシュ通知を送信するために、スケーラブルなサーバーレスイベントバスである Amazon EventBridge を使用します。Amazon EventBridge とAmazon Location Service の連携については、デベロッパーガイドを参照してください。

3. ジオフェンスの管理・可視化

Amazon Location Service コンソールには、ビジュアルでインタラクティブなツールが組み込まれており (図 3)、デフォルトのマップのプレビュー、特定の地点、ルートの計算、トラッキングデバイスのシミュレーション、ジオフェンスの描画を行うことができます。このツールは、Amazon Location Service のジオフェンス機能を試し、AWS マネジメントコンソールを介して始めるのに便利です。

図3:Amazon Location Service コンソールの対話型ツール

Amazon Location Service コンソールには、ビジュアルでインタラクティブなツールが組み込まれており (図 3)、デフォルトのマップのプレビュー、特定の地点、ルートの計算、トラッキングデバイスのシミュレーション、ジオフェンスの描画を行うことができます。このツールは、Amazon Location Service のジオフェンス機能を試し、AWS マネジメントコンソールを介して始めるのに便利です。

今回のユースケースでは、AB ガソリンスタンドが何年もかけて多くのガソリンスタンドをオープンする可能性があります。そのため、ジオフェンスを効率的に管理することが求められています。GeoJSON ファイルには何千ものポリゴンが定義されており、非常に大きくなる可能性があるため、以下の提案がスケールでの管理に役立つことがあります。

  • GeoJSON ファイルを、都市ベース、郡ベースなど、アプリケーションの範囲を明確にする小さなチャンクに分割する。直感的な命名スキームでファイルに名前を付ける。これにより、ジオフェンスの可視化をより管理しやすくすることができます。
  • GeoJSON ファイルのバージョニングを管理する。これは、Amazon Simple Storage Service (S3) オブジェクト ストアまたは AWS CodeCommit を使用して行うことができます。AWS CodeCommit は Git の標準的な機能をサポートしているので、既存の Git ベースのツールとシームレスに動作します。
  • 可視化と編集のために、GeoJSON ファイルを https://geojson.iohttps://geojson.tools/ などのツールに戻す。
  • より広範な地理情報システム(GIS)プラットフォームが必要な場合は、Esri や HERE などのデータプロバイダーやプラットフォームについて調べてみてください。

まとめ

この記事では、わずか数回のクリックで、サンプルユースケースのジオフェンスの設定、可視化、および管理ができることを示しました。この特定のソリューションに必要な手順を紹介し、プッシュ通知の設定と顧客のデバイスへの送信が簡単にできることを実証しました。

この記事は、Powering Travel through Geofences and Amazon Location Service を翻訳したものです。
翻訳は Solutions Architect の 稲田大陸 が担当しました。