Amazon Web Services ブログ

Amazon Location Service Routes, Places, Maps の新しい API を発表

2024 年 11 月 8 日、Amazon Location Service は、RoutesPlacesMaps 機能の拡張と改善を可能にする 17 の新しい API と強化された API をリリースしました。これにより、開発者はより一貫性のある効率的な体験を得ることができます。これらの更新により、機能が強化され、移行が簡単になり、Amazon Location Service は、幅広いアプリケーションでより利用しやすく、便利なものになりました。

高度なルート最適化、通行料金の計算、GPSトレースのスナップ、静的および動的レンダリングオプションを備えたさまざまなマップスタイルにアクセスでき、また、興味のある場所に関する豊富な詳細情報を利用して、近接検索や予測提案ができるようになりました。

Amazon では、ロードマップの大部分はお客様からのフィードバックによって決定されています。Amazon Location Service を使用してアプリケーションを構築している多くのお客様から、位置情報データを使用する際に、専用に設計された API や、連絡先情報や営業時間などのより詳細な情報が必要であると意見が寄せられています。現行の API セットは多くのお客様にとって貴重なツールを提供してきましたが、開発者からは、詳細なルート計画、近傍検索、追加の場所の詳細情報、静的な地図画像などの追加機能に対する要望が寄せられています。これらの新しい API は、要望に応え、より包括的で、すぐに使える位置情報ソリューションを提供します。

新しい機能と強化された機能

本日発表されたのは、お客様のフィードバックに直接応える 10 の更新された API と 7 つのまったく新しい API です。 Routes、Places、Maps の各サービスは、より幅広い用途に対応できるよう、特定の機能強化が施されています。

Routes

Amazon Location Routes API は、高度なルート計画とカスタマイズオプションをサポートするようになりました。これにより、ユーザーは以下を行うことができます。

  • CalculateIsolines を利用することで、指定した移動時間または距離のエリアを特定可能
  • OptimizeWaypoints を利用することで、最も効率的な経由地の順序を決定し、移動時間または距離を最小化
  • 有料道路を含むルートについて、正確な料金を算出できます
  • SnapToRoads を使用して、道路ネットワークにポイントをスナップすることで、GPSトレースを正確に一致させることが可能

これらの機能により、より正確でダイナミックなルート体験をユーザーに提供できるようになります。例えば、物流会社は、リアルタイムの交通状況を考慮して配送ドライバーのルートを最適化し、配送にかかる移動コストを最小限に抑えることができます。

Maps

更新された Amazon Location Maps API には、熟練した地図製作者が作成した、より用途に特化した地図スタイルが追加されています。これらの地図スタイルは、市場投入までの時間を短縮し、カスタム地図の作成を不要にするプロフェッショナルなデザインを提供します。さらに、Static Map Image 機能により、開発者は静的地図をアプリケーションに統合することができ、継続的なデータストリーミングの必要性を減らし、インタラクティブ性が不要な使用事例におけるパフォーマンスを向上させます。

Maps API の主な機能には、以下のものがあります。

  • GetTile : 指定した X、Y、Z 座標の値を使用し、タイルセットからタイルをダウンロードする
  • GetStyleDescriptor : スタイルに関する情報を取得する
  • GetStaticMap : レポートや視覚化を目的とした非インタラクティブなマップのレンダリングを可能にする

Places

Amazon Location Places API の機能強化により、より詳細な検索機能が可能になり、位置データの精度向上に関する要望に対応できるようになりました。 新機能には、以下のものが含まれます。

  • SearchNearby および Autocomplete 近傍検索クエリをサポートし、予測テキスト機能によりユーザーエクスペリエンスを向上
  • 営業時間、連絡先情報、その他の興味のある場所の属性などのカテゴリーによるビジネス詳細情報の強化

