ルーティングの概要を計算する

テキスト検索(新版)またはNearby Search(新版)を使うには レスポンスの各場所までの移動時間と距離を計算するには:

  1. リクエスト内で routingParameters.origin パラメータを渡して、 ルーティングの起点の緯度と経度の座標。このパラメータは、レスポンスで各場所までの所要時間と距離を計算するために必要です。

  2. レスポンスに以下が含まれるように、フィールド マスクに routingSummaries を含めます。 routingSummaries 配列。この配列には、ルーティングの出発地から各プレイスまでの所要時間と距離が含まれます。

テキスト検索(新版)を使用

次のリクエストでは、テキスト検索(新版)レスポンスの各場所までの所要時間と距離を計算します。

  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'

レスポンスには 2 つの JSON 配列が含まれます。places 配列には一致する 目的地までの所要時間と距離を含む routingSummaries 配列 移動手段になります

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

routingSummaries 配列内の各要素は、places 配列内のプレイスと同じ配列位置にあります。つまり、routingSummaries[0] の要素は places[0] の場所に対応します。

routingSummaries の配列長は places の配列長と同じです。場所の routingSummary が使用できない場合、配列エントリは空になります。

この例では、ルートまでの所要時間と距離が計算されるため レスポンスの legs フィールドには Leg が 1 つ含まれ、 ルーティング送信元からの durationdistanceMeters を含むオブジェクト 移動します。

{
  "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
        }
      ]
    },
    {
      "legs": [
        {
          "duration": "562s",
          "distanceMeters": 2345
        }
      ]
    },
   …
  ]
}

この例から、ルート選択からの所要時間と距離が 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 を中央に設定します。 シドニーのポイントを 1 つ指定して、そのサークルが検索結果になるようにします。次に、 原点を家の座標にルーティングする(つまり、別の場所に送る) 表示されます。リクエストは、検索結果を円にバイアスし、家の位置に基づいてルーティングの概要を計算します。

交通手段を指定する

デフォルトでは、所要時間と距離の計算は自動車用です。ただし、 検索に含まれる車両の種類やその他のオプションを制御できます。

  • routingParameters.travelMode パラメータを使用して、Pod のモードを DRIVEBICYCLEWALKTWO_WHEELERまでの移動手段。これらのオプションの詳細については、ルートで使用可能な車両タイプをご覧ください。

  • routingParameters.routingPreference プロパティを使用して、ルーティング設定オプションを TRAFFIC_UNAWARE(デフォルト)、TRAFFIC_AWARE、または TRAFFIC_AWARE_OPTIMAL に設定します。各オプションのデータ品質とレイテンシは異なります。詳細については、トラフィックを含めるかどうかと含めるかどうかを指定する
  • routingParameters.routeModifiers プロパティを使用して、以下を指定します。 avoidTollsavoidHighwaysavoidFerriesavoidIndoor。詳細情報 詳細については、ルートの対象物を指定する 避ける

次の例では、移動手段を 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'