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 を参照してください
作業の開始
前提条件
- このパッケージを使用するには、Python 3.7 以降が必要です。
- Azure サブスクリプションとAzure Maps アカウント。
- デプロイされた Maps Services リソース。 リソースは、 Azure Portal または Azure CLI を使用して作成できます。
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_KEY
credential
をパラメーターとして 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 をインストールする
- 新しい AAD アプリケーションを登録する
- 適切なロールをサービス プリンシパルに割り当てることで、Azure Mapsへのアクセス権を付与します。 認証の管理に関するページを参照してください。
セットアップ後、使用する資格情報azure.identity
の種類を選択できます。
たとえば、 DefaultAzureCredential を使用してクライアントを認証できます。
次に、AAD アプリケーションのクライアント ID、テナント ID、およびクライアント シークレットの値を環境変数として設定します。 AZURE_CLIENT_ID
AZURE_TENANT_ID
AZURE_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 宛てに質問またはコメントをお送りください。
Azure SDK for Python