これらの機能は、ユーザーが近隣の場所に関する詳細な情報を必要とするアプリケーション、例えばフードデリバリーサービスや小売アプリケーションなどに特に役立ちます。お客様がフードデリバリーアプリケーションを開き、SearchNearby を使用して近くのレストランを検索し、営業時間や連絡先などのレストランの詳細情報を取得して利用可能かどうかを確認するとします。 複数のデリバリー注文がドライバーに割り当てられると、アプリケーションはOptimizeWaypointsを使用して、ピックアップと配送に最も効率的なルートを提案します。 ドライバーがルートに従うと、SnaptoRoads がドライバーの位置を正確に視覚化し、お客様のリアルタイムの追跡体験を向上させます。

拡張ロケーションサービスの利用例

API の呼び出しは簡単です。AWS コマンドラインインターフェイス(AWS CLI)AWS SDK の、またはシンプルな REST API を使用できます。ただし、ウェブアプリやモバイルアプリでマップ上に情報を表示するには、追加の設定が必要です。このプロセスはドキュメントに記載があるので、今回は詳細には触れず、API の使用に焦点を当てます。

Amazon Location Serviceでは、2 つの方法による API コールの認証方法が提供されています。AWS API 認証(AWS Sigv4 認証)または API キーを使用する方法です。エンドユーザーが認証されていないモバイルアプリケーションの開発や、Amazon Cognito との統合が不可能な場合、API キーの方が便利な場合があります。これは、フロントエンドアプリケーション向けの推奨される認証方法です。

API の汎用性と、アプリケーションへの統合がどれほど簡単かをお見せするために、デモの各ステップでは AWS CLI、cURL、グラフィカルな REST API クライアントを組み合わせて使用します。

ステップ1:APIキーの作成

まず、AWS CLI を使用してアプリケーション用の API キーを作成します。API キーは、AWS マネジメントコンソールでも管理できます。

REGION=eu-central-1
KEYNAME=geo-key-seb

aws location create-key --region ${REGION} --key-name ${KEYNAME} --restrictions \
AllowActions="geo-routes:*","geo-places:*","geo-maps:*",\
AllowResources="arn:aws:geo-routes:${REGION}::provider/default",\
"arn:aws:geo-places:${REGION}::provider/default",\
"arn:aws:geo-maps:${REGION}::provider/default" \
--no-expiry 

{
    "Key": "v1.public.ey...cy",
    "KeyArn": "arn:aws:geo:eu-central-1:02345678901:api-key/geo-key-seb",
    "KeyName": "geo-key-seb",
    "CreateTime": "2024-09-29T09:35:53.115000+00:00"
}

このコマンドにより API キーが生成され、これで Amazon Location API を呼び出すことができるようになりました。

ステップ2:地理座標の取得

次に、curl コマンド を使用して GeoCode を呼び出し、QueryText パラメータに住所を渡すことで、フランスのリール市の中心部の地理座標(経度および緯度)を取得します。

$ curl --silent -X "POST" "https://places.geo.eu-central-1.amazonaws.com/v2/geocode?key=v1.public.ey...cy" \
       -d $'{ "QueryText": "Grand Place, Lille, France" }' 
 
{"ResultItems":[{"PlaceId":"AQ...5U","PlaceType":"Street","Title":"Grand'Place, 59800 Lille, France",
                 "Address":{"Label":"Grand'Place, 59800 Lille, France",
                 "Country":{"Code2":"FR","Code3":"FRA","Name":"France"},
                 "Region":{"Code":"HDF","Name":"Hauts-de-France"},"SubRegion":{"Name":"Nord"},
                 "Locality":"Lille","District":"Centre","PostalCode":"59800",
                 "Street":"Grand'Place","StreetComponents":[{"BaseName":"Grand'Place","Language":"fr"}]},
                 "Position":[3.06361,50.63706],
                 "MapView":[3.0628,50.6367,3.06413,50.63729],
                 "MatchScores":{"Overall":1,"Components":{"Address":{"Country":1,"Locality":1,"Intersection":[1]}}}}]}

これは、市街地の GPS 座標 ([3.06361, 50.63706]) を含む複数のデータポイントを返します。

ステップ3:近隣の場所を検索

取得した座標を使用して、REST API クライアントツールで SearchNearby APIを呼び出し、リール市街地の近隣の観光スポットを検索します。

