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
시작
필수 구성 요소
- 이 패키지를 사용하려면 Python 3.7 이상이 필요합니다.
- Azure 구독 및 Azure Maps 계정.
- 배포된 Maps Services 리소스입니다. Azure Portal 또는 Azure CLI를 통해 리소스를 만들 수 있습니다.
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_KEY
credential
매개 변수로 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 설치
- 새 AAD 애플리케이션 등록
- 서비스 주체에 적합한 역할을 할당하여 Azure Maps 대한 액세스 권한을 부여합니다. 인증 관리 페이지를 참조하세요.
설치 후 사용할 자격 증명azure.identity
유형을 선택할 수 있습니다.
예를 들어 DefaultAzureCredential을 사용하여 클라이언트를 인증할 수 있습니다.
다음으로 AAD 애플리케이션의 클라이언트 ID, 테넌트 ID 및 클라이언트 암호 값을 환경 변수로 설정합니다. AZURE_CLIENT_ID
, , AZURE_TENANT_ID
AZURE_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으로 문의하세요.
Azure SDK for Python
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기