клиентская библиотека пакета отрисовки 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
Начало работы
Предварительные требования
- Для использования этого пакета требуется Python 3.7 или более поздней версии.
- Подписка Azure и учетная запись Azure Maps.
- Развернутый ресурс Служб Карт. Вы можете создать ресурс с помощью портала Azure или Azure CLI.
Если вы используете 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
- Регистрация нового приложения AAD
- Предоставьте доступ к Azure Maps, назначив субъекту-службе соответствующую роль. См. страницу Управление проверкой подлинности.
После настройки можно выбрать тип учетных данных для 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 с любыми дополнительными вопросами или комментариями.
Azure SDK for Python
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по