Compartir a través de


Azure Maps biblioteca cliente de Route Package para Python: versión 1.0.0b1

Este paquete contiene un SDK de Python para Azure Maps Services para Route. Obtenga más información sobre Azure Maps Services aquí.

Código | fuente Documentación | de referencia de APIDocumentación del producto

Declinación de responsabilidades

Los paquetes de Python del SDK de Azure para Python 2.7 finalizaron el 01 de enero de 2022. Para más información y preguntas, consulte https://github.com/Azure/azure-sdk-for-python/issues/20691.

Introducción

Requisitos previos

Si usa la CLI de Azure, reemplace <resource-group-name> y <account-name> elija y seleccione un plan de tarifa adecuado en función de sus necesidades a través del <sku-name> parámetro . Consulte esta página para obtener más detalles.

az maps account create --resource-group <resource-group-name> --account-name <account-name> --sku <sku-name>

Instalar el paquete

Instale el SDK de Azure Maps Service Route.

pip install azure-maps-route

Creación y autenticación de MapsRouteClient

Para crear un objeto de cliente para acceder a la API de ruta de Azure Maps, necesitará un objeto de credencial. Azure Maps cliente route también admite dos maneras de autenticarse.

1. Autenticación con una credencial de clave de suscripción

Puede autenticarse con la clave de suscripción de Azure Maps. Una vez creada la clave de suscripción de Azure Maps, establezca el valor de la clave como variable de entorno: AZURE_SUBSCRIPTION_KEY. A continuación, pase un AZURE_SUBSCRIPTION_KEY como parámetro credential a una instancia 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. Autenticación con una credencial de Azure Active Directory

Puede autenticarse con credenciales de token de Azure Active Directory (AAD) mediante la biblioteca de identidades de Azure. La autenticación mediante AAD requiere una configuración inicial:

Después de la instalación, puede elegir el tipo de credencial de azure.identity que se va a usar. Por ejemplo, Se puede usar DefaultAzureCredential para autenticar al cliente:

A continuación, establezca los valores del identificador de cliente, el identificador de inquilino y el secreto de cliente de la aplicación de AAD como variables de entorno: AZURE_CLIENT_ID, , AZURE_TENANT_ID. AZURE_CLIENT_SECRET

También deberá especificar el recurso Azure Maps que va a usar especificando en clientId las opciones de cliente. El Azure Maps identificador de cliente de recursos se puede encontrar en las secciones Autenticación del recurso Azure Maps. Consulte la documentación sobre cómo encontrarlo.

from azure.maps.route import MapsRouteClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
route_client = MapsRouteClient(
    client_id="<Azure Maps Client ID>",
    credential=credential
)

Conceptos clave

La biblioteca cliente de Azure Maps Route para Python permite interactuar con cada uno de los componentes mediante el uso de un objeto de cliente dedicado.

Sincronizar clientes

MapsRouteClientes el cliente principal para desarrolladores que usa la biblioteca cliente de Azure Maps Route para Python. Una vez que haya inicializado una MapsRouteClient clase, puede explorar los métodos de este objeto de cliente para comprender las distintas características del servicio route de Azure Maps al que puede acceder.

Clientes asincrónicos

Esta biblioteca incluye una API asincrónica completa compatible con Python 3.5 y versiones posteriores. Para usarlo, primero debe instalar un transporte asincrónico, como aiohttp. Consulte la documentación de azure-core para más información.

Los clientes asincrónicos y las credenciales deben cerrarse cuando ya no sean necesarios. Estos objetos son administradores de contexto asincrónicos y definen métodos asincrónicos close .

Ejemplos

En las secciones siguientes se proporcionan varios fragmentos de código que abarcan algunas de las tareas de ruta de Azure Maps más comunes, entre las que se incluyen:

Solicitud y obtención de indicaciones de ruta

