Dela via


Azure Maps Route Package-klientbibliotek för Python – version 1.0.0b1

Det här paketet innehåller en Python SDK för Azure Maps Services for Route. 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 Route SDK.

pip install azure-maps-route

Skapa och autentisera MapsRouteClient

Om du vill skapa ett klientobjekt för att komma åt Azure Maps Route-API:et behöver du ett autentiseringsobjekt. Azure Maps Route-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.route import MapsRouteClient

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

route_client = MapsRouteClient(
    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.route import MapsRouteClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
route_client = MapsRouteClient(
    client_id="<Azure Maps Client ID>",
    credential=credential
)

Viktiga begrepp

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

Synkronisera klienter

MapsRouteClientär den primära klienten för utvecklare som använder Azure Maps Route-klientbiblioteket för Python. När du har initierat en MapsRouteClient klass kan du utforska metoderna i det här klientobjektet för att förstå de olika funktionerna i Azure Maps Route-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 Route-uppgifter, inklusive:

Begära och hämta vägbeskrivningar

Den här tjänstbegäran returnerar en väg mellan ett ursprung och ett mål som passerar genom waypoints om de anges. Rutten tar hänsyn till faktorer som aktuell trafik och de typiska väghastigheterna på den begärda dagen i veckan och tid på dagen.

from azure.maps.route import MapsRouteClient

route_directions_result = client.get_route_directions(route_points=[LatLon(47.60323, -122.33028), LatLon(53.2, -106)]);

Begära och hämta routningsintervall

Den här tjänsten beräknar en uppsättning platser som kan nås från ursprungsplatsen med hjälp av angivna koordinater och baserat på den angivna budgeten för bränsle, energi, tid eller avstånd.

from azure.maps.route import MapsRouteClient

route_range_result = client.get_route_range(coordinates=LatLon(47.60323, -122.33028), time_budget_in_sec=6000);

Hämta routningsmatris

Om matrisvägens begäran godkändes innehåller platsrubriken i svaret URL:en för att ladda ned resultatet av begäran.

Hämtar resultatet av en tidigare begäran om routningsmatris. Metoden returnerar en poller för att hämta resultatet.

from azure.maps.route import MapsRouteClient

route_matrix_result = client.begin_get_route_matrix_result(matrix_id="11111111-2222-3333-4444-555555555555");

Hämta routningsriktningar batch

Hämtar resultatet av en tidigare begäran om routningsriktningsbatch. Metoden returnerar en poller för att hämta resultatet.

from azure.maps.route import MapsRouteClient

route_directions_batch_poller_result = client.begin_get_route_directions_batch_result(batch_id="11111111-2222-3333-4444-555555555555");

Felsökning

Allmänt

Maps Route-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.route import MapsRouteClient

# Create a logger for the 'azure.maps.route' SDK
logger = logging.getLogger('azure.maps.route')
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 Route-exempel (Async-versionsexempel).

Flera Azure Maps Route 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 Route

set AZURE_SUBSCRIPTION_KEY="<RealSubscriptionKey>"

pip install azure-maps-route --pre

python samples/sample_authentication.py
python sample/sample_get_route_range.py
python samples/sample_get_route_directions.py
python samples/sample_request_route_matrix.py
python samples/async_samples/sample_authentication_async.py
python samples/async_samples/sample_get_route_range_async.py
python samples/async_samples/sample_request_route_matrix_async.py
python samples/async_samples/sample_get_route_directions_async.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 Route finns i Azure Maps Route-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.