Udostępnij za pośrednictwem


biblioteka klienta pakietu routingu Azure Maps dla języka Python — wersja 1.0.0b1

Ten pakiet zawiera zestaw SDK języka Python dla usług Azure Maps dla usługi Route. Dowiedz się więcej o usługach Azure Maps tutaj

Kod | źródłowy Dokumentacja referencyjna interfejsu | API Dokumentacja produktu

Zrzeczenie odpowiedzialności

Obsługa pakietów języka Python dla zestawu Azure SDK dla języka Python 2.7 zakończyła się 1 stycznia 2022 r. Aby uzyskać więcej informacji i pytań, zapoznaj się z artykułem https://github.com/Azure/azure-sdk-for-python/issues/20691

Wprowadzenie

Wymagania wstępne

Jeśli używasz interfejsu wiersza polecenia platformy Azure, zastąp <resource-group-name> elementy i <account-name> wybierz odpowiednią warstwę cenową w zależności od potrzeb za pośrednictwem parametru <sku-name> . Aby uzyskać więcej informacji, zapoznaj się z tą stroną .

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

Instalowanie pakietu

Zainstaluj zestaw SDK usługi Azure Maps Service Route.

pip install azure-maps-route

Tworzenie i uwierzytelnianie elementu MapsRouteClient

Aby utworzyć obiekt klienta w celu uzyskania dostępu do interfejsu API usługi Azure Maps Route, potrzebny jest obiekt poświadczeń. Azure Maps Klient usługi Route obsługuje również dwa sposoby uwierzytelniania.

1. Uwierzytelnianie przy użyciu poświadczeń klucza subskrypcji

Możesz uwierzytelnić się przy użyciu klucza subskrypcji Azure Maps. Po utworzeniu klucza subskrypcji Azure Maps ustaw wartość klucza jako zmienną środowiskową: AZURE_SUBSCRIPTION_KEY. Następnie przekaż element AZURE_SUBSCRIPTION_KEY jako credential parametr do wystąpienia obiektu 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. Uwierzytelnianie przy użyciu poświadczeń usługi Azure Active Directory

Możesz uwierzytelnić się przy użyciu poświadczeń tokenu usługi Azure Active Directory (AAD) przy użyciu biblioteki tożsamości platformy Azure. Uwierzytelnianie przy użyciu usługi AAD wymaga konfiguracji początkowej:

Po skonfigurowaniu można wybrać typ poświadczeńazure.identity do użycia. Na przykład wartość DefaultAzureCredential może służyć do uwierzytelniania klienta:

Następnie ustaw wartości identyfikatora klienta, identyfikatora dzierżawy i klucza tajnego klienta aplikacji usługi AAD jako zmienne środowiskowe: AZURE_CLIENT_ID, , AZURE_TENANT_IDAZURE_CLIENT_SECRET

Należy również określić zasób Azure Maps, którego zamierzasz użyć, określając wartość clientId w opcjach klienta. Identyfikator klienta zasobu Azure Maps można znaleźć w sekcjach Uwierzytelnianie w zasobie Azure Maps. Zapoznaj się z dokumentacją dotyczącą tego, jak go znaleźć.

from azure.maps.route import MapsRouteClient
from azure.identity import DefaultAzureCredential

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

Kluczowe pojęcia

Biblioteka klienta usługi Azure Maps Route dla języka Python umożliwia interakcję z poszczególnymi składnikami za pomocą dedykowanego obiektu klienta.

Synchronizowanie klientów

MapsRouteClientjest podstawowym klientem dla deweloperów korzystających z biblioteki klienta usługi Azure Maps Route dla języka Python. Po zainicjowaniu MapsRouteClient klasy można zapoznać się z metodami w tym obiekcie klienta, aby poznać różne funkcje usługi Azure Maps Route Service, do których można uzyskać dostęp.

Klienci asynchroniczny

Ta biblioteka zawiera kompletny asynchroniczny interfejs API obsługiwany w języku Python 3.5 lub nowszym. Aby go używać, należy najpierw zainstalować transport asynchroniczny, taki jak aiohttp. Aby uzyskać więcej informacji, zobacz dokumentację platformy azure-core .

Klienci asynchroniczne i poświadczenia powinny być zamykane, gdy nie są już potrzebne. Te obiekty są menedżerami kontekstu asynchronicznego i definiują metody asynchroniczne close .

Przykłady