画面の右側には、API レスポンスとして、レストラン、銀行、駐車場など、近隣の場所のリストが表示されます。さらに、カテゴリーを指定したり、検索するエリアを制限したりして、検索を絞り込むことができます。

SearchNearby API では、オプションの Filter パラメータを受け付け、このパラメータを使用すると、検索を境界ボックス内に制限したり、企業グループ、カテゴリー、国、または食品の種類を含めたり除外したりすることができます。

"Filter": {
   "BoundingBox": [ number ],
   "ExcludeBusinessChains": [ "string" ],
   "ExcludeCategories": [ "string" ],
   "ExcludeFoodTypes": [ "string" ],
   "IncludeBusinessChains": [ "string" ],
   "IncludeCategories": [ "string" ],
   "IncludeCountries": [ "string" ],
   "IncludeFoodTypes": [ "string" ]
},

近隣の観光スポットを検索したところ、検索結果の 1 つとして、国際的に有名なマクドナルド🍔が返されました。

ステップ4: 運転ルートを取得

最後に、AWS CLI を使用して、ベルギーのブリュッセルとフランスのリールという 2  つの都市の中心地間の運転ルートを計算します。

aws location calculate-routes    \
    --origin 4.35278 50.84687      \
    --destination 3.06361 50.63706 \
    --key "v1.public.ey...cy"

応答には、地図上に経路を表示するためのポリラインと、段階的な運転指示のリストが含まれています。

...
          "TravelMode": "Car",
          "Type": "Vehicle",
          "VehicleLegDetails": {
            "TravelSteps": [
              {
                "Duration": 15,
                "Distance": 75,
                "ExitNumber": [],
                "GeometryOffset": 0,
                "Type": "Depart"
              },
              {
                "Duration": 10,
                "Distance": 8,
                "ExitNumber": [],
                "GeometryOffset": 2,
                "Type": "Turn",
                "TurnStepDetails": {
                  "Intersection": [],
                  "SteeringDirection": "Right",
                  "TurnIntensity": "Typical"
                }
              },
...

ステップ5:地図上にルートを表示する

地図上にルートを表示するために、私は MapLibre ライブラリを使用しています。これは、ウェブやモバイルアプリケーションで地図を表示するためのレンダリングエンジンです。Amazon Location Service Developer Guide に従って、ルートを表示する基本的なアプリを作成しました。

MapLibre に加えて、AWS Amplify を使用してAmazon Location データをアプリケーションに統合し、表示することもできます。

開始方法

これらの新しい API および更新された API により、Amazon Location Service はお客様のビジネスニーズに合わせたより包括的なマッピングおよび位置情報データスイートを提供します。これらの機能は、開発者の機敏性と拡張性を高めることで、お客様の開発ライフサイクルを加速します。

まずは、更新されたAmazon Location Service 開発者ガイドを参照し、これらの機能の統合を今日から開始してください。また、Amazon Location Service ページにアクセスして詳細を確認したり、お好みの AWS SDK で API を試用して、アプリケーションの強化方法を確認することもできます。

— seb

本記事は「Announcing new APIs for Amazon Location Service Routes, Places, and Maps」を翻訳したものです。

著者について

Photo of author

Sébastien Stormacq

セバスチャンは、1980年代半ばに初めてコモドール64に触れて以来、コードを書き続けている。情熱、熱意、お客様擁護、好奇心、創造性を秘伝のブレンドで駆使し、AWSクラウドの価値を引き出すよう開発者を鼓舞している。関心のある分野は、ソフトウェアアーキテクチャ、開発者ツール、モバイルコンピューティング。彼に何かを売り込みたい場合は、API 付きであることを確認すること。X で @sebstoでフォローしましょう。

翻訳者について

Photo of author

稲田 大陸

AWS Japan で働く筋トレが趣味のソリューションアーキテクト。普段は製造業のお客様を中心に技術支援を行っています。好きな AWS サービスは Amazon Location Service と AWS Amplify で、日本のお客様向けに Amazon Location Service の解説ブログなどを執筆しています。