대체 경로 가져오기

유럽 경제 지역 (EEA) 개발자

기본적으로 Routes API는 출발지에서 목적지까지의 가장 빠른 경로인 기본 경로를 반환합니다. 대체 경로를 요청하면 API는 기본 경로와 함께 최대 3개의 경로를 반환합니다. 그러면 고객은 요구사항에 가장 적합한 경로를 선택할 수 있습니다.

대체 경로 요청 시 고려사항

대체 경로를 요청하려면 다음 고려사항을 숙지하세요.

  • 응답에는 최대 3개의 대체 경로가 포함됩니다. 하지만 대체 경로가 없는 경우도 있으므로 응답에는 기본 경로만 포함됩니다.

  • 대체 경로를 계산하는 데 필요한 추가 처리로 인해 대체 경로를 요청하면 API의 응답 시간이 늘어날 수 있습니다.

대체 경로 요청 예

대체 경로를 요청하려면 computeAlternativeRoutestrue로 설정합니다. 다음 예에서는 computeRoutes 메서드 (REST) 요청에서 대체 경로를 요청하는 방법을 보여줍니다.

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude":42.340173523716736,
        "longitude":-71.05997968330408
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":42.075698891472804,
        "longitude": -72.59806562080408
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference":"TRAFFIC_AWARE",
  "computeAlternativeRoutes": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

이 예에서는 응답에 각 경로의 duration, distanceMeters,routeLabels 속성만 포함되도록 필드 마스크를 지정합니다. 그러면 고객은 이 정보를 사용하여 어떤 경로를 선택할지 결정할 수 있습니다. 자세한 내용은 반환할 정보 선택을 참고하세요.

대체 경로 응답 예

응답에서 routeLabels 배열 속성을 사용하여 각 경로에 도달하는 방법을 식별합니다.

  • 기본 경로의 경우 routeLabels 속성에 DEFAULT_ROUTE가 포함됩니다.

  • 대체 경로의 경우 routeLabels 속성에 DEFAULT_ROUTE_ALTERNATE가 포함됩니다.

이 예에서 응답에는 기본 경로와 두 개의 대체 경로가 포함됩니다. 각 경로의 durationdistanceMeters 속성 값이 서로 다릅니다.

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}

응답에 폴리라인 포함

사용자가 경로를 더 쉽게 선택할 수 있도록 각 경로의 폴리라인을 응답에 추가합니다. 그런 다음 각 폴리라인을 지도에 표시할 수 있습니다.

폴리라인을 추가하려면 필드 마스크에 routes.polyline을 포함합니다.

-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.routeLabels,routes.polyline'

그러면 응답에 각 경로의 폴리라인이 포함됩니다.

{
  "routes": [
    {
      "distanceMeters": 150322,
      "duration": "5309s",
      "polyline": {
        "encodedPolyline": "mrlaGtavpLPLBTm…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE"
      ]
    },
    {
      "distanceMeters": 157614,
      "duration": "6879s",
      "polyline": {
        "encodedPolyline": "DmEd`@e@pCo@pCs@z…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    },
    {
      "distanceMeters": 189311,
      "duration": "7376s",
      "polyline": {
        "encodedPolyline": "FVLL|Af@HPAV…PgA^qC"
      },
      "routeLabels": [
        "DEFAULT_ROUTE_ALTERNATE"
      ]
    }
   ]
}