Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Esse pacote contém um SDK do Python para Azure Mapas Services for Route. Leia mais sobre Azure Mapas Services aqui
Código-fonte | Documentação | de referência da APIDocumentação do produto
Aviso de isenção de responsabilidade
O suporte a pacotes python do SDK do Azure para Python 2.7 terminou em 01 de janeiro de 2022. Para obter mais informações e tirar dúvidas, consulte https://github.com/Azure/azure-sdk-for-python/issues/20691
Introdução
Pré-requisitos
- É necessário Python 3.6 ou posterior para usar esse pacote.
- Uma assinatura do Azure e uma conta Azure Mapas.
- Um recurso dos Serviços de Mapas implantado. Você pode criar o recurso por meio do Portal do Azure ou da CLI do Azure.
Se você usar a CLI do Azure, substitua <resource-group-name> e <account-name> de sua escolha e selecione um tipo de preço adequado com base em suas necessidades por meio do <sku-name> parâmetro . Consulte este artigo 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 da Rota do Serviço Azure Mapas.
pip install azure-maps-route
Criar e autenticar o MapsRouteClient
Para criar um objeto cliente para acessar a API de Rota do Azure Mapas, você precisará de um objeto de credencial. Azure Mapas cliente de rota também dá suporte a duas maneiras de autenticar.
1. Autenticar com uma credencial de chave de assinatura
Você pode autenticar com sua chave de assinatura Azure Mapas.
Depois que a chave de assinatura Azure Mapas for criada, defina o valor da chave como variável de ambiente: AZURE_SUBSCRIPTION_KEY.
Em seguida, passe um AZURE_SUBSCRIPTION_KEY como o credential parâmetro para uma instância de 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. Autenticar com uma credencial do Azure Active Directory
Você pode autenticar com a credencial de token do AAD (Azure Active Directory) usando a biblioteca de identidade do Azure. A autenticação usando o AAD requer alguma configuração inicial:
- Instalar azure-identity
- Registrar um novo aplicativo do AAD
- Conceda acesso a Azure Mapas atribuindo a função adequada à entidade de serviço. Consulte a página Gerenciar autenticação.
Após a instalação, você pode escolher de qual tipo de credencialazure.identity usar.
Por exemplo, DefaultAzureCredential pode ser usado para autenticar o cliente:
Em seguida, defina os valores da ID do cliente, da ID do locatário e do segredo do cliente do aplicativo AAD como variáveis de ambiente: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET
Você também precisará especificar o recurso Azure Mapas que pretende usar especificando o clientId nas opções do cliente. A ID do cliente do recurso Azure Mapas pode ser encontrada nas seções Autenticação no recurso Azure Mapas. Consulte a documentação sobre como encontrá-lo.
from azure.maps.route import MapsRouteClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
route_client = MapsRouteClient(
client_id="<Azure Maps Client ID>",
credential=credential
)
Principais conceitos
A biblioteca de clientes do Azure Mapas Route para Python permite que você interaja com cada um dos componentes por meio do uso de um objeto cliente dedicado.
Sincronizar clientes
MapsRouteClienté o cliente principal para desenvolvedores que usam a biblioteca de clientes Azure Mapas Route para Python.
Depois de inicializar uma MapsRouteClient classe, você poderá explorar os métodos nesse objeto cliente para entender os diferentes recursos do serviço Azure Mapas Route que você pode acessar.
Clientes assíncronos
Essa biblioteca inclui uma API assíncrona completa com suporte no Python 3.5+. Para usá-lo, primeiro você deve instalar um transporte assíncrono, como aiohttp. Confira a documentação do azure-core para obter mais informações.
Os clientes e credenciais assíncronos devem ser fechados quando não forem mais necessários. Esses objetos são gerenciadores de contexto assíncronos e definem métodos assíncronos close .
Exemplos
As seções a seguir fornecem vários snippets de código que abrangem algumas das tarefas mais comuns Azure Mapas Rota, incluindo:
- Solicitar e obter trajetos de rota
- Solicitar e obter intervalo de rotas
- Obter Matriz de Rotas
- Obter o Lote de Trajetos de Rota
Solicitar e obter trajetos de rota
Essa solicitação de serviço retorna uma rota entre uma origem e um destino, passando por pontos de passagem se forem especificados. A rota levará em conta fatores como o tráfego atual e as velocidades típicas da estrada no dia solicitado da semana e hora do dia.
from azure.maps.route import MapsRouteClient
route_directions_result = client.get_route_directions(route_points=[LatLon(47.60323, -122.33028), LatLon(53.2, -106)]);
Solicitar e obter intervalo de rotas
Esse serviço calculará um conjunto de locais que podem ser alcançados a partir do ponto de origem por determinadas coordenadas e com base no orçamento de combustível, energia, tempo ou distância especificado.
from azure.maps.route import MapsRouteClient
route_range_result = client.get_route_range(coordinates=LatLon(47.60323, -122.33028), time_budget_in_sec=6000);
Obter Matriz de Rotas
Se a solicitação rota de matriz foi aceita com êxito, o cabeçalho Local na resposta contém a URL para baixar os resultados da solicitação.
Recupera o resultado de uma solicitação de matriz de rota anterior. O método retorna um sondador para recuperar o resultado.
from azure.maps.route import MapsRouteClient
route_matrix_result = client.begin_get_route_matrix_result(matrix_id="11111111-2222-3333-4444-555555555555");
Obter o Lote de Trajetos de Rota
Recupera o resultado de uma solicitação em lote de direção de rota anterior. O método retorna um sondador para recuperar o resultado.
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");
Solução de problemas
Geral
Os clientes de Rota de Mapas geram exceções definidas no Azure Core.
Essa lista pode ser usada para referência para capturar exceções geradas. Para obter o código de erro específico da exceção, use o error_code atributo , ou seja, exception.error_code.
Log
Essa biblioteca usa a biblioteca de log padrão para registro em log. As informações básicas sobre sessões HTTP (URLs, cabeçalhos etc.) são registradas no nível info.
O log detalhado no nível de DEBUG, incluindo corpos de solicitação/resposta e cabeçalhos não redigidos, pode ser habilitado em um cliente com o logging_enable argumento :
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)
Adicional
Ainda está com problemas? Se você encontrar bugs ou tiver sugestões, registre um problema na seção Problemas do projeto.
Próximas etapas
Mais códigos de exemplo
Introdução aos nossos exemplos de Rota de Mapas (exemplos de versão assíncrona).
Várias Azure Mapas exemplos de SDK do Python de Rota estão disponíveis para você no repositório GitHub do SDK. Esses exemplos fornecem código de exemplo para cenários adicionais comumente encontrados ao trabalhar com a Rota de Mapas
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
Observações:
--preo sinalizador pode ser adicionado opcionalmente, é para incluir versões de pré-lançamento e desenvolvimento parapip install. Por padrão,piplocaliza apenas versões estáveis.
Mais detalhes, consulte Introdução aos exemplos
Documentação adicional
Para obter uma documentação mais abrangente sobre Azure Mapas Route, consulte a documentação do Azure Mapas Route em docs.microsoft.com.
Contribuição
Este projeto aceita contribuições e sugestões. A maioria das contribuições exige que você concorde com um CLA (Contrato de Licença do Colaborador) declarando que você tem o direito de nos conceder, e de fato concede, os direitos de usar sua contribuição. Para obter detalhes, visite https://cla.microsoft.com.
Quando você envia uma solicitação de pull, um bot do CLA determina automaticamente se você precisa fornecer um CLA e preencher a PR corretamente (por exemplo, rótulo, comentário). Basta seguir as instruções fornecidas pelo bot. Você só precisará fazer isso uma vez em todos os repositórios que usam nosso CLA.
Este projeto adotou o Código de Conduta de Software Livre da Microsoft. Para obter mais informações, confira as Perguntas frequentes sobre o Código de Conduta ou contate opencode@microsoft.com para enviar outras perguntas ou comentários.
Azure SDK for Python