Python 用のレンダー パッケージ クライアント ライブラリのAzure Maps - バージョン 1.0.0b2

このパッケージには、Azure Maps Services for Render 用の 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 Render SDK をインストールします。

pip install azure-maps-render

MapsRenderClient を作成して認証する

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

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

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

from azure.core.credentials import AzureKeyCredential
from azure.maps.render import MapsRenderClient

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

render_client = MapsRenderClient(
    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.render import MapsRenderClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
render_client = MapsRenderClient(
    client_id="<Azure Maps Client ID>",
    credential=credential
)

主要な概念

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

クライアントの同期

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

非同期クライアント

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

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

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

マップの属性を取得する

この要求により、ユーザーはタイルセットのセクションのマップ著作権属性情報を要求できます。

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_attribution(
    tileset_id=TilesetID.MICROSOFT_BASE,
    zoom=6,
    bounds=BoundingBox(
        south=42.982261,
        west=24.980233,
        north=56.526017,
        east=1.355233
    )
)

マップ タイルを取得する

この要求により、通常はマップ コントロールまたは SDK に統合されるベクター形式またはラスター形式のマップ タイルが返されます。 要求できるタイルの例としては、Azure Maps道路タイル、リアルタイム気象レーダー タイルがあります。 既定では、Azure Mapsは Web マップ コントロール (Web SDK) と Android SDK にベクター タイルを使用します。

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_tile(
    tileset_id=TilesetID.MICROSOFT_BASE,
    z=6,
    x=9,
    y=22,
    tile_size="512"
)

マップタイルセットを取得する

この要求により、タイルセットのメタデータが提供されます。

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_tileset(tileset_id=TilesetID.MICROSOFT_BASE)

マップの静的イメージを取得する

この要求により、静的イメージ サービスは、0 から 20 までのズーム レベルを使用して、マップ セクションを含むユーザー定義の四角形の画像をレンダリングします。 静的イメージ サービスは、0 ~ 20 のズーム レベルを使用して、マップ セクションを含むユーザー定義の四角形の画像をレンダリングします。 また、結果を png としてファイルに保存します。

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_static_image(img_format="png", center=(52.41064,4.84228))
# Save result to file as png
file = open('result.png', 'wb')
file.write(next(result))
file.close()

この要求は、Render Tile サービスの著作権情報を提供します。

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_copyright_for_world()

トラブルシューティング

全般

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

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

ログの記録

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

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

import sys
import logging
from azure.maps.render import MapsRenderClient

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

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

その他

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

次のステップ

その他のサンプル コード

Maps Render のサンプル (非同期バージョンのサンプル) の使用を開始します。

Sdk の GitHub リポジトリには、いくつかのAzure Maps Render Python SDK サンプルが用意されています。 これらのサンプルでは、Maps Render の操作中に一般的に発生する追加のシナリオのサンプル コードを提供します

set AZURE_SUBSCRIPTION_KEY="<RealSubscriptionKey>"

pip install azure-maps-render --pre

python samples/sample_authentication.py
python sample/sample_get_copyright_caption.py
python sample/sample_get_copyright_for_tile.py
python sample/sample_get_copyright_for_world.py
python sample/sample_get_copyright_from_bounding_box.py
python sample/sample_get_map_attribution.py
python sample/sample_get_map_static_image.py
python sample/sample_get_map_tile.py
python sample/sample_get_map_tileset.py

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

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

その他のドキュメント

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

共同作成

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

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

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