다음을 통해 공유


Route - Get Route Matrix

출발지 및 대상 목록에서 가능한 모든 쌍의 이동 시간과 거리를 보여 주는 경로 행렬을 가져오는 데 사용합니다.

Get Route Matrix API는 원본 및 대상 목록에서 가능한 모든 쌍의 이동 시간과 거리를 계산하는 HTTP GET 요청입니다. 자세한 경로 지침을 제공하는 경로 방향 가져오기 API와 달리, 이 API는 각 출발지에서 모든 목적지로 라우팅하는 비용(이동 시간 및 거리)을 제공하여 효율성에 중점을 둡니다. 자세한 내용은 Azure Maps Route 서비스대한 모범 사례를 참조하세요.

지정된 모든 원본에 대해 서비스는 해당 원본에서 지정된 모든 대상으로 라우팅하는 비용을 계산합니다. 원본 집합 및 대상 집합은 테이블의 열 및 행 머리글로 간주할 수 있으며 테이블의 각 셀에는 원본에서 해당 셀의 대상으로 라우팅하는 비용이 포함됩니다. 예를 들어 음식 배달 회사에는 20명의 운전자가 있으며 식당에서 배달을 받을 가장 가까운 드라이버를 찾아야 한다고 가정해 보겠습니다. 이 사용 사례를 해결하기 위해 행렬 경로 API를 호출할 수 있습니다.

각 경로에 대해 이동 시간 및 거리가 반환됩니다. 계산 비용을 사용하여 경로 방향 API를 사용하여 계산할 자세한 경로를 결정할 수 있습니다.

비동기 요청에 대한 행렬의 최대 크기는 700 동기화 요청의 경우 100(원본 수에 대상 수를 곱한 값)입니다.

동기 경로 매트릭스 요청 제출

시나리오에 동기 요청이 필요하고 행렬의 최대 크기가 100보다 작거나 같은 경우 동기 요청을 수행할 수 있습니다. 이 API에 대한 행렬의 최대 크기는 100(원본 수에 대상 수를 곱한 값)입니다. 이러한 제약 조건을 염두에 두고 가능한 행렬 차원의 예는 10x10, 6x8, 9x8입니다(정사각형일 필요는 없음).

GET https://atlas.microsoft.com/route/matrix/sync/json?api-version=1.0&subscription-key={subscription-key}

비동기 경로 매트릭스 요청 제출

비동기 API는 비교적 복잡한 라우팅 요청의 큰 볼륨을 처리하는 데 적합합니다. 비동기 요청을 사용하여 요청을 수행하면 기본적으로 서비스는 응답 헤더의 위치 필드에 있는 리디렉션 URL을 따라 202 응답 코드를 반환합니다. 이 URL은 응답 데이터 또는 오류 정보를 사용할 수 있을 때까지 주기적으로 확인해야 합니다. 요청의 waitForResults 매개 변수가 true로 설정된 경우 요청이 120초 미만으로 완료되면 사용자에게 200 응답이 표시됩니다.

이 API에 대한 행렬의 최대 크기는 700(원본 수에 대상 수를 곱한 값)입니다. 이러한 제약 조건을 염두에 두고 가능한 행렬 차원의 예는 50x10, 10x10, 28x25입니다. 10x70(정사각형일 필요는 없음).

비동기 응답은 24시간 동안 저장됩니다. 리디렉션 URL은 만료 기간 이후에 사용되는 경우 404 응답을 반환합니다.

GET https://atlas.microsoft.com/route/matrix/json?api-version=1.0&subscription-key={subscription-key}

다음은 일반적인 비동기 작업 시퀀스입니다.

  1. 클라이언트가 Azure Maps에 Route Matrix GET 요청을 보냅니다.

  2. 서버는 다음 중 하나로 응답합니다.

    HTTP 202 Accepted - 경로 매트릭스 요청이 수락되었습니다.

    HTTP Error - Route Matrix 요청을 처리하는 동안 오류가 발생했습니다. 400 잘못된 요청 또는 기타 오류 상태 코드일 수 있습니다.

  3. 행렬 경로 요청이 성공적으로 수락된 경우 응답의 위치 헤더에는 요청 결과를 다운로드할 URL이 포함됩니다. 이 상태 URI는 다음과 같습니다.

  GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}
  1. 클라이언트가 3단계에서 가져온 다운로드 URL에 대해 GET 요청을 실행하여 결과를 다운로드합니다.

동기화 결과 다운로드

