구글 지도 Routes API 대체 경로 요청하기: Alternative Routes

사용자에게 가장 빠른 경로뿐 아니라 상황에 맞는 대체 경로를 제공하면 내비게이션 경험을 한층 개선할 수 있습니다. Google 지도 Routes API의 Alternative Routes 기능을 사용하면, 기본 경로 외 최대 3개의 다른 경로를 함께 받아와 선택지를 제공할 수 있습니다.

 

1. 대체 경로 개요

  • 기본적으로 Routes API는 출발지(origin)에서 도착지(destination)까지 가장 빠른 경로 하나를 반환합니다.
  • computeAlternativeRoutestrue로 설정하면 최대 3개의 대체 경로(alternative routes)를 함께 반환합니다.
  • 대체 경로는 중간 경유지(intermediate waypoints)가 없을 때만 제공되며, 경유지가 설정된 요청에서는 반환되지 않습니다.
  • 추가 계산이 필요하므로, 대체 경로 요청 시 응답 시간이 다소 늘어날 수 있습니다.

2. 요청 시 유의사항

  • 중간 경유지를 지정하면 대체 경로가 반환되지 않으므로, 대체 경로를 원하면 단일 구간 요청만 사용하세요.
  • 대체 경로는 최대 3개이지만, 상황에 따라 대체 경로가 없으면 기본 경로만 반환될 수 있습니다.
  • 응답 시간이 조금 늘어나는 점을 고려해 UI에 로딩 표시를 추가하는 것이 좋습니다.

3. curl 요청 예시

curl -X POST 'https://routes.googleapis.com/directions/v2:computeRoutes' \
  -H 'Content-Type: application/json' \
  -H 'X-Goog-Api-Key: YOUR_API_KEY' \
  -H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,routes.routeLabels' \
  --data-raw '{
    "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
  }'

4. 응답 예시

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

5. 폴리라인 포함하기

각 경로를 지도에 시각화하려면 응답에 폴리라인을 포함하세요. 필드 마스크에 routes.polyline을 추가하면 다음과 같이 인코딩된 폴리라인을 함께 받을 수 있습니다.

-H 'X-Goog-FieldMask: routes.distanceMeters,routes.duration,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"]
    }
  ]
}

 


computeAlternativeRoutes 옵션을 사용하면 사용자에게 다양한 경로 선택지를 제공할 수 있어 내비게이션 서비스의 만족도를 높일 수 있습니다. 

해시태그

#Google지도API #RoutesAPI #대체경로 #computeAlternativeRoutes #API가이드