Azure Maps Biblioteka klienta pakietu renderowania dla języka Python — wersja 1.0.0b2
Ten pakiet zawiera zestaw SDK języka Python dla usług Azure Maps do renderowania. Dowiedz się więcej o usługach Azure Maps tutaj
Kod | źródłowyDokumentacja referencyjna interfejsu | APIDokumentacja produktu
Zrzeczenie odpowiedzialności
Obsługa pakietów języka Python zestawu Azure SDK dla języka Python 2.7 została zakończona 01 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 wymagany jest język Python w wersji 3.7 lub nowszej.
- 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, zamień <resource-group-name>
i <account-name>
wybierz odpowiednią warstwę cenową na podstawie Twoich 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 renderowania usługi Azure Maps.
pip install azure-maps-render
Tworzenie i uwierzytelnianie elementu MapsRenderClient
Aby utworzyć obiekt klienta w celu uzyskania dostępu do interfejsu API renderowania Azure Maps, potrzebny będzie obiekt poświadczeń. Azure Maps Render client 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ż jako AZURE_SUBSCRIPTION_KEY
credential
parametr do wystąpienia obiektu 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. 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 wpisu 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 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ą sposobu jej znajdowania.
from azure.maps.render import MapsRenderClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
render_client = MapsRenderClient(
client_id="<Azure Maps Client ID>",
credential=credential
)
Kluczowe pojęcia
Biblioteka klienta renderowania Azure Maps dla języka Python umożliwia interakcję z poszczególnymi składnikami przy użyciu dedykowanego obiektu klienta.
Synchronizowanie klientów
MapsRenderClient
jest podstawowym klientem deweloperów korzystającym z biblioteki klienta renderowania Azure Maps dla języka Python.
Po zainicjowaniu MapsRenderClient
klasy możesz zapoznać się z metodami w tym obiekcie klienta, aby zrozumieć różne funkcje usługi renderowania Azure Maps, do której można uzyskać dostęp.
Klienci asynchroniczny
Ta biblioteka zawiera kompletny interfejs API asynchroniczny obsługiwany w języku Python 3.5 lub nowszym. Aby go użyć, należy najpierw zainstalować transport asynchroniczny, taki jak aiohttp. Aby uzyskać więcej informacji, zobacz dokumentację platformy azure-core .
Klienci asynchroniczny i poświadczenia powinny być zamknięte, gdy nie są już potrzebne. Te obiekty są asynchronicznych menedżerów kontekstów i definiują metody asynchroniczne close
.
Przykłady
W poniższych sekcjach przedstawiono kilka fragmentów kodu obejmujących niektóre z najbardziej typowych zadań renderowania Azure Maps, w tym:
- Uzyskiwanie autorstwa map
- Pobieranie statycznego obrazu mapy
- Pobieranie kafelka Mapy
- Pobieranie zestawu kafelków map
- Uzyskiwanie praw autorskich do map dla świata
Uzyskiwanie autorstwa map
To żądanie umożliwia użytkownikom żądanie mapowania informacji dotyczących autorstwa praw autorskich dla sekcji zestawu kafelków.
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
)
)
Pobieranie kafelka Mapy
To żądanie zwróci kafelki mapy w formatach wektorów lub rasterów, które zwykle mają być zintegrowane z kontrolką mapy lub zestawem SDK. Przykładowe kafelki, których można zażądać, to Azure Maps kafelki dróg, kafelki radaru pogody w czasie rzeczywistym. Domyślnie Azure Maps używa kafelków wektorowych dla kontrolki mapy internetowej (Web SDK) i zestawu 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"
)
Pobieranie zestawu kafelków map
To żądanie spowoduje przekazanie metadanych dla zestawu kafelków.
from azure.maps.render import MapsRenderClient
result = maps_render_client.get_map_tileset(tileset_id=TilesetID.MICROSOFT_BASE)
Pobieranie statycznego obrazu mapy
To żądanie zapewni usłudze obrazów statycznych renderowanie zdefiniowanego przez użytkownika, prostokątnego obrazu zawierającego sekcję mapy przy użyciu poziomu powiększenia od 0 do 20. Usługa obrazów statycznych renderuje obraz prostokątny zdefiniowany przez użytkownika zawierający sekcję mapy przy użyciu poziomu powiększenia z zakresu od 0 do 20. A także zapisz wynik w pliku jako 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()
Uzyskiwanie praw autorskich do map dla świata
To żądanie będzie obsługiwać informacje o prawach autorskich dla usługi Render Tile.
from azure.maps.render import MapsRenderClient
result = maps_render_client.get_copyright_for_world()
Rozwiązywanie problemów
Ogólne
Klienci renderowania usługi Maps 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
, exception.error_code
tj. .
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.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)
Dodatkowe
Nadal występują problemy? Jeśli wystąpią 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 renderowania usługi Maps (przykłady wersji asynchronicznych).
Kilka przykładów zestawu SDK renderowania języka Python Azure Maps jest dostępnych w repozytorium GitHub zestawu SDK. Te przykłady zawierają przykładowy kod dla dodatkowych scenariuszy często napotykanych podczas pracy z renderowaniem usługi Maps
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
Uwagi:
--pre
flaga może być opcjonalnie dodawana, ma ona zawierać wersje wstępne i programistyczne dlapip install
programu . Domyślniepip
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ą renderowania Azure Maps, zobacz dokumentację Azure Maps Render 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