경로 매트릭스 동기화 API에 대한 GET 요청을 수행하면 서비스는 성공적인 요청 및 응답 배열에 대해 200개의 응답 코드를 반환합니다. 응답 본문에는 데이터가 포함되며 나중에 결과를 검색할 가능성이 없습니다.

비동기 결과 다운로드

요청이 202 Accepted 응답을 발급하면 비동기 파이프라인을 사용하여 요청이 처리됩니다. 응답의 위치 헤더에서 비동기 요청의 진행률을 확인하는 URL이 제공됩니다. 이 상태 URI는 다음과 같습니다.

  GET https://atlas.microsoft.com/route/matrix/{matrixId}?api-version=1.0?subscription-key={subscription-key}

위치 헤더에서 제공하는 URL은 GET 요청이 실행될 때 다음 응답을 반환합니다.

HTTP 202 Accepted - 행렬 요청이 수락되었지만 여전히 처리 중입니다. 잠시 후 다시 시도하세요.

HTTP 200 OK - 행렬 요청이 성공적으로 처리되었습니다. 응답 본문에는 모든 결과가 포함됩니다.

GET https://atlas.microsoft.com/route/matrix/{format}?api-version=1.0

URI 매개 변수

Name In(다음 안에) 필수 형식 Description
format
path True

string

행렬 경로 요청이 성공적으로 수락된 후 받은 행렬 ID입니다.

api-version
query True

string

Azure Maps API의 버전 번호입니다.

요청 헤더

Name 필수 형식 Description
x-ms-client-id

string

Microsoft Entra ID 보안 모델과 함께 사용할 계정을 지정합니다. Azure Maps 계정에 대한 고유 ID를 나타내며 Azure Maps 관리 평면 계정 API에서 검색할 수 있습니다. Azure Maps에서 Microsoft Entra ID 보안을 사용하려면 지침에 대한 다음 문서를 참조하세요.

응답

Name 형식 Description
200 OK

RouteMatrixResult

행렬 요청이 성공적으로 처리되었습니다. 응답 본문에는 모든 결과가 포함됩니다.

202 Accepted

비동기 요청에 대해서만 지원됩니다. 수락된 요청: 처리를 위해 요청이 수락되었습니다. 위치 헤더의 URL을 사용하여 결과를 다시 시도하거나 액세스하세요.

헤더

Location: string

Other Status Codes

ErrorResponse

예기치 않은 오류가 발생했습니다.

보안

AADToken

다음은 Microsoft Entra OAuth 2.0 흐름에 . Azure 역할 기반 액세스 컨트롤과 쌍을 이루는 경우 Azure Maps REST API에 대한 액세스를 제어하는 데 사용할 수 있습니다. Azure 역할 기반 액세스 제어는 하나 이상의 Azure Maps 리소스 계정 또는 하위 리소스에 대한 액세스를 지정하는 데 사용됩니다. 모든 사용자, 그룹 또는 서비스 주체는 Azure Maps REST API에 대한 하나 이상의 권한으로 구성된 기본 제공 역할 또는 사용자 지정 역할을 통해 액세스 권한을 부여할 수 있습니다.

시나리오를 구현하려면인증 개념을 확인하는 것이 좋습니다. 요약하자면, 이 보안 정의는 특정 API 및 범위에 대한 액세스 제어가 가능한 개체를 통해 애플리케이션을 모델링하기 위한 솔루션을 제공합니다.

노트

  • 이 보안 정의 x-ms-client-id 헤더를 사용하여 애플리케이션이 액세스를 요청하는 Azure Maps 리소스를 나타내야 합니다. 이는 Maps 관리 API가져올 수 있습니다.

Authorization URL Azure 퍼블릭 클라우드 인스턴스와 관련이 있습니다. 소버린 클라우드에는 고유한 권한 부여 URL 및 Microsoft Entra ID 구성이 있습니다. * Azure 역할 기반 액세스 제어는 Azure Portal, PowerShell, CLI, Azure SDK 또는 REST API를 통해 Azure 관리 평면에서 구성됩니다. * Azure Maps Web SDK 사용하면 여러 사용 사례에 대한 애플리케이션의 구성 기반 설정을 사용할 수 있습니다.

형식: oauth2
Flow: implicit
권한 부여 URL: https://login.microsoftonline.com/common/oauth2/authorize

범위

Name Description
https://atlas.microsoft.com/.default https://atlas.microsoft.com/.default

subscription-key

Azure Portal에서 Azure Maps 계정 만들거나 PowerShell, CLI, Azure SDK 또는 REST API를 사용할 때 프로비전되는 공유 키입니다.

