ルート沿いの検索の概要

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

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

ルート沿いを検索する

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

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

ルートに沿った検索は、locationRestriction または locationBias リクエスト オプションを使用して検索結果をバイアス処理するのと似ています。locationRestriction はビューポートの境界内にある検索結果を返しますが、locationBias はビューポートの境界外にある検索結果を返すことがあります。ただし、locationBias オプションと locationRestriction オプションでは、検索結果をバイアスする地域を指定できますが、テキスト検索のルート沿い検索機能では、ルートの出発地からルートの目的地までの迂回時間が最小限の場所を検索結果に含めるように、検索結果をバイアスすることもできます。検索結果のバイアスは、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 によって計算されるルートは、いくつかのコンポーネントで構成されています。

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

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

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

    ルートをテキスト検索に渡す場合は、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} $$