次の方法で共有


Python 用 Azure Maps ルート パッケージ クライアント ライブラリ - バージョン 1.0.0b1

このパッケージには、Azure Maps Services for Route 用の Python SDK が含まれています。 Azure Maps サービスの詳細については、こちらを参照してください

ソースコード | API リファレンス ドキュメント | 製品ドキュメント

免責事項

Python 2.7 の Azure SDK Python パッケージのサポートは、2022 年 1 月 1 日に終了しました。 詳細と質問については、https://github.com/Azure/azure-sdk-for-python/issues/20691 を参照してください

作業の開始

前提条件

Azure CLI を使用する場合は、任意の と <account-name> を置き換え<resource-group-name>、 パラメーターを使用してニーズに基づいて適切な価格レベル<sku-name>選択します。 詳細については、このページを参照してください。

az maps account create --resource-group <resource-group-name> --account-name <account-name> --sku <sku-name>

パッケージをインストールする

Azure Maps Service Route SDK をインストールします。

pip install azure-maps-route

MapsRouteClient の作成と認証

Azure Maps Route API にアクセスするためのクライアント オブジェクトを作成するには、資格情報オブジェクトが必要です。 Azure Maps Route クライアントでは、認証する 2 つの方法もサポートされています。

1. サブスクリプション キーの資格情報を使用して認証する

Azure Maps サブスクリプション キーを使用して認証できます。 Azure Maps サブスクリプション キーが作成されたら、キーの値を環境変数 として設定しますAZURE_SUBSCRIPTION_KEY。 次に、 credential パラメーターとして を AzureKeyCredential のインスタンスに渡しますAZURE_SUBSCRIPTION_KEY

from azure.core.credentials import AzureKeyCredential
from azure.maps.route import MapsRouteClient

credential = AzureKeyCredential(os.environ.get("AZURE_SUBSCRIPTION_KEY"))

route_client = MapsRouteClient(
    credential=credential,
)

2. Azure Active Directory 資格情報を使用して認証する

Azure Id ライブラリを使用して、Azure Active Directory (AAD) トークン資格情報を使用して認証できます。 AAD を使用した認証には、いくつかの初期セットアップが必要です。

セットアップ後、使用する資格情報azure.identityの種類を選択できます。 たとえば、 DefaultAzureCredential を使用してクライアントを認証できます。

次に、AAD アプリケーションのクライアント ID、テナント ID、およびクライアント シークレットの値を環境変数として設定します。 AZURE_CLIENT_IDAZURE_TENANT_IDAZURE_CLIENT_SECRET

また、クライアント オプションで を指定して、使用するAzure Maps リソースを指定するclientId必要があります。 Azure Maps リソース クライアント ID は、Azure Maps リソースの認証セクションにあります。 検索方法については、 ドキュメント を参照してください。

from azure.maps.route import MapsRouteClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
route_client = MapsRouteClient(
    client_id="<Azure Maps Client ID>",
    credential=credential
)

主要な概念

Python 用の Azure Maps Route クライアント ライブラリを使用すると、専用のクライアント オブジェクトを使用して各コンポーネントを操作できます。

クライアントの同期

MapsRouteClientは、Python 用の Azure Maps Route クライアント ライブラリを使用する開発者向けの主要なクライアントです。 クラスをMapsRouteClient初期化したら、このクライアント オブジェクトのメソッドを調べて、アクセスできる Azure Maps Route サービスのさまざまな機能を理解できます。

非同期クライアント

このライブラリには、Python 3.5 以降でサポートされている完全な非同期 API が含まれています。 これを使用するには、まず、 aiohttp などの非同期トランスポートをインストールする必要があります。 詳細については、 azure-core のドキュメント を参照してください。

非同期クライアントと資格情報は、不要になったら閉じる必要があります。 これらのオブジェクトは非同期コンテキスト マネージャーであり、非同期 close メソッドを定義します。

次のセクションでは、次のような最も一般的なAzure Mapsルート タスクをカバーするいくつかのコード スニペットを示します。

要求とルートの方向の取得

