Share via


Azure Maps-Clientbibliothek des Renderpakets für Python – Version 1.0.0b2

Dieses Paket enthält ein Python SDK für Azure Maps Services for Render. Weitere Informationen zu Azure Maps Services finden Sie hier.

Quellcode | API-Referenzdokumentation | Produktdokumentation

Haftungsausschluss

Die Unterstützung von Python-Paketen für Das Azure SDK für Python 2.7 wurde am 01. Januar 2022 eingestellt. Weitere Informationen und Antworten finden Sie unter https://github.com/Azure/azure-sdk-for-python/issues/20691.

Erste Schritte

Voraussetzungen

Wenn Sie die Azure CLI verwenden, ersetzen <resource-group-name> Sie und <account-name> von Ihrer Wahl, und wählen Sie einen geeigneten Tarif basierend auf Ihren Anforderungen über den <sku-name> Parameter aus. Weitere Informationen finden Sie auf dieser Seite.

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

Installieren des Pakets

Installieren Sie das Azure Maps Service Render SDK.

pip install azure-maps-render

Erstellen und Authentifizieren des MapsRenderClient

Um ein Clientobjekt für den Zugriff auf die Azure Maps Render-API zu erstellen, benötigen Sie ein Anmeldeinformationsobjekt. Azure Maps Renderclient unterstützt auch zwei Möglichkeiten zur Authentifizierung.

1. Authentifizieren mit Abonnementschlüsselanmeldeinformationen

Sie können sich mit Ihrem Azure Maps-Abonnementschlüssel authentifizieren. Nachdem der Azure Maps Abonnementschlüssel erstellt wurde, legen Sie den Wert des Schlüssels als Umgebungsvariable fest: AZURE_SUBSCRIPTION_KEY. Übergeben Sie dann einen AZURE_SUBSCRIPTION_KEY als credential Parameter an eine instance von 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. Authentifizieren mit Azure Active Directory-Anmeldeinformationen

Sie können sich mit Azure Active Directory-Tokenanmeldeinformationen (AAD) mithilfe der Azure Identity-Bibliothek authentifizieren. Die Authentifizierung mithilfe von AAD erfordert eine anfängliche Einrichtung:

Nach der Einrichtung können Sie auswählen, von azure.identity welchem Typ von Anmeldeinformationen sie verwendet werden sollen. Als Beispiel kann DefaultAzureCredential verwendet werden, um den Client zu authentifizieren:

Legen Sie als Nächstes die Werte der Client-ID, mandanten-ID und des geheimen Clientschlüssels der AAD-Anwendung als Umgebungsvariablen fest: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET

Sie müssen auch die Azure Maps Ressource angeben, die Sie verwenden möchten, indem Sie in den Clientoptionen angebenclientId. Die Azure Maps Ressourcenclient-ID finden Sie in den Abschnitten Authentifizierung in der Azure Maps-Ressource. Informationen zum Finden finden Sie in der Dokumentation .

from azure.maps.render import MapsRenderClient
from azure.identity import DefaultAzureCredential

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

Wichtige Begriffe

Die Azure Maps Render-Clientbibliothek für Python ermöglicht Ihnen die Interaktion mit den einzelnen Komponenten durch verwendung eines dedizierten Clientobjekts.

Clients synchronisieren

MapsRenderClientist der primäre Client für Entwickler, die die Azure Maps Render-Clientbibliothek für Python verwenden. Nachdem Sie eine MapsRenderClient Klasse initialisiert haben, können Sie die Methoden für dieses Clientobjekt untersuchen, um die verschiedenen Features des Azure Maps Renderdiensts zu verstehen, auf den Sie zugreifen können.

Asynchrone Clients

Diese Bibliothek enthält eine vollständige asynchrone API, die unter Python 3.5 und höher unterstützt wird. Um ihn verwenden zu können, müssen Sie zuerst einen asynchronen Transport installieren, z. B. aiohttp. Weitere Informationen finden Sie in der Dokumentation zu azure-core .

Asynchrone Clients und Anmeldeinformationen sollten geschlossen werden, wenn sie nicht mehr benötigt werden. Diese Objekte sind asynchrone Kontext-Manager und definieren asynchrone close Methoden.

Beispiele

Die folgenden Abschnitte enthalten mehrere Codeausschnitte, die einige der gängigsten Azure Maps Renderaufgaben behandeln, einschließlich:

