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
- Python 3.6 eller senare krävs för att använda det här paketet.
- En Azure-prenumeration och ett Azure Maps konto.
- En distribuerad Maps Services-resurs. Du kan skapa resursen via Azure-portalen eller Azure CLI.
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:
- Installera azure-identity
- Registrera ett nytt AAD-program
- Bevilja åtkomst till Azure Maps genom att tilldela lämplig roll till tjänstens huvudnamn. Se sidan Hantera autentisering.
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
- Begära och hämta routningsintervall
- Hämta routningsmatris
- Hämta routningsriktningar batch
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örpip install
. Som standardpip
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.
Azure SDK for Python