Python용 경로 패키지 클라이언트 라이브러리 Azure Maps - 버전 1.0.0b1

이 패키지에는 Azure Maps Services for Route용 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 서비스 경로 SDK를 설치합니다.

pip install azure-maps-route

MapsRouteClient 만들기 및 인증

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

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

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

from azure.core.credentials import AzureKeyCredential
from azure.maps.route import MapsRouteClient

credential = AzureKeyCredential(os.environ.get("AZURE_SUBSCRIPTION_KEY"))

route_client = MapsRouteClient(
    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.route import MapsRouteClient
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
route_client = MapsRouteClient(
    client_id="<Azure Maps Client ID>",
    credential=credential
)

주요 개념

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

클라이언트 동기화

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

비동기 클라이언트

이 라이브러리에는 Python 3.5 이상에서 지원되는 완전한 비동기 API가 포함되어 있습니다. 이를 사용하려면 먼저 aiohttp와 같은 비동기 전송을 설치해야 합니다. 자세한 내용은 azure-core 설명서를 참조하세요.

비동기 클라이언트 및 자격 증명은 더 이상 필요하지 않은 경우 닫아야 합니다. 이러한 개체는 비동기 컨텍스트 관리자이며 비동 close 기 메서드를 정의합니다.

예제

다음 섹션에서는 다음을 포함하여 가장 일반적인 Azure Maps 경로 작업 중 일부를 다루는 몇 가지 코드 조각을 제공합니다.

경로 길 안내 요청 및 가져오기

이 서비스 요청은 지정된 경우 웨이포인트를 통과하여 원본과 대상 간의 경로를 반환합니다. 이 경로는 현재 교통량과 요청된 요일 및 하루 중 시간에 대한 일반적인 도로 속도와 같은 요인을 고려합니다.

from azure.maps.route import MapsRouteClient

route_directions_result = client.get_route_directions(route_points=[LatLon(47.60323, -122.33028), LatLon(53.2, -106)]);

경로 범위 요청 및 가져오기

이 서비스는 지정된 좌표와 지정된 연료, 에너지, 시간 또는 거리 예산에 따라 원점에서 도달할 수 있는 위치 집합을 계산합니다.

from azure.maps.route import MapsRouteClient

route_range_result = client.get_route_range(coordinates=LatLon(47.60323, -122.33028), time_budget_in_sec=6000);

경로 매트릭스 가져오기

행렬 경로 요청이 성공적으로 수락되면 응답의 위치 헤더에 요청 결과를 다운로드할 URL이 포함됩니다.

이전 경로 행렬 요청의 결과를 검색합니다. 메서드는 결과를 검색하기 위한 폴러를 반환합니다.

from azure.maps.route import MapsRouteClient

route_matrix_result = client.begin_get_route_matrix_result(matrix_id="11111111-2222-3333-4444-555555555555");

경로 방향 일괄 처리 가져오기

이전 경로 방향 일괄 처리 요청의 결과를 검색합니다. 메서드는 결과를 검색하기 위한 폴러를 반환합니다.

from azure.maps.route import MapsRouteClient

route_directions_batch_poller_result = client.begin_get_route_directions_batch_result(batch_id="11111111-2222-3333-4444-555555555555");

문제 해결

일반

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

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

로깅

이 라이브러리는 로깅에 표준 로깅 라이브러리를 사용합니다. HTTP 세션(URL, 헤더 등)에 대한 기본 정보는 INFO 수준에서 기록됩니다.

요청/응답 본문 및 수정되지 않은 헤더를 포함한 자세한 DEBUG 수준 로깅은 인수를 사용하여 클라이언트 logging_enable 에서 사용하도록 설정할 수 있습니다.

import sys
import logging
from azure.maps.route import MapsRouteClient

# Create a logger for the 'azure.maps.route' SDK
logger = logging.getLogger('azure.maps.route')
logger.setLevel(logging.DEBUG)

# Configure a console output
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

추가

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

다음 단계

추가 샘플 코드

지도 경로 샘플(비동기 버전 샘플)을 시작합니다.

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

set AZURE_SUBSCRIPTION_KEY="<RealSubscriptionKey>"

pip install azure-maps-route --pre

python samples/sample_authentication.py
python sample/sample_get_route_range.py
python samples/sample_get_route_directions.py
python samples/sample_request_route_matrix.py
python samples/async_samples/sample_authentication_async.py
python samples/async_samples/sample_get_route_range_async.py
python samples/async_samples/sample_request_route_matrix_async.py
python samples/async_samples/sample_get_route_directions_async.py

참고: --pre 플래그는 필요에 따라 추가할 수 있으며, 에 대한 시험판 및 개발 버전을 포함해야 합니다 pip install. 기본적으로 는 pip 안정적인 버전만 찾습니다.

자세한 내용은 샘플 소개를 참조하세요.

추가 설명서

Azure Maps 경로에 대한 자세한 설명서는 docs.microsoft.com 대한 Azure Maps 경로 설명서를 참조하세요.

참여

이 프로젝트에 대한 기여와 제안을 환영합니다. 대부분의 경우 기여하려면 권한을 부여하며 실제로 기여를 사용할 권한을 당사에 부여한다고 선언하는 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으로 문의하세요.