Zuordnung abrufen

Mit dieser Anforderung können Benutzer Informationen zur Zuordnung der Urheberrechtszuordnung für einen Abschnitt eines Tilesets anfordern.

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
    )
)

Kachel "Karten abrufen"

Diese Anforderung gibt Kartenkacheln in Vektor- oder Rasterformaten zurück, die in der Regel in ein Kartensteuerelement oder SDK integriert werden. Einige Beispielkacheln, die angefordert werden können, sind Azure Maps Straßenkacheln, Echtzeit-Wetterradar-Kacheln. Standardmäßig verwendet Azure Maps Vektorkacheln für das Web map control (Web SDK) und das 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"
)

Karten-Kachelset abrufen

Bei dieser Anforderung werden Metadaten für ein Kachelset bereitgestellt.

from azure.maps.render import MapsRenderClient

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

Statisches Kartenbild abrufen

Diese Anforderung stellt bereit, dass der statische Bilddienst ein benutzerdefiniertes, rechteckiges Bild mit einem Kartenabschnitt mit einer Zoomstufe von 0 bis 20 rendert. Der statische Bilddienst rendert ein benutzerdefiniertes, rechteckiges Bild, das einen Kartenabschnitt enthält, und verwendet eine Zoomstufe von 0 bis 20. Speichern Sie das Ergebnis auch als 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()

Diese Anforderung dient Urheberrechtsinformationen für den Render Tile-Dienst.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_copyright_for_world()

Problembehandlung

Allgemein

Maps Render-Clients lösen ausnahmen aus, die in Azure Core definiert sind.

Diese Liste kann als Verweis verwendet werden, um ausgelöste Ausnahmen abzufangen. Um den spezifischen Fehlercode der Ausnahme abzurufen, verwenden Sie das error_code -Attribut, d. h exception.error_code. .

Protokollierung

Diese Bibliothek verwendet die Standardprotokollierungsbibliothek für die Protokollierung. Grundlegende Informationen zu HTTP-Sitzungen (URLs, Header usw.) werden auf INFO-Ebene protokolliert.

Eine detaillierte Protokollierung auf DEBUG-Ebene, einschließlich Anforderungs-/Antworttexten und nicht ausgeführten Headern, kann auf einem Client mit dem logging_enable Argument aktiviert werden:

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)

Zusätzliche Informationen

Treten weiterhin Probleme auf? Wenn Fehler auftreten oder Vorschläge vorliegen, melden Sie ein Problem im Abschnitt Probleme des Projekts.

Nächste Schritte

Weiterer Beispielcode

Erste Schritte mit unseren Karten-Renderbeispielen (Beispiele für die Asynchrone Version).

Mehrere Azure Maps Render Python SDK-Beispiele stehen Ihnen im GitHub-Repository des SDK zur Verfügung. Diese Beispiele enthalten Beispielcode für zusätzliche Szenarien, die häufig bei der Arbeit mit Maps Render auftreten.

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

Hinweise: --pre Das Flag kann optional hinzugefügt werden, es soll Vorabversionen und Entwicklungsversionen für pip installeinschließen. Standardmäßig pip werden nur stabile Versionen gefunden.

Weitere Details finden Sie unter Einführung in die Beispiele.

Zusätzliche Dokumentation

Eine ausführlichere Dokumentation zu Azure Maps Rendern finden Sie in der Azure Maps-Dokumentation zum Rendern auf docs.microsoft.com.

Mitwirken

Beiträge und Vorschläge für dieses Projekt sind willkommen. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. Ausführliche Informationen finden Sie unter https://cla.microsoft.com.

Wenn Sie einen Pull Request (PR) übermitteln, überprüft ein CLA-Bot automatisch, ob Sie eine Lizenzvereinbarung bereitstellen und den PR entsprechend ergänzen müssen (z.B. mit einer Bezeichnung oder einem Kommentar). Führen Sie einfach die Anweisungen des Bots aus. Sie müssen dies nur einmal für alle Repositorys ausführen, die unsere CLA verwenden.

Für dieses Projekt gelten die Microsoft-Verhaltensregeln für Open Source (Microsoft Open Source Code of Conduct). Weitere Informationen finden Sie in den häufig gestellten Fragen zum Verhaltenskodex. Sie können sich auch an opencode@microsoft.com wenden, wenn Sie weitere Fragen oder Anmerkungen haben.