경로 요약과 경로를 따라 검색 결합

경로 요약 계산을 경로를 따라 검색과 결합할 수 있습니다. 이 경우 텍스트 검색 (신규)은 응답에서 각 장소까지의 이동 시간과 거리를 반환한 다음 각 장소에서 경로의 최종 목적지까지의 이동 시간과 거리를 반환합니다.

텍스트 검색 (신규)을 사용하여 경로를 따라 검색하는 것과 함께 경로 요약을 계산하려면 다음 단계를 따르세요.

  1. Routes API를 사용하여 응답에서 경로 폴리라인을 반환하는 경로를 계산합니다.

  2. searchAlongRouteParameters.polyline.encodedPolyline 매개변수를 사용하여 경로 폴리라인을 텍스트 검색 (신규)에 전달하여 검색 결과를 경로에 바이어스합니다. 그러면 응답에 검색 기준과 일치하고 지정된 경로 근처에 있는 장소가 포함됩니다.

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

API 탐색기를 사용하면 API와 API 옵션을 숙지할 수 있도록 라이브 요청을 할 수 있습니다.

기본적으로 텍스트 검색 (신규)은 전체 경로를 따라 검색을 실행합니다.

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food",
  "searchAlongRouteParameters": {
    "polyline": {
      "encodedPolyline": "ROUTE_POLYLINE"
    }
  }
}' \
-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'

응답에는 일치하는 장소를 포함하는 places 배열과 각 장소까지 이동하는 데 걸리는 시간과 거리를 포함하는 routingSummaries 배열의 두 배열이 포함됩니다.

{
  "places": [
    {
      "formattedAddress": "1199 El Camino Real, San Bruno, CA 94066, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Vegan Mob - Vegan BBQ and Soul Food",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "839 Kearny St, San Francisco, CA 94108, USA",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Enjoy Vegetarian",
        "languageCode": "en"
      }
    },
   
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808f87f9ede375f5:0xa37171fea1a16b28!1m0!3e0"
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ],
      "directionsUri": "https://www.google.com/maps/dir/37.42268,-122.08473/''/37.77877,-122.38781/data=!4m7!4m6!1m0!1m2!1m1!1s0x808580f4cebdb06f:0xd3af09e5742234f2!1m0!3e0"
    },
   
  ]
}

legs 배열의 각 항목에 대해 Text Search (New)는 2구간 이동 시간을 반환합니다.

  • 첫 번째 구간에는 출발지에서 장소까지의 이동 시간과 거리가 포함됩니다. 이 예에서 결과의 원점에서 첫 번째 장소까지의 시간과 거리는 285초와 1, 616미터입니다.

  • 두 번째 구간에는 장소에서 경로 목적지까지의 이동 시간과 거리가 포함됩니다. 이 예에서 시간과 거리는 2466초와 58147미터입니다.

라우팅 출발지, 이동 모드, 경로 수정자 지정

라우팅 원점, 이동 수단, 경로 수정자, 라우팅 환경설정을 지정하여 검색 및 라우팅 요약 계산을 수정할 수 있습니다. 이동 모드와 경로 수정자는 이동 옵션 지정 주제에 표시된 대로 경로를 지정하지 않고 경로 요약을 계산하는 것과 동일하게 작동합니다.

기본적으로 각 결과의 첫 번째 구간에는 폴리라인으로 정의된 원점에서 각 장소까지의 거리가 포함됩니다. 하지만 요청에서 라우팅 출처를 명시적으로 지정하여 기본값을 재정의할 수 있습니다. 지정된 경우 모든 응답의 첫 번째 구간은 지정된 라우팅 출발지로부터의 거리와 시간을 지정하여 폴리라인의 출발지를 재정의합니다.

다음 예에서는 캘리포니아주 샌마테오의 좌표를 라우팅 원점으로 지정하고, 통행료를 피하도록 지정하고, 결과 수를 5로 설정합니다.

  curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food",
    "maxResultCount": 5,
    "searchAlongRouteParameters": {
      "polyline": {
        "encodedPolyline": "ROUTE_POLYLINE"
      }
    },
    "routingParameters": {
      "origin": {
        "latitude": 37.56617,
        "longitude": -122.30870
      },
      "travelMode":"DRIVE",
      "routeModifiers": {
        "avoidTolls": 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'

다음 이미지는 경로 폴리라인, 새 출발지(하늘색 핀), 검색 결과의 장소 (녹색 핀)가 포함된 지도를 보여줍니다. 모든 결과가 경로를 따라 있지만 San Mateo를 지나 있습니다.

업데이트 출처의 검색 결과입니다.

기능을 사용해 보세요.

API 탐색기를 사용하면 API 및 API 옵션에 익숙해질 수 있도록 샘플 요청을 할 수 있습니다.

  1. 페이지 오른쪽에서 API 아이콘 api을 선택합니다.

  2. 원하는 경우 요청 매개변수를 수정합니다.

  3. 실행 버튼을 선택합니다. 대화상자에서 요청을 보낼 때 사용할 계정을 선택합니다.

  4. API 탐색기 패널에서 전체 화면 아이콘 전체 화면을 선택하여 API 탐색기 창을 펼칩니다.