Share via


Azure Maps Render Package-klientbibliotek för Python – version 1.0.0b2

Det här paketet innehåller en Python SDK för Azure Maps Services for Render. Läs mer om Azure Maps Services här

Källkod | API-referensdokumentation | Produktdokumentation

Friskrivning

Stöd för Azure SDK Python-paket för Python 2.7 har upphört den 1 januari 2022. Mer information och frågor finns i https://github.com/Azure/azure-sdk-for-python/issues/20691

Komma igång

Förutsättningar

Om du använder Azure CLI ersätter <resource-group-name> och <account-name> väljer du en lämplig prisnivå baserat på dina behov via parametern <sku-name> . Mer information finns på den här sidan .

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

Installera paketet

Installera Azure Maps Service Render SDK.

pip install azure-maps-render

Skapa och autentisera MapsRenderClient

Om du vill skapa ett klientobjekt för att komma åt Azure Maps Render-API:et behöver du ett autentiseringsobjekt. Azure Maps Render-klienten stöder också två sätt att autentisera.

1. Autentisera med en prenumerationsnyckelautentiseringsuppgift

Du kan autentisera med din Azure Maps-prenumerationsnyckel. När Azure Maps prenumerationsnyckel har skapats anger du värdet för nyckeln som miljövariabel: AZURE_SUBSCRIPTION_KEY. Skicka sedan en AZURE_SUBSCRIPTION_KEY som credential parameter till en instans av 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. Autentisera med en Azure Active Directory-autentiseringsuppgift

Du kan autentisera med AAD-tokenautentiseringsuppgifter (Azure Active Directory) med hjälp av Azure Identity-biblioteket. Autentisering med hjälp av AAD kräver viss inledande konfiguration:

Efter installationen kan du välja vilken typ av autentiseringsuppgifter du azure.identity vill använda. Till exempel kan DefaultAzureCredential användas för att autentisera klienten:

Ange sedan värdena för klient-ID, klient-ID och klienthemlighet för AAD-programmet som miljövariabler: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET

Du måste också ange den Azure Maps resurs som du tänker använda genom att clientId ange i klientalternativen. Det Azure Maps resursklient-ID:t finns i avsnitten Autentisering i den Azure Maps resursen. Läs dokumentationen om hur du hittar den.

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

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

Viktiga begrepp

Med Azure Maps Render-klientbiblioteket för Python kan du interagera med var och en av komponenterna med hjälp av ett dedikerat klientobjekt.

Synkronisera klienter

MapsRenderClientär den primära klienten för utvecklare som använder klientbiblioteket Azure Maps Render för Python. När du har initierat en MapsRenderClient klass kan du utforska metoderna i det här klientobjektet för att förstå de olika funktionerna i Azure Maps Render-tjänsten som du kan komma åt.

Async-klienter

Det här biblioteket innehåller ett fullständigt asynkront API som stöds i Python 3.5+. Om du vill använda den måste du först installera en asynkron transport, till exempel aiohttp. Mer information finns i dokumentationen om azure-core .

Asynkrona klienter och autentiseringsuppgifter bör stängas när de inte längre behövs. Dessa objekt är asynkrona kontexthanterare och definierar asynkrona close metoder.

Exempel

Följande avsnitt innehåller flera kodfragment som täcker några av de vanligaste Azure Maps Rendera uppgifter, inklusive:

Hämta maps-attribution

Den här begäran gör det möjligt för användare att begära mappning av upphovsrättstilldelningsinformation för ett avsnitt i en paneluppsättning.

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

Panelen Hämta kartor

Den här begäran returnerar kartpaneler i vektor- eller rasterformat som vanligtvis ska integreras i en kartkontroll eller SDK. Några exempelpaneler som kan begäras är Azure Maps vägpaneler, väderradarpaneler i realtid. Som standard använder Azure Maps vektorpaneler för webbkartkontrollen (Web SDK) och 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"
)

Hämta kartpaneler

Den här begäran ger metadata för en paneluppsättning.

from azure.maps.render import MapsRenderClient

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

Hämta statisk maps-avbildning

Den här begäran ger den statiska bildtjänsten en användardefinierad, rektangulär bild som innehåller ett kartavsnitt med hjälp av en zoomningsnivå från 0 till 20. Tjänsten för statiska bilder återger en användardefinierad, rektangulär bild som innehåller ett kartavsnitt med hjälp av en zoomningsnivå från 0 till 20. Och spara även resultatet i filen som 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()

Den här begäran kommer att tillhandahålla upphovsrättsinformation för rendera paneltjänsten.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_copyright_for_world()

Felsökning

Allmänt

Maps Render-klienter genererar undantag som definierats i Azure Core.

Den här listan kan användas som referens för att fånga undantag som genereras. Om du vill hämta den specifika felkoden för undantaget använder du error_code attributet, t.ex. exception.error_code.

Loggning

Det här biblioteket använder standardloggningsbiblioteket för loggning. Grundläggande information om HTTP-sessioner (URL:er, rubriker osv.) loggas på INFO-nivå.

Detaljerad loggning på FELSÖKNINGsnivå, inklusive begärande-/svarskroppar och oredigerade huvuden, kan aktiveras på en klient med logging_enable argumentet :

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)

Ytterligare

Stöter du fortfarande på problem? Om du stöter på buggar eller har förslag kan du ange ett problem i avsnittet Problem i projektet.

Nästa steg

Mer exempelkod

Kom igång med våra Maps Render-exempel (Async-versionsexempel).

Flera Azure Maps Rendera Python SDK-exempel är tillgängliga för dig på SDK:s GitHub-lagringsplats. De här exemplen innehåller exempelkod för ytterligare scenarier som ofta påträffas när du arbetar med 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

Anmärkningar: --pre flaggan kan läggas till om du vill, det är att inkludera förhandsversioner och utvecklingsversioner för pip install. Som standard pip hittar endast stabila versioner.

Mer information finns i Exempelintroduktion

Ytterligare dokumentation

Mer omfattande dokumentation om Azure Maps Render finns i Azure Maps Render-dokumentationen på docs.microsoft.com.

Bidra

Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns på https://cla.microsoft.com.

När du skickar en pull-förfrågan avgör en CLA-robot automatiskt om du måste tillhandahålla ett licensavtal för bidrag med lämplig PR (t.ex. etikett eller kommentar). Följ bara robotens anvisningar. Du behöver bara göra detta en gång för alla repor som använder vårt licensavtal för bidrag.

Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekod eller kontakt opencode@microsoft.com med ytterligare frågor eller kommentarer.