ルート沿いの検索の概要

ルート沿いの検索機能は、次の Places(新版)API で使用できます。

  • テキスト検索(新版)のみ: 事前に定義された旅程ルート沿いの場所を検索します。
  • テキスト検索(新版)と Nearby Search(新版): 指定されたルートの出発地から検索結果の各場所までのルートの概要を計算します。
  • テキスト検索(新版)のみ: 事前に定義された旅程ルート沿いの各場所のルートの概要を計算します。

ルート沿いを検索する

Routes API を使用して、2 つの場所間の旅程ルート を計算します。Routes API は、自動車、自転車、二輪車、公共交通機関、徒歩のルートを計算できます。

テキスト検索(新版)では、この計算されたルートを使用して ルート沿いの検索を実行できます。このオプションを使用すると、Routes API から事前に計算されたルートをテキスト検索(新版)リクエストに渡すことができます。レスポンスには、検索条件に一致し、指定されたルートの近くにある場所が含まれます。

ルート沿いの検索は、locationRestriction リクエスト オプションまたは locationBias リクエスト オプションを使用して検索結果を優先する場合と似ています。locationRestriction はビューポートの境界内にある検索結果を返しますが、locationBias はビューポート外の検索結果を返すことがあります。ただし、locationBias オプションと locationRestriction オプションでは、検索結果を優先する地域を指定できますが、テキスト検索のルート沿いの検索機能では、ルートの出発地からルートの目的地までの迂回時間が最小限の場所を含めるように検索結果を優先することもできます。ポリラインと組み合わせて locationBias または locationRestriction を使用して、検索結果を優先できます。

たとえば、Routes API で計算された、出発地(Routes API では地点 と呼ばれます)から目的地までのルートについて考えてみましょう。

出発地ウェイポイントから目的地までのルートと検索結果。

ルート沿いを検索すると、出発地から目的地までの迂回時間が最小限のルート近くの場所が優先的に返されます。この例では、ポイント A、B、C は検索で返された場所です。

ルートの概要を計算する

テキスト検索(新版)Nearby Search(新版)では、リクエストで指定されたルートの出発地に基づいて、レスポンス内の各場所までのルートの概要(所要時間と距離)を計算できます。ルートの出発地を指定すると、レスポンスには検索に一致する場所のリストだけでなく、ルートの出発地から各場所までの移動時間と距離も含まれます。

次の図では、ポイント A、B、C は検索レスポンスで返された場所です。

ポイント A、B、C は、検索レスポンスで返された場所です。

結果の各場所について、レスポンスには、ルートの出発地からその場所までの移動時間と距離が含まれます(利用可能な場合)。

デフォルトでは、移動時間と距離は Routes API の TRAFFIC_UNAWARE オプションを使用して計算されます。必要に応じて、ルート設定を設定して、計算時に リアルタイム交通情報 TRAFFIC_AWARE_OPTIMAL またはレイテンシが短縮されたリアルタイム交通情報 TRAFFIC_AWARE を考慮できます。

ルート、区間、地点について

Routes API で計算されるルートは、いくつかのコンポーネントで構成されています。

ルートを構成するコンポーネント。

ルートは次のコンポーネントで構成されます。

  • Waypoint: ルートを計算するには、出発地と目的地の場所を少なくとも指定します。これらの場所は、ルート上の 地点として定義します。中間地点は、ルートが通過する出発地と 目的地の間にある場所です。
  • ルート: 出発地点から 中間地点を経由して目的地点までの旅程全体。ルートは 1 つ以上の 区間 で構成されます。

    ルートをテキスト検索に渡す場合は、ルートのエンコードされた ポリラインRoutes APIから返されたとおりに渡します。エンコードされた ポリラインは、緯度と経度のポイントのエンコードされたリストで、 ルートのポリラインを文字列として表すことができます。

  • 区間: ルート内の 1 つの地点からルート内の次の地点までのパス。各区間は、1 つ以上の個別のステップ で構成されます。

    ルートには、各地点から次の地点までのパスの個別の区間が含まれます。 たとえば、ルートに 1 つの出発地点と 1 つの 目的地点が含まれている場合、ルートには 1 つの区間が含まれます。

    出発地と目的地の後にルートに追加する地点(中間地点)ごとに、API は個別の区間を追加します。

ルートとルートの計算の詳細については、Routes APIをご覧ください。

ルート沿いの検索でルートの概要を計算する

ルートの概要 の計算とルート沿いの検索 を組み合わせることができます。この場合、テキスト検索(新版)は、レスポンス内の各場所までの移動時間と 距離、および各場所からルートの最終 目的地までの移動時間と距離を返します。この計算は、指定されたルートから迂回して検索結果の場所まで移動し、その後最終目的地まで移動する場合の移動時間と距離を提供すると考えることができます。

たとえば、Routes API で計算された、出発地から目的地までの次のルートについて考えてみましょう。このルートを検索条件とともにテキスト検索(新版)API に渡します。

出発地の経由地から目的地までのルート。検索結果への迂回路を含む。

この例では、場所 A は テキスト検索(新版)の検索結果で返された場所です。レスポンス内の各場所について、検索には、その場所に迂回するために必要な時間 と距離が2 区間の旅程として含まれます。

  • 最初の区間には、ルートの 出発地 から 場所 までの移動時間と距離が含まれます。この例では、出発地から 場所 A までです。
  • 2 番目の区間には、 場所 からルートの 目的地 までの移動時間と距離が含まれます。この例では、A から 目的地までです。

レスポンスの情報から、迂回 時間と距離 を計算できます。

  • \(t_{OD}\) は出発地から目的地までの旅程時間 、 \(s_{OD}\) は出発地から目的地までの旅程距離 です。
  • \(t_{OA}\) は出発地から A までの旅程時間 、 \(s_{OA}\) は 出発地から A までの旅程距離です。
  • \(t_{AD}\) は A から目的地までの旅程時間 、 \(s_{AD}\) は A から目的地までの旅程距離 です。

迂回時間 は、元の旅程 (出発地から目的地まで)と新しい旅程 (出発地から目的地まで経由 A)の時間の差 です。

$$ t_{detour} = t_{OA} + t_{AD} - t_{OD} $$

迂回距離 は、元の旅程 (出発地から目的地まで)と新しい旅程 (出発地から目的地まで経由 A)の距離の差 です。

$$ s_{detour} = s_{OA} + s_{AD} - s_{OD} $$