沿路搜索概览

以下地点 (New) API 提供沿路搜索功能:

  • 仅限文本搜索(新版):搜索预定义行程路线沿途的地点。
  • 文本搜索(新版)和附近搜索(新版):计算从指定的路线起点到搜索结果中的每个地点的路线摘要。
  • 仅限文本搜索(新):计算预定义行程路线上每个地点的路线摘要。

沿路线搜索

您可以使用 Routes API 计算两个地点之间的行程路线。Routes API 可以计算汽车、自行车、两轮车、公交系统或步行路线。

借助文本搜索(新),您可以使用此计算路线执行沿路线搜索。使用此选项时,您可以将从 Routes API 预计算的路线传递给“文本搜索(新)”请求。然后,响应中会包含与搜索条件匹配且位于指定路线附近的地点。

沿路线搜索类似于使用 locationRestrictionlocationBias 请求选项来偏向搜索结果。locationRestriction 会返回位于视口边界内的搜索结果,而 locationBias 可能会返回位于视口之外的搜索结果。不过,虽然您可以使用 locationBiaslocationRestriction 选项指定一个区域来偏向搜索结果,但您还可以使用文本搜索中的沿路搜索功能来偏向搜索结果,以便仅包含从路线起点到路线目的地的绕道时间最短的搜索结果。您可以将 locationBiaslocationRestriction 与多段线结合使用,以偏向搜索结果。

例如,考虑由 Routes API 计算的起点(在 Routes API 中称为航点)到目的地的路线:

从起点航点到目的地的路线,其中包含搜索结果。

当您沿路线搜索时,搜索结果会偏向于返回路线附近且从起点到目的地的绕道时间最短的地点。在此示例中,点 A、B 和 C 是搜索返回的地点。

计算路线摘要

文本搜索(新版)附近搜索(新版)可以根据请求中指定的路线起点位置,计算响应中每个地点的路线摘要(即用时和距离)。当您指定路线起点时,响应不仅包含与搜索查询匹配的地点列表,还包含从路线起点到每个地点的旅行时长和距离。

在下图中,点 A、B 和 C 是搜索响应中返回的地点:

点 A、B 和 C 是搜索响应中返回的地点。

对于结果中的每个地点,响应中都会包含从路线起点到该地点的旅行时长和距离(如果有)。

默认情况下,系统会使用 Routes API 中的 TRAFFIC_UNAWARE 选项计算行程时长和距离。您可以选择设置路由偏好设置,以便在计算时考虑实时交通状况 TRAFFIC_AWARE_OPTIMAL 或延迟时间缩短的实时交通状况 TRAFFIC_AWARE

路线、路段和航点简介

路线由多个组成部分组成,这些组成部分由 Routes API 计算得出:

构成路线的组件。

路线由以下组件组成:

  • 航点:如需计算路线,您至少需要指定起点和终点的位置。您可以将这些位置定义为路线上的航点中间航点是您希望路线经过的起点和终点之间的地点。
  • 路线:从起始航点经过所有中间航点到达目的地航点的整个行程。路线由一个或多个行程组成。

    将路线传递给文本搜索时,您需要传递 Routes API 返回的路线的编码多段线。编码的多段线是经编码的纬度和经度点列表,可让您将路线的多段线表示为字符串。

  • 航段:从路线中的一个航点到路线中的下一个航点的路径。每条路段都由一个或多个单独的步骤组成。

    路线包含从每个航路点到下一个航路点的路径的单独路段。 例如,如果路线包含单个起点航点和单个目的地航点,则路线包含单个航段。

    对于您在起点和终点之后添加到路线中的每个额外航点(称为中继航点),该 API 都会添加单独的航段。

如需详细了解路线和计算路线,请参阅 Routes API

使用沿路搜索计算路线摘要

您可以将路线摘要计算与沿路线搜索结合使用。在本例中,文本搜索(新)会在响应中返回到每个地点的旅行时长和距离,然后返回从每个地点到路线最终目的地的距离。不妨将此计算视为提供以下信息:如果您从指定路线偏离,前往搜索结果中的某个地点,然后继续前往最终目的地,则需要多长时间和多远。

例如,请考虑 Routes API 计算的以下从起点到目的地的路线。将此路线与搜索条件一起传递给文本搜索(新)API。

从起点航点到目的地的路线,其中包含绕道到搜索结果。

在此示例中,地点 A 是“文字搜索(新)”搜索结果中返回的地点。对于响应中的每个地点,搜索结果会包含绕道至该地点所需的两段行程所需的时间和距离:

  • 第 1 段包含从路线起点地点的旅行时长和距离。在此示例中,从起点到地点 A。
  • 第二段包含从地点到路线目的地的旅行时长和距离。在此示例中,从 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} $$