Поделиться через


клиентская библиотека пакета маршрутизации Azure Maps для Python версии 1.0.0b1

Этот пакет содержит пакет SDK python для служб Azure Maps для Route. Дополнительные сведения о службах Azure Maps см. здесь.

Исходный код | Справочная документация по | API Документация по продукту

Заявление об отказе

Поддержка пакетов Python пакета Azure SDK для Python 2.7 завершилась 1 января 2022 г. Дополнительные сведения и вопросы см. на https://github.com/Azure/azure-sdk-for-python/issues/20691

Начало работы

Предварительные требования

Если вы используете Azure CLI, замените <resource-group-name> и <account-name> по своему выбору и выберите соответствующую ценовую категорию в зависимости от ваших потребностей с помощью <sku-name> параметра . Дополнительные сведения см. на этой странице.

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

Установка пакета

Установите пакет SDK Azure Maps Service Route.

pip install azure-maps-route

Создание и проверка подлинности MapsRouteClient

Чтобы создать объект клиента для доступа к API маршрута Azure Maps, потребуется объект учетных данных. Azure Maps клиент route также поддерживает два способа проверки подлинности.

1. Проверка подлинности с помощью учетных данных ключа подписки

Вы можете пройти проверку подлинности с помощью ключа подписки Azure Maps. После создания ключа подписки Azure Maps задайте значение ключа в качестве переменной среды: AZURE_SUBSCRIPTION_KEY. Затем передайте в AZURE_SUBSCRIPTION_KEY качестве credential параметра в экземпляр 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. Проверка подлинности с помощью учетных данных Azure Active Directory

Вы можете пройти проверку подлинности с помощью учетных данных маркера Azure Active Directory (AAD) с помощью библиотеки удостоверений Azure. Для проверки подлинности с помощью AAD требуется некоторая начальная настройка:

После настройки можно выбрать тип учетных данных для azure.identity использования. Например, для проверки подлинности клиента можно использовать DefaultAzureCredential :

Затем задайте значения идентификатора клиента, идентификатора клиента и секрета клиента приложения AAD в качестве переменных среды: AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET

Кроме того, необходимо указать Azure Maps ресурс, который вы планируете использовать, указав clientId в параметрах клиента . Идентификатор клиента ресурса Azure Maps можно найти в разделах Проверка подлинности ресурса Azure Maps. Сведения о том, как найти его, см. в документации .

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

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

Основные понятия

Клиентская библиотека Azure Maps Route для Python позволяет взаимодействовать с каждым из компонентов с помощью выделенного клиентского объекта.

Синхронизация клиентов

MapsRouteClient— это основной клиент для разработчиков, использующих клиентную библиотеку Azure Maps Route для Python. После инициализации MapsRouteClient класса можно изучить методы этого клиентского объекта, чтобы понять различные функции службы маршрутизации Azure Maps, к которым можно получить доступ.

Асинхронные клиенты

Эта библиотека включает полный асинхронный API, поддерживаемый в Python 3.5 и более поздних версий. Чтобы использовать его, необходимо сначала установить асинхронный транспорт, например aiohttp. Дополнительные сведения см. в документации по azure-core .

Асинхронные клиенты и учетные данные должны быть закрыты, если они больше не нужны. Эти объекты являются диспетчерами асинхронного контекста и определяют асинхронные close методы.

Примеры

В следующих разделах представлено несколько фрагментов кода, охватывающих некоторые из наиболее распространенных задач Azure Maps маршрутизации, в том числе:

Запрос и получение маршрутов

Этот запрос службы возвращает маршрут между источником и назначением, проходящий через точки пути, если они указаны. Маршрут будет учитывать такие факторы, как текущий трафик и типичная скорость дороги в запрошенный день недели и время суток.

from azure.maps.route import MapsRouteClient

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

Запрос и получение диапазона маршрутов

Эта служба вычислит набор расположений, которые можно достичь из точки начала по заданным координатам, и на основе указанного бюджета топлива, энергии, времени или расстояния.

from azure.maps.route import MapsRouteClient

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

Получение матрицы маршрутов

Если запрос матричного маршрута был успешно принят, заголовок Location в ответе содержит URL-адрес для скачивания результатов запроса.

Извлекает результат предыдущего запроса матрицы маршрута. Метод возвращает средство опроса для получения результата.

from azure.maps.route import MapsRouteClient

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

Получение пакета направлений маршрута

Извлекает результат предыдущего пакетного запроса направления маршрута. Метод возвращает средство опроса для получения результата.

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");

Устранение неполадок

Общие сведения

Клиенты маршрута Maps вызывают исключения, определенные в Azure Core.

Этот список можно использовать для справки для перехвата вызванных исключений. Чтобы получить конкретный код ошибки исключения, используйте error_code атрибут , т. е exception.error_code. .

Ведение журнала

Эта библиотека использует стандартную библиотеку ведения журнала для ведения журнала. Основные сведения о сеансах HTTP (URL-адреса, заголовки и т. д.) регистрируются на уровне INFO.

Подробное ведение журнала на уровне DEBUG, включая тексты запросов и ответов и неотредактированные заголовки, можно включить на клиенте с помощью аргумента logging_enable :

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)

Дополнительно

По-прежнему возникают проблемы? Если вы столкнулись с ошибками или у вас есть предложения, сообщите о проблеме в разделе Проблемы проекта.

Дальнейшие действия

Больше примеров кода

Начало работы с примерами маршрутов Maps (примеры асинхронных версий).

В репозитории GitHub пакета SDK пакета SDK для Python для Azure Maps. В этих примерах приведен пример кода для дополнительных сценариев, часто встречающихся при работе с Маршрутом карт.

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

Примечания. --pre Флаг можно добавить при необходимости, он должен включать предварительные версии и версии разработки для pip install. По умолчанию pip находит только стабильные версии.

Дополнительные сведения см. в разделе Общие сведения о примерах.

Дополнительная документация

Более подробную документацию по маршруту Azure Maps см. в документации по маршруту Azure Maps на docs.microsoft.com.

Участие

На этом проекте приветствуются публикации и предложения. Для участия в большинстве процессов по разработке документации необходимо принять лицензионное соглашение участника (CLA), в котором указывается, что вы предоставляете нам права на использование ваших публикаций. Для получения подробных сведений посетите веб-страницу https://cla.microsoft.com.

При отправке запроса на включение внесенных изменений CLA-бот автоматически определит необходимость предоставления соглашения CLA и соответствующего оформления запроса на включение внесенных изменений (например, добавление метки, комментария). Просто следуйте инструкциям бота. Будет достаточно выполнить их один раз для всех репозиториев, поддерживающих соглашение CLA.

В рамках этого проекта действуют правила поведения в отношении продуктов с открытым исходным кодом Майкрософт. Дополнительные сведения см. в разделе часто задаваемых вопросов о правилах поведения или обратитесь к opencode@microsoft.com с любыми дополнительными вопросами или комментариями.