沿路线搜索概览

以下 Places (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 是搜索响应中返回的地点。

对于结果中的每个地点,响应都包含从路线出发地到该地点的行程时间和距离(如果有)。

默认情况下,行程时间和距离是使用 TRAFFIC_UNAWARE option in the Routes API. 计算的。您可以选择设置路线偏好设置,以便在计算过程中考虑 实时路况信息 TRAFFIC_AWARE_OPTIMAL 或延迟时间缩短的实时路况信息 TRAFFIC_AWARE

路线、路程和航点简介

Routes API 计算出的路线由多个组件组成:

构成路线的组件。

路线由以下组件组成:

  • Waypoint:如需计算路线,您至少需要指定出发地和目的地的位置 。您可以在路线上将这些位置定义为航点 on the route。中间航点 是指您希望路线经过的出发地和 目的地之间的位置。
  • 路线:从出发地航点到目的地航点(途经任何 中间航点)的整个行程。路线由一个 或多个路程组成。

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

  • 路程 :从路线中的一个航点到路线中的下一个航点的路径。每个路程都由一个或多个离散的步骤 组成。

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

    对于您在出发地和 目的地之后添加到路线中的每个额外航点(称为中间航点),API 都会添加一个单独的路程。

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

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

您可以将路线摘要 计算与沿路线搜索 相结合。 在这种情况下,文本搜索(新)会返回到达响应中每个地点的行程时间和 距离,然后返回从每个地点到路线最终 目的地的行程时间和距离。您可以将此计算视为:如果您从指定路线绕行到搜索结果中的某个地点,然后继续前往最终目的地,则系统会提供行程时间和距离。

例如,假设 Routes API 计算出的路线是从出发地到目的地。将此路线连同搜索条件一起传递给文本搜索(新)API。

从出发地航点到目的地并绕道前往搜索结果的路线。

在此示例中,地点 A 是 文本搜索(新)搜索结果中返回的地点。对于响应中的每个地点,搜索都包含绕行到该地点所需的行程时间 和距离,即两段式行程

  • 第一段路程包含从路线 出发地地点 的行程时间和距离。在此示例中,是从出发地到 地点 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} $$