이 키를 사용하면 모든 애플리케이션이 모든 REST API에 액세스할 수 있습니다. 즉, 이 키를 발급된 계정에서 마스터 키로 사용할 수 있습니다.

공개적으로 노출된 애플리케이션의 경우 키를 안전하게 저장할 수 있도록 기밀 클라이언트 애플리케이션 접근 방식을 사용하여 Azure Maps REST API에 액세스하는 것이 좋습니다.

형식: apiKey
In(다음 안에): query

SAS Token

공유 액세스 서명 토큰은 Azure Portal, PowerShell, CLI, Azure SDK 또는 REST API를 통해 Azure 관리 평면을 통해 Azure Maps 리소스의 SAS 나열 작업에서 만들어집니다.

이 토큰을 사용하면 모든 애플리케이션이 Azure 역할 기반 액세스 제어를 사용하여 액세스하고 특정 토큰에 사용할 만료, 속도 및 지역에 대한 세분화된 제어 권한을 부여받습니다. 즉, SAS 토큰을 사용하여 애플리케이션이 공유 키보다 더 보안이 유지되는 방식으로 액세스를 제어할 수 있습니다.

공개적으로 노출된 애플리케이션의 경우 렌더링 남용을 제한하고 정기적으로 SAS 토큰을 갱신하도록 맵 계정 리소스 허용된 원본의 특정 목록을 구성하는 것이 좋습니다.

형식: apiKey
In(다음 안에): header

예제

Successfully retrieve the status for a route matrix request

샘플 요청

GET https://atlas.microsoft.com/route/matrix/11111111-2222-3333-4444-555555555555?api-version=1.0

샘플 응답

{
  "formatVersion": "0.0.1",
  "matrix": [
    [
      {
        "statusCode": 200,
        "response": {
          "routeSummary": {
            "lengthInMeters": 495,
            "travelTimeInSeconds": 134,
            "trafficDelayInSeconds": 0,
            "departureTime": "2018-07-27T22:55:29+00:00",
            "arrivalTime": "2018-07-27T22:57:43+00:00"
          }
        }
      },
      {
        "statusCode": 200,
        "response": {
          "routeSummary": {
            "lengthInMeters": 647651,
            "travelTimeInSeconds": 26835,
            "trafficDelayInSeconds": 489,
            "departureTime": "2018-07-27T22:55:29+00:00",
            "arrivalTime": "2018-07-28T06:22:44+00:00"
          }
        }
      }
    ],
    [
      {
        "statusCode": 200,
        "response": {
          "routeSummary": {
            "lengthInMeters": 338,
            "travelTimeInSeconds": 104,
            "trafficDelayInSeconds": 0,
            "departureTime": "2018-07-27T22:55:29+00:00",
            "arrivalTime": "2018-07-27T22:57:13+00:00"
          }
        }
      },
      {
        "statusCode": 200,
        "response": {
          "routeSummary": {
            "lengthInMeters": 647494,
            "travelTimeInSeconds": 26763,
            "trafficDelayInSeconds": 469,
            "departureTime": "2018-07-27T22:55:29+00:00",
            "arrivalTime": "2018-07-28T06:21:32+00:00"
          }
        }
      }
    ]
  ],
  "summary": {
    "successfulRoutes": 4,
    "totalRoutes": 4
  }
}

정의

Name Description
ErrorAdditionalInfo

리소스 관리 오류 추가 정보입니다.

ErrorDetail

오류 세부 정보입니다.

ErrorResponse

오류 응답

RouteLegSummary

경로 섹션에 대한 요약 개체입니다.

RouteMatrix

행렬 결과 개체

RouteMatrixResult

이 개체는 성공적인 Route Matrix 호출에서 반환됩니다. 예를 들어 2개의 원본과 3개의 대상이 제공되면 각각 3개의 요소가 있는 2개의 배열이 있습니다. 각 요소의 콘텐츠는 쿼리에 제공된 옵션에 따라 달라집니다.

RouteMatrixResultResponse

입력 행렬에 있는 현재 셀의 응답 개체입니다.

RouteMatrixSummary

요약 개체

ErrorAdditionalInfo

리소스 관리 오류 추가 정보입니다.

Name 형식 Description
info

object

추가 정보입니다.

type

string

추가 정보 유형입니다.

ErrorDetail

오류 세부 정보입니다.

Name 형식 Description
additionalInfo

ErrorAdditionalInfo[]

오류 추가 정보입니다.

code

string

오류 코드입니다.

details

ErrorDetail[]

