ルート沿いの検索の概要

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

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

ルート沿いを検索する

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

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

ルート沿いの検索は、locationRestriction リクエスト オプションまたは locationBias リクエスト オプションを使用して検索結果をバイアスする方法に似ています。locationRestriction はビューポートの境界内に含まれる検索結果を返しますが、locationBias はビューポートの外側の検索結果を返すことがあります。ただし、locationBias オプションと locationRestriction オプションでは地域を指定して検索結果をバイアスできますが、Text Search のルート沿いの検索機能では、ルートの始点からルートの終点までの迂回時間が最小限になる場所を検索結果に含めるように検索結果をバイアスすることもできます。検索結果を偏向させるには、ポリラインと組み合わせて locationBias または locationRestriction を使用します。

たとえば、Routes API で出発地(ウェイポイント)から目的地までのルートを Routes API で計算したとします。

検索結果で出発地のウェイポイントから目的地までのルートを表示します。

経路沿いで検索すると、出発地から目的地までの迂回時間を最小限に抑えながら、経路の近くにある場所が返されます。この例では、ポイント A、B、C は検索によって返された場所です。

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

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

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

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

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

デフォルトでは、移動時間と距離は Routes API の TRAFFIC_UNAWARE オプションを使用して計算されます。必要に応じて、ルーティング設定で、計算中に現在の交通状況 TRAFFIC_AWARE_OPTIMAL またはレイテンシが低減された現在の交通状況 TRAFFIC_AWARE を考慮するように設定できます。

ルート、区間、ウェイポイントについて

Routes API によって計算されるルートには、複数のコンポーネントがあります。

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

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

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

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

  • 区間: ルートの 1 つのウェイポイントから次のウェイポイントまでのパス。各区間は 1 つ以上の個別のステップで構成されます。

    ルートには、各ウェイポイントから次のウェイポイントへの経路の区間が個別に含まれます。たとえば、ルートに出発地のウェイポイントが 1 つと目的地のウェイポイントが 1 つ含まれている場合、ルートには 1 つの区間が含まれます。

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

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

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

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

たとえば、Routes API によって計算された、出発地から目的地までの次のルートについて考えてみましょう。このルートを検索条件とともに Text Search(新規)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} $$