ルーティングの概要を計算する
テキスト検索(新版)またはNearby Search(新版)を使うには レスポンスの各場所までの移動時間と距離を計算するには:
-
リクエスト内で
routingParameters.origin
パラメータを渡して、 ルーティングの起点の緯度と経度の座標。このパラメータは、レスポンスで各場所までの所要時間と距離を計算するために必要です。 -
レスポンスに以下が含まれるように、フィールド マスクに
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 つ含まれ、
ルーティング送信元からの duration
と distanceMeters
を含むオブジェクト
移動します。
{ "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 を使用する
この例では、各地の移動時間と距離を計算し、 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 のモードをDRIVE
、BICYCLE
、WALK
、TWO_WHEELER
までの移動手段。これらのオプションの詳細については、ルートで使用可能な車両タイプをご覧ください。 -
routingParameters.routingPreference
プロパティを使用して、ルーティング設定オプションをTRAFFIC_UNAWARE
(デフォルト)、TRAFFIC_AWARE
、またはTRAFFIC_AWARE_OPTIMAL
に設定します。各オプションのデータ品質とレイテンシは異なります。詳細については、トラフィックを含めるかどうかと含めるかどうかを指定する 。 -
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'