라우팅 요약 계산

텍스트 검색 (신규) 또는 주변 지역 검색 (신규)을 사용하여 응답에서 각 장소까지의 이동 시간과 거리를 계산하려면 다음 단계를 따르세요.

  1. 요청에 routingParameters.origin 매개변수를 전달하여 라우팅 출발점의 위도 및 경도 좌표를 지정합니다. 이 매개변수는 응답에서 각 장소까지의 시간과 거리를 계산하는 데 필요합니다.

  2. 응답에 routingSummaries 배열이 포함되도록 필드 마스크에 routingSummaries를 포함합니다. 이 배열에는 응답의 경로 출발지에서 각 장소까지의 이동 시간과 거리가 포함됩니다.

API 탐색기를 사용하면 API 및 API 옵션에 익숙해질 수 있도록 실시간으로 요청할 수 있습니다.

사용해 보기

텍스트 검색 (신규) 사용하기

다음 요청에서는 텍스트 검색 (신규) 응답에서 각 장소까지의 이동 시간과 거리를 계산합니다.

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'

응답에는 두 개의 JSON 배열이 포함됩니다. places 배열에는 일치하는 장소가 포함되고 routingSummaries 배열에는 각 장소까지의 이동 시간과 거리가 포함됩니다.

{
  "places": [
    {
      object (Place)
    }
  ]
  "routingSummaries": [
    {
      object (RoutingSummary)
    }
}

routingSummaries 배열의 각 요소는 places 배열의 장소와 상응하는 배열 위치에 있습니다. 즉, routingSummaries[0]의 요소는 places[0]의 장소에 해당합니다.

routingSummaries의 배열 길이는 places의 배열 길이와 같습니다. 장소의 routingSummary를 사용할 수 없는 경우 배열 항목은 비어 있습니다.

이 예에서는 라우팅 출발지에서 각 장소까지의 소요 시간과 거리를 계산하므로 응답의 routingSummaries.legs 필드에는 라우팅 출발지에서 장소까지의 durationdistanceMeters가 포함된 단일 Leg 객체가 포함됩니다.

{
  "places": [
    {
      "formattedAddress": "1, Westfield Sydney Central Plaza, 450 George St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Gözleme King Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    …
  ]
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "597s",
          "distanceMeters": 2607
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3fa97cd745:0x6aecf365bf497c08!3e0"
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/-33.8688,151.1957362/''/data=!4m6!4m5!1m0!1m2!1m1!1s0x6b12ae3da97f60c1:0x845f3273bd764f6c!3e0"
    },
   …
  ]
}

이 예에서 라우팅 출발지에서 결과의 첫 번째 장소까지의 시간과 거리는 597초 및 2, 607미터임을 알 수 있습니다.

이 예에서는 Nearby Search 응답에서 각 장소까지의 이동 시간과 거리를 계산합니다. 이 예에서는 호주 시드니의 레스토랑을 검색하고 위치 제한 및 경로 출발지를 동일한 위도 및 경도 좌표로 설정합니다.

  curl -X POST -d '{
    "includedTypes": ["restaurant"],
    "maxResultCount": 10,
    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": -33.8688,
          "longitude": 151.1957362},
        "radius": 500.0
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": -33.8688,
        "longitude": 151.1957362
      }
    }
  }' \
  -H 'Content-Type: application/json' -H "X-Goog-Api-Key:API_KEY" \
  -H "X-Goog-FieldMask: places.displayName,routingSummaries" \
  https://places.googleapis.com/v1/places:searchNearby

locationRestriction와 라우팅 출발점에 동일한 좌표를 사용할 필요는 없습니다. 예를 들어 locationRestriction를 시드니의 중심점으로 설정하여 검색 결과를 해당 원으로 편향시킬 수 있습니다. 하지만 다음으로 경로 출발점을 집의 좌표로 설정합니다. 즉, 검색 원의 다른 위치로 설정합니다. 그러면 요청이 검색 결과를 원 안에 편향시키고 집의 위치를 기반으로 경로 요약을 계산합니다.

이동 옵션 지정

기본적으로 시간 및 거리 계산은 자동차를 기준으로 합니다. 하지만 검색에서 차량 유형과 기타 옵션을 관리할 수 있습니다.

  • routingParameters.travelMode 매개변수를 사용하여 전송 모드를 DRIVE, BICYCLE, WALK 또는 TWO_WHEELER로 설정합니다. 이러한 옵션에 관한 자세한 내용은 경로에 사용할 수 있는 차량 유형을 참고하세요.

  • routingParameters.routingPreference 속성을 사용하여 라우팅 환경설정 옵션을 TRAFFIC_UNAWARE (기본값), TRAFFIC_AWARE 또는 TRAFFIC_AWARE_OPTIMAL로 설정합니다. 각 옵션에는 데이터 품질과 지연 시간이 다릅니다. 자세한 내용은 트래픽 데이터를 포함하는 방법 및 여부 지정을 참고하세요.

    routingParameters.routingPreference 속성은 미리보기 (GA 이전) directionsUri 필드에 포함된 경로에 영향을 미칩니다. Google 지도에서 링크를 열면 교통 옵션이 표시되기 때문입니다.

  • routingParameters.routeModifiers 속성을 사용하여 avoidTolls, avoidHighways, avoidFerries, avoidIndoor에 지정합니다. 이러한 옵션에 관한 자세한 내용은 경로 피할 지형지물 지정을 참고하세요.

다음 예에서는 이동 모드를 DRIVE로 지정하고 고속도로를 피하도록 지정합니다.

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "routingParameters": {
    "origin": {
      "latitude": -33.8688,
      "longitude": 151.1957362
    },
    "travelMode":"DRIVE",
    "routeModifiers": {
      "avoidHighways": true
    }
  }
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel,routingSummaries' \
'https://places.googleapis.com/v1/places:searchText'