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

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_KEYcredential 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:

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_IDAZURE_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

MapsRenderClientjest 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

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()

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_codetj. .

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 dla pip installprogramu . Domyślnie pip 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.