Compartilhar via


Azure Mapas biblioteca de clientes do Pacote de Rotas para Python – versão 1.0.0b1

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

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:

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

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: --pre o sinalizador pode ser adicionado opcionalmente, é para incluir versões de pré-lançamento e desenvolvimento para pip install. Por padrão, pip localiza 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.