Amazon Web Services ブログ

Amazon Location Service の Routes、Places、Maps 用の新しい API の発表

11 月 8 日、Amazon Location Service は、RoutesPlacesMaps 機能の能力を拡張および改善する 17 個の強化された新たな API をリリースしました。これにより、開発者にとって総合的かつ効率的なエクスペリエンスが実現します。機能を強化し、移行を簡素化するこれらの更新により、Amazon Location Service は幅広いアプリケーションでさらに利用しやすく、便利になりました。

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

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

新機能と拡張機能
11 月 8 日のリリースでは、お客様のフィードバックに直接応える、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 の強化によって、より詳細な検索機能が実現され、位置情報データをよりきめ細かいものにしてほしいというリクエストに対応できるようになりました。この新機能には以下のものが含まれます。

  • SearchNearbyAutocomplete が近接度ベースのクエリをサポートし、予測変換機能を有効にしたことによる、ユーザーエクスペリエンスの向上
  • 関心のある地点の営業時間、連絡先情報、追加属性などのカテゴリを使用したビジネス詳細の強化

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

Enhanced Location Service の実行
API の呼び出しは簡単です。AWS コマンドラインインターフェイス (AWS CLI)、当社の AWS SDK のいずれか、またはプレーンな REST API を使用できます。ただし、ウェブアプリまたはモバイルアプリのマップに情報を表示するには、追加の設定が必要です。このプロセスは詳しく説明されていますが、非常に詳細であるため、ここにすべて記載することはできません。このデモでは、API の使用に焦点を当てます。

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

API の多様性と、アプリケーション内での統合がいかに簡単かを示すために、デモの各ステップで AWS CLI、cURL、グラフィカル REST API クライアントを組み合わせて使用します。

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

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

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 を呼び出し、リール中心部周辺の興味深い場所を見つけます。

Amazon Location Service – 関心のある場所の API コール

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

SearchNearby API では、バウンディングボックス内の検索を制限したり、ビジネスチェーン、カテゴリ、国、食品の種類を含めたり除外したりするのに役立つ、オプションの Filter パラメータを使用できます。

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

近くの関心のある場所を検索したところ、返された結果の 1 つは、国際的に有名なマクドナルドでした 🍔。

Amazon Location Service – SearchNearby の結果

ステップ 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 デベロッパーガイドの手順に沿って、ルートを表示する基本的なアプリを作成しました。

Amazon Location Service – ルート付きマップ

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

開始方法
これらの新規および更新された API を使用して、Amazon Location Service はお客様のビジネスニーズに応える、より包括的なマッピングおよびロケーションデータのスイートを提供します。これにより、開発者の俊敏性とスケーラビリティが向上し、開発ライフサイクルが加速されます。

はじめに、更新された Amazon Location Service デベロッパーガイドを確認し、今すぐこれらの機能の統合を開始してください。Amazon Location Service ページにアクセスして詳細を確認したり、お気に入りの AWS SDK で API を試して、アプリケーションをどのように強化できるかを確認したりすることもできます。

— seb

原文はこちらです。