Python용 렌더링 패키지 클라이언트 라이브러리 Azure Maps - 버전 1.0.0b2

이 패키지에는 Azure Maps Services for Render용 Python SDK가 포함되어 있습니다. Azure Maps 서비스에 대한 자세한 내용은 여기를 참조하세요.

소스 코드 | API 참조 설명서 | 제품 설명서

고지 사항

Python 2.7에 대한 Azure SDK Python 패키지 지원은 2022년 1월 1일에 종료되었습니다. 자세한 내용과 질문은 다음을 참조하세요. https://github.com/Azure/azure-sdk-for-python/issues/20691

시작

필수 구성 요소

Azure CLI를 사용하는 경우 선택한 및 <account-name> 를 바꾸고 <resource-group-name> 매개 변수를 통해 요구 사항에 따라 적절한 가격 책정 계층<sku-name> 선택합니다. 자세한 내용은 이 페이지를 참조하세요.

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

패키지 설치

Azure Maps Service Render SDK를 설치합니다.

pip install azure-maps-render

MapsRenderClient 만들기 및 인증

Azure Maps Render API에 액세스할 클라이언트 개체를 만들려면 자격 증명 개체가 필요합니다. Azure Maps Render 클라이언트는 인증하는 두 가지 방법도 지원합니다.

1. 구독 키 자격 증명으로 인증

Azure Maps 구독 키로 인증할 수 있습니다. Azure Maps 구독 키가 만들어지면 키 값을 환경 변수AZURE_SUBSCRIPTION_KEY로 설정합니다. 그런 다음 을 AZURE_SUBSCRIPTION_KEYcredential 매개 변수로 AzureKeyCredential의 instance 전달합니다.

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 ID 라이브러리를 사용하여 AAD(Azure Active Directory) 토큰 자격 증명으로 인증할 수 있습니다. AAD를 사용하여 인증하려면 몇 가지 초기 설정이 필요합니다.

설치 후 사용할 자격 증명azure.identity 유형을 선택할 수 있습니다. 예를 들어 DefaultAzureCredential을 사용하여 클라이언트를 인증할 수 있습니다.

다음으로 AAD 애플리케이션의 클라이언트 ID, 테넌트 ID 및 클라이언트 암호 값을 환경 변수로 설정합니다. AZURE_CLIENT_ID, , AZURE_TENANT_IDAZURE_CLIENT_SECRET

또한 클라이언트 옵션에서 를 지정하여 사용하려는 Azure Maps 리소스를 clientId 지정해야 합니다. Azure Maps 리소스 클라이언트 ID는 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
)

주요 개념

Python용 Azure Maps Render 클라이언트 라이브러리를 사용하면 전용 클라이언트 개체를 사용하여 각 구성 요소와 상호 작용할 수 있습니다.

클라이언트 동기화

MapsRenderClient는 Python용 Azure Maps Render 클라이언트 라이브러리를 사용하는 개발자를 위한 기본 클라이언트입니다. 클래스를 MapsRenderClient 초기화한 후에는 이 클라이언트 개체의 메서드를 탐색하여 액세스할 수 있는 Azure Maps Render 서비스의 다양한 기능을 이해할 수 있습니다.

비동기 클라이언트

이 라이브러리에는 Python 3.5 이상에서 지원되는 완전한 비동기 API가 포함되어 있습니다. 이를 사용하려면 먼저 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에 통합되는 벡터 또는 래스터 형식으로 맵 타일을 반환합니다. 요청될 수 있는 몇 가지 예제 타일은 도로 타일, 실시간 Weather Radar 타일을 Azure Maps. 기본적으로 Azure Maps 웹 맵 컨트롤(Web SDK) 및 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"
)

지도 타일 집합 가져오기

이 요청은 타일 세트에 대한 메타데이터를 제공합니다.

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

문제 해결

일반

Maps Render 클라이언트는 Azure Core에 정의된 예외를 발생합니다.

이 목록은 throw된 예외를 catch하는 참조에 사용할 수 있습니다. 예외의 특정 오류 코드를 얻으려면 특성(예exception.error_code: )을 사용합니다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)

추가

여전히 문제가 있나요? 버그가 발생하거나 제안이 있는 경우 프로젝트의 문제 섹션에 문제를 제출하세요.

다음 단계

추가 샘플 코드

지도 렌더링 샘플(비동기 버전 샘플)을 시작합니다.

여러 Azure Maps Render Python SDK 샘플은 SDK의 GitHub 리포지토리에서 사용할 수 있습니다. 이러한 샘플은 지도 렌더링을 사용하는 동안 일반적으로 발생하는 추가 시나리오에 대한 예제 코드를 제공합니다.

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 Render에 대한 자세한 설명서는 docs.microsoft.com Azure Maps Render 설명서를 참조하세요.

참여

이 프로젝트에 대한 기여와 제안을 환영합니다. 대부분의 경우 기여하려면 권한을 부여하며 실제로 기여를 사용할 권한을 당사에 부여한다고 선언하는 CLA(기여자 라이선스 계약)에 동의해야 합니다. 자세한 내용은 https://cla.microsoft.com 을 참조하세요.

끌어오기 요청을 제출하면 CLA-bot은 CLA를 제공하고 PR을 적절하게 데코레이팅해야 하는지 여부를 자동으로 결정합니다(예: 레이블, 설명). 봇에서 제공하는 지침을 따르기만 하면 됩니다. 이 작업은 CLA를 사용하여 모든 리포지토리에서 한 번만 수행하면 됩니다.

이 프로젝트에는 Microsoft Open Source Code of Conduct(Microsoft 오픈 소스 준수 사항)가 적용됩니다. 자세한 내용은 Code of Conduct FAQ(규정 FAQ)를 참조하세요. 또는 추가 질문이나 의견은 opencode@microsoft.com으로 문의하세요.