ルート概要とルート沿いの検索を組み合わせる

ルーティングの概要の計算と経路沿いの検索を組み合わせることができます。この場合、テキスト検索(新版)は、各場所までの所要時間と距離をレスポンスで返します。次に、各場所からルートの最終目的地までの距離を返します。

テキスト検索(新版)を使用して、検索とともにルーティング サマリーを計算するには 経路上:

  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 配列の 2 つの配列が含まれます。 目的地までの所要時間と距離を含む routingSummaries 配列 移動手段になります

{
  "places": [
    {
      "formattedAddress": "1477 Plymouth St suite c, Mountain View, CA 94043, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Zareen's",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "2464 W El Camino Real C, Mountain View, CA 94040, USA",
      "priceLevel": "PRICE_LEVEL_INEXPENSIVE",
      "displayName": {
        "text": "Veggie Garden",
        "languageCode": "en"
      }
    },
   …
],
  "routingSummaries": [
    {
      "legs": [
        {
          "duration": "285s",
          "distanceMeters": 1616
        },
        {
          "duration": "2466s",
          "distanceMeters": 58147
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "696s",
          "distanceMeters": 4704
        },
        {
          "duration": "2787s",
          "distanceMeters": 58901
        }
      ]
    },
   …
  ]
}

legs 配列内の各エントリについて、テキスト検索(新規)は2 区間の所要時間を返します。

  • 1 つ目の区間には、出発地から目的地までの移動時間と距離が含まれています できます。この例では、出発地から検索結果の最初の場所までの所要時間と距離は 285 秒と 1,616 メートルです。

  • 2 つ目の区間には、その場所から目的地までの移動時間と距離が入力されています。 ルートの宛先を指定しますこの例では、所要時間と距離は 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'

次の画像は、ルートのポリライン、新しい出発地(水色のピン)、検索結果の場所(緑色のピン)を含む地図を示しています。すべての結果がルート上にあるものの、サン マテオを過ぎていることに注目してください。

更新元の検索結果。