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
- Für die Verwendung dieses Pakets ist Python 3.7 oder höher erforderlich.
- Ein Azure-Abonnement und ein Azure Maps-Konto.
- Eine bereitgestellte Maps Services-Ressource. Sie können die Ressource über das Azure-Portal oder die Azure CLI erstellen.
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:
- Installieren von azure-identity
- Registrieren einer neuen AAD-Anwendung
- Gewähren Sie Zugriff auf Azure Maps, indem Sie Ihrem Dienstprinzipal die geeignete Rolle zuweisen. Weitere Informationen finden Sie auf der Seite Authentifizierung verwalten.
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
MapsRenderClient
ist 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
- Statisches Kartenbild abrufen
- Kachel "Karten abrufen"
- Karten-Kachelset abrufen
- Get Maps Copyright for World
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()
Get Maps Copyright for World
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ürpip install
einschließen. Standardmäßigpip
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.
Azure SDK for Python
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für