W poniższych sekcjach przedstawiono kilka fragmentów kodu obejmujących niektóre z najbardziej typowych zadań Azure Maps route, w tym:

Żądanie i uzyskiwanie wskazówek trasy

To żądanie obsługi zwraca trasę między lokalizacją początkową i docelową, przechodząc przez punkty waypoints, jeśli zostały określone. Trasa będzie uwzględniać czynniki, takie jak bieżący ruch i typowe prędkości drogowe w żądanym dniu tygodnia i o porze dnia.

from azure.maps.route import MapsRouteClient

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

Żądanie i pobieranie zakresu tras

Ta usługa obliczy zestaw lokalizacji, które można uzyskać z punktu początkowego, podając współrzędne i na podstawie określonego budżetu paliwa, energii, czasu lub odległości.

from azure.maps.route import MapsRouteClient

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

Pobieranie macierzy tras

Jeśli żądanie trasy macierzy zostało zaakceptowane pomyślnie, nagłówek Location w odpowiedzi zawiera adres URL umożliwiający pobranie wyników żądania.

Pobiera wynik poprzedniego żądania macierzy tras. Metoda zwraca element poller do pobierania wyniku.

from azure.maps.route import MapsRouteClient

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

Pobieranie usługi Route Directions Batch

Pobiera wynik poprzedniego żądania wsadowego kierunku trasy. Metoda zwraca element poller do pobierania wyniku.

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

Rozwiązywanie problemów

Ogólne

Klienci usługi Maps Route zgłaszają wyjątki zdefiniowane w usłudze Azure Core.

Ta lista może służyć do przywoływania zgłaszanych wyjątków. Aby uzyskać określony kod błędu wyjątku, użyj atrybutu error_code , tj exception.error_code. .

Rejestrowanie

Ta biblioteka używa standardowej biblioteki rejestrowania do rejestrowania. Podstawowe informacje o sesjach HTTP (adresach URL, nagłówkach itp.) są rejestrowane na poziomie INFORMACJI.

Szczegółowe rejestrowanie na poziomie DEBUG, w tym treści żądań/odpowiedzi i nieredagowanych nagłówków, można włączyć na kliencie z argumentem logging_enable :

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)

Dodatkowe

Nadal występują problemy? Jeśli napotkasz jakiekolwiek usterki lub masz sugestie, zgłoś problem w sekcji Problemy w projekcie.

Następne kroki

Więcej przykładów kodu

Rozpocznij pracę z przykładami tras w usłudze Maps (przykłady wersji asynchronicznych).

W repozytorium GitHub zestawu SDK zestawu SDK zestawu SDK dla języka Python dostępnych jest kilka Azure Maps route. Te przykłady zawierają przykładowy kod dla dodatkowych scenariuszy, które często występują podczas pracy z trasą usługi Maps

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

Uwagi: --pre można opcjonalnie dodać flagę. Ma ona obejmować wersje wstępne i programistyczne dla programu pip install. Domyślnie pip program znajduje tylko stabilne wersje.

Więcej szczegółów można znaleźć w temacie Wprowadzenie do przykładów

Dodatkowa dokumentacja

Aby uzyskać bardziej obszerną dokumentację dotyczącą usługi Azure Maps Route, zobacz dokumentację usługi Azure Maps Route dotyczącą docs.microsoft.com.

Współtworzenie

W tym projekcie zachęcamy do współtworzenia i zgłaszania sugestii. Współtworzenie w większości przypadków wymaga zgody na umowę licencyjną dotyczącą współautorów (CLA, Contributor License Agreement), zgodnie z którą współautor ma prawo udzielić i faktycznie udziela nam praw do używania wytworzonej przez siebie zawartości. Aby uzyskać szczegółowe informacje, odwiedź stronę https://cla.microsoft.com.

Po przesłaniu żądania ściągnięcia robot CLA automatycznie określi, czy musisz przekazać umowę CLA, i doda odpowiednie informacje do tego żądania (na przykład etykietę czy komentarz). Po prostu postępuj zgodnie z instrukcjami robota. Wystarczy zrobić to raz dla wszystkich repozytoriów, w przypadku których jest używana nasza umowa CLA.

W tym projekcie przyjęto Kodeks postępowania oprogramowania Open Source firmy Microsoft. Aby uzyskać więcej informacji, zobacz Często zadawane pytania dotyczące kodeksu postępowania lub skontaktuj się z opencode@microsoft.com dodatkowymi pytaniami lub komentarzami.