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


клиентская библиотека пакета отрисовки Azure Maps для Python — версия 1.0.0b2

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

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

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

Поддержка пакетов Python для Пакета Sdk Azure для 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 Render.

pip install azure-maps-render

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

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

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

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

credential = DefaultAzureCredential()
render_client = MapsRenderClient(
    client_id="<Azure Maps Client ID>",
    credential=credential
)

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

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

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

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

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

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

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

Примеры

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

Получение атрибуции карт

Этот запрос позволяет пользователям запрашивать сведения об авторских правах на карту для раздела набора плиток.

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

Получить плитку "Карты"

Этот запрос возвращает плитки карты в векторных или растровых форматах, которые обычно интегрируются в элемент управления картой или пакет SDK. Некоторые примеры плиток, которые можно запросить, — это Azure Maps дорожные плитки, плитки Weather Radar в режиме реального времени. По умолчанию Azure Maps использует векторные плитки для управления веб-картой (веб-пакет SDK) и пакет 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"
)

Получение набора плиток "Карты"

Этот запрос предоставит метаданные для набора плиток.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_map_tileset(tileset_id=TilesetID.MICROSOFT_BASE)

Получение статического изображения карт

Этот запрос предоставит службе статических изображений отрисовку определяемого пользователем прямоугольного изображения, содержащего раздел карты, используя уровень масштабирования от 0 до 20. Служба статических изображений отрисовывает определенное пользователем прямоугольное изображение, содержащее раздел карты, используя уровень масштаба от 0 до 20. А также сохраните результат в файл в формате 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()

Этот запрос будет предоставлять сведения об авторских правах для службы отрисовки плиток.

from azure.maps.render import MapsRenderClient

result = maps_render_client.get_copyright_for_world()

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

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

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

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

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

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

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

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)

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

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

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

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

Начните работу с примерами отображения карт (примеры асинхронной версии).

В репозитории GitHub пакета SDK пакета SDK Azure Maps отрисовки python. Эти примеры предоставляют пример кода для дополнительных сценариев, которые часто встречаются при работе с картой Render

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

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

Дополнительные сведения см. в разделе Введение в примеры.

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

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

Участие

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

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

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