오류 세부 정보입니다.

message

string

오류 메시지입니다.

target

string

오류 대상입니다.

ErrorResponse

오류 응답

Name 형식 Description
error

ErrorDetail

오류 개체입니다.

RouteLegSummary

경로 섹션에 대한 요약 개체입니다.

Name 형식 Description
arrivalTime

string

경로 또는 다리의 예상 도착 시간입니다. 시간은 UTC입니다.

batteryConsumptionInkWh

number

전기 소비 모델을 사용하는 킬로와트시(kWh)의 예상 전기 에너지 소비량입니다. vehicleEngineType이 전기로 설정되고 constantSpeedConsumptionInkWhPerHundredkm가 지정된 경우 포함됩니다. batteryConsumptionInkWh의 값은 회복된 전기 에너지를 포함하므로 음수일 수 있습니다(에너지 확보를 나타낸다). maxChargeInkWh와 currentChargeInkWh를 모두 지정하면 배터리 충전 수준이 maxChargeInkWh를 초과하지 않도록 회수가 제한됩니다. maxChargeInkWh와 currentChargeInkWh를 모두 지정하지 않으면 소비 계산에서 제한되지 않은 회복이 가정됩니다.

departureTime

string

경로 또는 다리의 예상 출발 시간입니다. 시간은 UTC입니다.

fuelConsumptionInLiters

number

연소 소비 모델을 사용하는 리터의 예상 연료 소비량입니다. vehicleEngineType이 연소 설정되고 constantSpeedConsumptionInLitersPerHundredkm가 지정된 경우 포함됩니다. 값은 음수가 아닌 값입니다.

historicTrafficTravelTimeInSeconds

integer

시간 종속 기록 트래픽 데이터를 사용하여 계산된 예상 이동 시간입니다. computeTravelTimeFor = 모두 쿼리에 사용되는 경우에만 포함됩니다.

lengthInMeters

integer

Length In Meters 속성

liveTrafficIncidentsTravelTimeInSeconds

integer

실시간 속도 데이터를 사용하여 계산된 예상 이동 시간입니다. computeTravelTimeFor = 모두 쿼리에 사용되는 경우에만 포함됩니다.

noTrafficTravelTimeInSeconds

integer

교통 상황(예: 혼잡)으로 인해 경로에 지연이 없는 것처럼 계산된 예상 이동 시간입니다. computeTravelTimeFor = 모두 쿼리에 사용되는 경우에만 포함됩니다.

trafficDelayInSeconds

integer

트래픽 정보에 따른 실시간 인시던트로 인한 예상 지연 시간(초)입니다. 향후 출발 시간으로 계획된 경로의 경우 지연은 항상 0입니다. 다양한 유형의 트래픽 정보를 사용하여 추가 이동 시간을 반환하려면 computeTravelTimeFor=all 매개 변수를 추가해야 합니다.

travelTimeInSeconds

integer

실시간 트래픽으로 인한 지연을 포함하는 예상 이동 시간(초) 속성입니다. traffic=false travelTimeInSeconds에도 트래픽으로 인한 지연이 계속 포함됩니다. DepartAt가 향후인 경우 이동 시간은 시간 종속 기록 트래픽 데이터를 사용하여 계산됩니다.

RouteMatrix

행렬 결과 개체

Name 형식 Description
response

RouteMatrixResultResponse

입력 행렬에 있는 현재 셀의 응답 개체입니다.

statusCode

integer

입력 행렬의 현재 셀에 대한 StatusCode 속성입니다.

RouteMatrixResult

이 개체는 성공적인 Route Matrix 호출에서 반환됩니다. 예를 들어 2개의 원본과 3개의 대상이 제공되면 각각 3개의 요소가 있는 2개의 배열이 있습니다. 각 요소의 콘텐츠는 쿼리에 제공된 옵션에 따라 달라집니다.

Name 형식 Description
formatVersion

string

Format Version 속성

matrix

RouteMatrix[]

경로 요약의 2차원 배열로 결과를 가져옵니다.

summary

RouteMatrixSummary

요약 개체

RouteMatrixResultResponse

입력 행렬에 있는 현재 셀의 응답 개체입니다.

Name 형식 Description
routeSummary

RouteLegSummary

경로 섹션에 대한 요약 개체입니다.

RouteMatrixSummary

요약 개체

Name 형식 Description
successfulRoutes

integer

응답에서 성공한 경로 수입니다.

totalRoutes

integer

요청된 총 경로 수입니다. 입력 행렬의 셀 수입니다.