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
- Do korzystania z tego pakietu jest wymagany język Python 3.6 lub nowszy.
- Subskrypcja platformy Azure i konto Azure Maps.
- Wdrożony zasób usług Maps Services. Zasób można utworzyć za pomocą witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.
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:
- Instalowanie tożsamości platformy Azure
- Rejestrowanie nowej aplikacji usługi AAD
- Udziel dostępu do Azure Maps, przypisując odpowiednią rolę do jednostki usługi. Zapoznaj się ze stroną Zarządzanie uwierzytelnianiem.
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_ID
AZURE_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
MapsRouteClient
jest 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
- Żądanie i pobieranie zakresu tras
- Pobieranie macierzy tras
- Pobieranie usługi Route Directions Batch
Żą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 programupip install
. Domyślniepip
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.
Azure SDK for Python