Azure Maps Biblioteca de cliente do Pacote de Composição para Python – versão 1.0.0b2
Este pacote contém um SDK Python para serviços de Azure Maps para Composição. Leia mais sobre os Serviços Azure Maps aqui
Código fonte | Documentação | de referência da APIDocumentação do produto
Exclusão de Responsabilidade
O suporte de pacotes Python do SDK do Azure para Python 2.7 terminou a 01 de janeiro de 2022. Para obter mais informações e perguntas, veja https://github.com/Azure/azure-sdk-for-python/issues/20691
Introdução
Pré-requisitos
- O Python 3.7 ou posterior é necessário para utilizar este pacote.
- Uma subscrição do Azure e uma conta Azure Maps.
- Um recurso do Maps Services implementado. Pode criar o recurso através do Portal do Azure ou da CLI do Azure.
Se utilizar a CLI do Azure, substitua <resource-group-name>
e <account-name>
à sua escolha e selecione um escalão de preço adequado com base nas suas necessidades através do <sku-name>
parâmetro . Consulte esta página para obter mais detalhes.
az maps account create --resource-group <resource-group-name> --account-name <account-name> --sku <sku-name>
Instalar o pacote
Instale o SDK de Composição do Serviço Azure Maps.
pip install azure-maps-render
Criar e Autenticar o MapsRenderClient
Para criar um objeto de cliente para aceder à API de Composição do Azure Maps, precisará de um objeto de credencial. Azure Maps Cliente de composição também suporta duas formas de autenticação.
1. Autenticar com uma Credencial de Chave de Subscrição
Pode autenticar com a chave de subscrição Azure Maps.
Assim que a chave de subscrição Azure Maps for criada, defina o valor da chave como variável de ambiente: AZURE_SUBSCRIPTION_KEY
.
Em seguida, transmita um AZURE_SUBSCRIPTION_KEY
como parâmetro credential
para uma instância de 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. Autenticar com uma credencial do Azure Active Directory
Pode autenticar com a credencial do token do Azure Active Directory (AAD) com a biblioteca de Identidades do Azure. A autenticação com o AAD requer alguma configuração inicial:
- Instalar azure-identity
- Registar uma nova aplicação do AAD
- Conceda acesso ao Azure Maps ao atribuir a função adequada ao principal de serviço. Veja a página Gerir autenticação.
Após a configuração, pode escolher o tipo de credencial a utilizar azure.identity
.
Por exemplo, DefaultAzureCredential pode ser utilizado para autenticar o cliente:
Em seguida, defina os valores do ID de cliente, do ID do inquilino e do segredo do cliente da aplicação do AAD como variáveis de ambiente: AZURE_CLIENT_ID
, , AZURE_TENANT_ID
AZURE_CLIENT_SECRET
Também terá de especificar a Azure Maps recurso que pretende utilizar ao especificar o clientId
nas opções de cliente. O ID de cliente do recurso Azure Maps pode ser encontrado nas secções Autenticação no recurso Azure Maps. Veja a documentação sobre como encontrá-la.
from azure.maps.render import MapsRenderClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
render_client = MapsRenderClient(
client_id="<Azure Maps Client ID>",
credential=credential
)
Conceitos-chave
A biblioteca de cliente Azure Maps Render para Python permite-lhe interagir com cada um dos componentes através da utilização de um objeto de cliente dedicado.
Sincronizar Clientes
MapsRenderClient
é o cliente principal para programadores que utilizam a biblioteca de cliente Azure Maps Render para Python.
Depois de inicializar uma MapsRenderClient
classe, pode explorar os métodos neste objeto de cliente para compreender as diferentes funcionalidades do serviço Azure Maps Render a que pode aceder.
Clientes Assíncrono
Esta biblioteca inclui uma API assíncrona completa suportada no Python 3.5 e superior. Para utilizá-lo, primeiro tem de instalar um transporte assíncrono, como o aiohttp. Veja a documentação do azure-core para obter mais informações.
Os clientes assíncrono e as credenciais devem ser fechados quando já não forem necessários. Estes objetos são gestores de contexto assíncrono e definem métodos assíncronos close
.
Exemplos
As secções seguintes fornecem vários fragmentos de código que abrangem algumas das tarefas mais comuns Azure Maps Render, incluindo:
- Obter Atribuição de Mapas
- Obter Imagem Estática do Mapas
- Obter Mosaico mapas
- Obter Conjunto de Mosaicos do Mapas
- Obter Os Direitos de Autor dos Mapas para o Mundo
Obter Atribuição de Mapas
Este pedido permite que os utilizadores solicitem informações de atribuição de direitos de autor de mapa para uma secção de um conjunto de mosaicos.
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
)
)
Obter Mosaico mapas
Este pedido irá devolver mosaicos de mapa em formatos de vetor ou raster normalmente para serem integrados num controlo de mapa ou SDK. Alguns mosaicos de exemplo que podem ser pedidos são Azure Maps mosaicos de estrada, mosaicos do Radar meteorológico em tempo real. Por predefinição, Azure Maps utiliza mosaicos de vetor para o respetivo controlo de mapa Web (SDK Web) e SDK Android.
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"
)
Obter Conjunto de Mosaicos do Mapas
Este pedido dará metadados para um conjunto de mosaicos.
from azure.maps.render import MapsRenderClient
result = maps_render_client.get_map_tileset(tileset_id=TilesetID.MICROSOFT_BASE)
Obter Imagem Estática do Mapas
Este pedido fornecerá ao serviço de imagem estática uma imagem retangular definida pelo utilizador que contém uma secção de mapa com um nível de zoom de 0 a 20. O serviço de imagens estáticas compõe uma imagem retangular definida pelo utilizador que contém uma secção de mapa com um nível de zoom de 0 a 20. Além disso, guarde o resultado no ficheiro como 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()
Obter Os Direitos de Autor dos Mapas para o Mundo
Este pedido servirá informações de direitos de autor para o serviço Mosaico de Composição.
from azure.maps.render import MapsRenderClient
result = maps_render_client.get_copyright_for_world()
Resolução de problemas
Geral
Os clientes de Composição do Maps geram exceções definidas no Azure Core.
Esta lista pode ser utilizada para referência para detetar exceções emitidas. Para obter o código de erro específico da exceção, utilize o error_code
atributo , ou seja, exception.error_code
.
Registo
Esta biblioteca utiliza a biblioteca de registos padrão para registo. As informações básicas sobre sessões HTTP (URLs, cabeçalhos, etc.) são registadas ao nível da INFORMAÇÃO.
O registo detalhado ao nível da DEBUG, incluindo os corpos de pedido/resposta e os cabeçalhos não retotados, pode ser ativado num cliente com o logging_enable
argumento :
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)
Adicionais
Ainda está a ter problemas? Se encontrar erros ou tiver sugestões, submeta um problema na secção Problemas do projeto.
Passos seguintes
Mais código de exemplo
Comece a utilizar os nossos exemplos de Composição do Maps (Exemplos de Versão Assíncrona).
Estão disponíveis vários exemplos do SDK Python de Composição de Azure Maps no repositório do GitHub do SDK. Estes exemplos fornecem código de exemplo para cenários adicionais normalmente encontrados ao trabalhar com a Composição do 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
Notas:
--pre
o sinalizador pode ser adicionado opcionalmente, incluindo versões de pré-lançamento e desenvolvimento parapip install
o . Por predefinição,pip
encontra apenas versões estáveis.
Para obter mais detalhes, veja Introdução aos Exemplos
Documentação adicional
Para obter documentação mais extensa sobre Azure Maps Render, veja a documentação do Azure Maps Render no docs.microsoft.com.
Contribuir
Agradecemos todas as contribuições e sugestões para este projeto. A maioria das contribuições requerem que celebre um Contrato de Licença de Contribuição (CLA) no qual se declare que tem o direito de conceder e que, na verdade, concede-nos os direitos para utilizar a sua contribuição. Para mais detalhes, visite https://cla.microsoft.com.
Quando submete um pedido Pull, um bot do CLA determina automaticamente se tem de fornecer um CLA e decorar o PR de forma adequada (por exemplo, etiqueta, comentário). Só tem de seguir as instruções fornecidas pelo bot. Apenas terá de fazer isto uma vez em todos os repositórios com o nosso CLA.
Este projeto adotou o Microsoft Open Source Code of Conduct (Código de Conduta do Microsoft Open Source). Para obter mais informações, consulte as FAQ do Código de Conduta ou contacte opencode@microsoft.com com quaisquer perguntas ou comentários adicionais.
Azure SDK for Python