Azure Maps biblioteca cliente de Render Package para Python: versión 1.0.0b2
Este paquete contiene un SDK de Python para Azure Maps Services para Render. Obtenga más información sobre Azure Maps Services aquí.
Código | fuenteDocumentació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
- Se requiere Python 3.7 o posterior para usar este paquete.
- Una suscripción de Azure y una cuenta de Azure Maps.
- Un recurso de Maps Services implementado. Puede crear el recurso a través de Azure Portal o la CLI de Azure.
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 Render.
pip install azure-maps-render
Creación y autenticación de MapsRenderClient
Para crear un objeto de cliente para acceder a la API de representación de Azure Maps, necesitará un objeto de credencial. Azure Maps cliente render 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.render import MapsRenderClient
credential = AzureKeyCredential(os.environ.get("AZURE_SUBSCRIPTION_KEY"))
render_client = MapsRenderClient(
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:
- Instalación de azure-identity
- Registro de una nueva aplicación de AAD
- Conceda acceso a Azure Maps mediante la asignación del rol adecuado a la entidad de servicio. Consulte la página Administrar autenticación.
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.render import MapsRenderClient
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()
render_client = MapsRenderClient(
client_id="<Azure Maps Client ID>",
credential=credential
)
Conceptos clave
La biblioteca cliente de representación de Azure Maps para Python le permite interactuar con cada uno de los componentes mediante el uso de un objeto de cliente dedicado.
Sincronizar clientes
MapsRenderClient
es el cliente principal para los desarrolladores que usan la biblioteca cliente de representación de Azure Maps para Python.
Una vez que haya inicializado una MapsRenderClient
clase, puede explorar los métodos de este objeto de cliente para comprender las diferentes características del servicio render 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 representación de Azure Maps más comunes, entre las que se incluyen:
- Obtener atribución de mapas
- Obtener imagen estática de mapas
- Obtener mosaico de mapas
- Obtener conjunto de iconos de mapas
- Obtener los mapas copyright for World
Obtener atribución de mapas
Esta solicitud permite a los usuarios solicitar información de atribución de derechos de autor del mapa para una sección de un conjunto de iconos.
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
)
)
Obtener mosaico de mapas
Esta solicitud devolverá iconos de mapa en formatos vectoriales o ráster que normalmente se integrarán en un control de mapa o SDK. Algunos iconos de ejemplo que se pueden solicitar son Azure Maps mosaicos de carretera, mosaicos Weather Radar en tiempo real. De forma predeterminada, Azure Maps usa iconos vectoriales para su control de mapa web (SDK web) y Android SDK.
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"
)
Obtener conjunto de iconos de mapas
Esta solicitud proporcionará metadatos para un conjunto de iconos.
from azure.maps.render import MapsRenderClient
result = maps_render_client.get_map_tileset(tileset_id=TilesetID.MICROSOFT_BASE)
Obtener imagen estática de mapas
Esta solicitud proporcionará el servicio de imagen estática representa una imagen rectangular definida por el usuario que contiene una sección de mapa mediante un nivel de zoom de 0 a 20. El servicio de imagen estática representa una imagen rectangular definida por el usuario que contiene una sección de mapa mediante un nivel de zoom de 0 a 20. Además, guarde el resultado en el archivo como 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()
Obtener los mapas copyright for World
Esta solicitud proporcionará información de copyright para el servicio Render Tile.
from azure.maps.render import MapsRenderClient
result = maps_render_client.get_copyright_for_world()
Solución de problemas
General
Los clientes render 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.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)
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 los ejemplos de representación de Mapas (ejemplos de versiones asincrónicas).
Hay varias Azure Maps ejemplos del SDK de Python de renderización disponibles en el repositorio de GitHub del SDK. Estos ejemplos proporcionan código de ejemplo para escenarios adicionales que se encuentran normalmente al trabajar con la representación de Maps.
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
Notas:
--pre
la marca se puede agregar opcionalmente, es incluir versiones preliminares y de desarrollo parapip 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 Representación, consulte la documentación Azure Maps Representación 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.
Azure SDK for Python