Esta solicitud de servicio devuelve una ruta entre un origen y un destino, pasando por los puntos de acceso si se especifican. La ruta tendrá en cuenta factores como el tráfico actual y las velocidades típicas de la carretera en el día solicitado de la semana y la hora del día.

from azure.maps.route import MapsRouteClient

route_directions_result = client.get_route_directions(route_points=[LatLon(47.60323, -122.33028), LatLon(53.2, -106)]);

Solicitud y obtención del intervalo de rutas

Este servicio calculará un conjunto de ubicaciones a las que se puede llegar desde el punto de origen mediante coordenadas dadas y en función del combustible, la energía, el tiempo o el presupuesto de distancia especificados.

from azure.maps.route import MapsRouteClient

route_range_result = client.get_route_range(coordinates=LatLon(47.60323, -122.33028), time_budget_in_sec=6000);

Obtener matriz de rutas

Si la solicitud de ruta de matriz se aceptó correctamente, el encabezado Location de la respuesta contiene la dirección URL para descargar los resultados de la solicitud.

Recupera el resultado de una solicitud de matriz de ruta anterior. El método devuelve un sondeo para recuperar el resultado.

from azure.maps.route import MapsRouteClient

route_matrix_result = client.begin_get_route_matrix_result(matrix_id="11111111-2222-3333-4444-555555555555");

Obtención del lote de indicaciones de ruta

Recupera el resultado de una solicitud por lotes de dirección de ruta anterior. El método devuelve un sondeo para recuperar el 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");

Solución de problemas

General

Los clientes de Route de Maps generan excepciones definidas en Azure Core.

Esta lista se puede usar como referencia para detectar excepciones iniciadas. Para obtener el código de error específico de la excepción, use el error_code atributo , es decir, exception.error_code.

Registro

Esta biblioteca usa la biblioteca de registro estándar para el registro. La información básica sobre las sesiones HTTP (direcciones URL, encabezados, etc.) se registra en el nivel INFO.

El registro detallado de nivel DEBUG, incluidos los cuerpos de solicitud/respuesta y los encabezados no aprobados, se puede habilitar en un cliente con el 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

¿Sigue teniendo problemas? Si encuentra algún error o tiene sugerencias, envíe un problema en la sección Problemas del proyecto.

Pasos siguientes

Más código de ejemplo

Empiece a trabajar con nuestros ejemplos de rutas de Maps (ejemplos de versión asincrónica).

Hay disponibles varios ejemplos de SDK de Python de Azure Maps en el repositorio de GitHub del SDK. Estos ejemplos proporcionan código de ejemplo para escenarios adicionales que se suelen encontrar al trabajar con Maps Route.

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

Notas: --pre la marca se puede agregar opcionalmente, es incluir versiones preliminares y de desarrollo para pip install. De forma predeterminada, pip solo encuentra versiones estables.

Para obtener más información, consulte Introducción a ejemplos.

Documentación adicional

Para obtener documentación más amplia sobre Azure Maps Route, consulte la documentación de Azure Maps Route en docs.microsoft.com.

Contribuciones

Este proyecto agradece las contribuciones y sugerencias. La mayoría de las contribuciones requieren que acepte un Contrato de licencia para el colaborador (CLA) que declara que tiene el derecho a concedernos y nos concede los derechos para usar su contribución. Para más detalles, visite https://cla.microsoft.com.

Cuando se envía una solicitud de incorporación de cambios, un bot de CLA determinará de forma automática si tiene que aportar un CLA y completar la PR adecuadamente (por ejemplo, la etiqueta, el comentario). Solo siga las instrucciones que le dará el bot. Solo será necesario que lo haga una vez en todos los repositorios con nuestro CLA.

Este proyecto ha adoptado el Código de conducta de Microsoft Open Source. Para más información, consulte las preguntas más frecuentes del código de conducta o póngase en contacto con opencode@microsoft.com si tiene cualquier otra pregunta o comentario.