경로 요약과 경로 검색 결합

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

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

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

  2. searchAlongRouteParameters.polyline.encodedPolyline 매개변수를 사용하여 경로 다중선 객체를 텍스트 검색 (신규)에 전달하여 검색 결과를 경로에 편향되도록 합니다. 그러면 응답에는 검색 기준과 일치하고 지정된 경로 근처에 있는 장소가 포함됩니다.

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

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

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 배열의 각 항목에 대해 텍스트 검색 (신규)은 왕복 이동 시간을 반환합니다.

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

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

라우팅 출발지, 이동 모드, 경로 수정자를 지정합니다.

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

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

다음 예에서는 라우팅 출발점을 캘리포니아 주 산마테오의 좌표로 지정하고, 통행료를 피하도록 지정하고, 결과 수를 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'

다음 이미지는 경로 다중선, 새 출발점(연한 파란색 핀), 검색 결과의 장소 (녹색 핀)가 포함된 지도를 보여줍니다. 모든 결과가 경로에 있지만 샌매테오를 지나는 것을 확인할 수 있습니다.

업데이트 소스의 검색 결과입니다.