このサービス要求は、配信元と宛先の間のルートを返し、指定されている場合はウェイポイントを通過します。 ルートでは、現在のトラフィックや、要求された曜日と時刻の一般的な道路速度などの要因が考慮されます。

from azure.maps.route import MapsRouteClient

route_directions_result = client.get_route_directions(route_points=[LatLon(47.60323, -122.33028), LatLon(53.2, -106)]);

要求とルート範囲の取得

このサービスは、指定された座標によって、指定された燃料、エネルギー、時間、または距離の予算に基づいて、原点から到達できる一連の場所を計算します。

from azure.maps.route import MapsRouteClient

route_range_result = client.get_route_range(coordinates=LatLon(47.60323, -122.33028), time_budget_in_sec=6000);

ルート マトリックスの取得

マトリックス ルート要求が正常に受け入れられた場合、応答の Location ヘッダーには、要求の結果をダウンロードするための URL が含まれます。

前のルート マトリックス要求の結果を取得します。 メソッドは、結果を取得するためのポーリングを返します。

from azure.maps.route import MapsRouteClient

route_matrix_result = client.begin_get_route_matrix_result(matrix_id="11111111-2222-3333-4444-555555555555");

ルートの方向バッチを取得する

前のルート方向バッチ要求の結果を取得します。 メソッドは、結果を取得するためのポーリングを返します。

from azure.maps.route import MapsRouteClient

route_directions_batch_poller_result = client.begin_get_route_directions_batch_result(batch_id="11111111-2222-3333-4444-555555555555");

トラブルシューティング

全般

Maps Route クライアントは 、Azure Core で定義されている例外を発生させます。

このリストは、スローされた例外をキャッチするための参照に使用できます。 例外の特定のエラー コードを取得するには、 属性 ( error_code つまり) exception.error_codeを使用します。

ログの記録

このライブラリでは、ログ記録に標準 のログ ライブラリが使用されます。 HTTP セッションに関する基本情報 (URL、ヘッダーなど) は INFO レベルでログに記録されます。

要求/応答本文、未変換ヘッダーなど、詳細な DEBUG レベルのログは、 引数を使用してクライアントで logging_enable 有効にすることができます。

import sys
import logging
from azure.maps.route import MapsRouteClient

# Create a logger for the 'azure.maps.route' SDK
logger = logging.getLogger('azure.maps.route')
logger.setLevel(logging.DEBUG)

# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

その他

まだ問題が発生していますか? バグが発生した場合、または提案がある場合は、プロジェクトの [問題 ] セクションで問題を報告してください。

次のステップ

その他のサンプル コード

Maps Route サンプルの概要 (非同期バージョンのサンプル)。

いくつかのAzure Maps Route Python SDK サンプルは、SDK の GitHub リポジトリで入手できます。 これらのサンプルでは、Maps Route の操作中に一般的に発生するその他のシナリオのコード例を示します

set AZURE_SUBSCRIPTION_KEY="<RealSubscriptionKey>"

pip install azure-maps-route --pre

python samples/sample_authentication.py
python sample/sample_get_route_range.py
python samples/sample_get_route_directions.py
python samples/sample_request_route_matrix.py
python samples/async_samples/sample_authentication_async.py
python samples/async_samples/sample_get_route_range_async.py
python samples/async_samples/sample_request_route_matrix_async.py
python samples/async_samples/sample_get_route_directions_async.py

注: --pre フラグは必要に応じて追加できます。これは、 の pip installプレリリースバージョンと開発バージョンを含めます。 既定では、 pip 安定したバージョンのみが検索されます。

詳細については、サンプルの概要に関するページを参照してください。

その他のドキュメント

Azure Maps ルートに関するより広範なドキュメントについては、docs.microsoft.com に関する Azure Maps Route のドキュメントを参照してください

共同作成

このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、 https://cla.microsoft.com を参照してください。

pull request を送信すると、CLA を提供して PR (ラベル、コメントなど) を適宜装飾する必要があるかどうかを CLA ボットが自動的に決定します。 ボットによって提供される手順にそのまま従ってください。 この操作は、Microsoft の CLA を使用するすべてのリポジトリについて、1 回だけ行う必要があります。

このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。