沿路线搜索功能概览

沿途搜索功能可在以下 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 是搜索响应中返回的地点。

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

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

路线、路程和途经点简介

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

构成路线的组件。

路由由以下组件组成:

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

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

  • 路段:路线中从一个途经点到下一个途经点的路径。每个行程段都包含一个或多个离散的步数

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

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

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

通过沿路线搜索计算路线摘要

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

例如,请考虑以下由 Routes API 计算出的从起点到终点的路线。将此路线与您的搜索条件一起传递给 Text Search (New) 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} $$