沿路线搜索概览
以下地点 (New) API 提供了沿路搜索功能:
- 仅限文本搜索(新版):搜索预定义行程路线沿途的地点。
- 文本搜索(新)和附近搜索(新):计算从指定的路线起点到搜索结果中的每个地点的路线摘要。
- 仅限文本搜索(新):计算预定义行程路线沿途每个地点的路线摘要。
沿路线搜索
您可以使用 Routes API 计算两个地点之间的行程路线。Routes API 可以计算汽车、自行车、两轮车辆、公交系统或步行路线。
借助文本搜索(新),您可以使用此计算路线执行沿路搜索。使用此选项时,您可以将从 Routes API 预计算的路线传递给文本搜索(新版)请求。然后,响应中包含与搜索条件匹配且位于指定路线附近的地点。
沿路线搜索类似于使用 locationRestriction
或 locationBias
请求选项来偏向搜索结果。locationRestriction
可返回位于视口边界内的搜索结果,而 locationBias
可返回视口外的搜索结果。不过,虽然 locationBias
和 locationRestriction
选项可让您指定一个区域来自定义调整搜索结果,但借助文本搜索中的路线搜索功能,您还可以调整搜索结果,使其包含从路线出发地到路线目的地之间绕行时间最短的用户。您可以将 locationBias
或 locationRestriction
与多段线结合使用,以偏向搜索结果。
例如,假设有一条由 Routes API 计算的路线,起点(在 Routes API 中称为航点)为 A,终点为 B:
当您沿路线搜索时,搜索偏向于返回路线附近的地点,且从出发地到目的地的绕行时间最短。在此示例中,A、B 和 C 点是搜索返回的地点。
计算路由摘要
文本搜索(新)和附近搜索(新)可以根据请求中指定的路线出发地,计算到达响应中每个地点的路线摘要,即到达每个地点的时长和距离。当您指定路线出发地时,响应不仅包含与搜索条件匹配的地点列表,还包含从路线出发地到每个地点的行程时长和距离。
在下图中,点 A、B 和 C 是搜索响应中返回的地点:
对于结果中的每个地点,响应将包含从路线出发地到地点(如果有)的行程时长和距离。
默认情况下,系统会使用 Routes API 中的 TRAFFIC_UNAWARE
选项计算行程时长和距离。您可以选择设置路线偏好设置,以便在计算时考虑实时路况信息 TRAFFIC_AWARE_OPTIMAL
或延迟时间缩短的实时路况信息 TRAFFIC_AWARE
。
路线、航段和航点简介
路线由多个组件组成,由 Routes API 计算得出:
路由由以下组件组成:
- Waypoint:如需计算路线,您至少要指定出发地和目的地的位置。您可以将这些位置定义为路线上的路径点。中间航点是您希望路线经过的起点和目的地之间的地点。
-
路线:从起始航点经过任何中间航点到达目的地航点的整个行程。路线由一个或多个路程组成。
将路线传递给文本搜索时,您需要传递 Routes API 返回的路线的编码多段线。编码多段线是经过编码的纬度和经度点列表,可让您将路线的多段线表示为字符串。
-
航段:路线中从一个航点到下一个航点的路径。每一段都包含一个或多个离散的步骤。
路线包含从每个航点到下一个航点的路径的单独路段。 例如,如果路线包含单个起点航点和单个目的地航点,则路线包含单个航段。
对于您在起点和终点之后添加到路线中的每个额外航点(称为中继航点),该 API 都会添加单独的航段。
如需详细了解路线和计算路线,请参阅 Routes API。
通过沿路线搜索计算路线摘要
您可以将路线摘要计算与沿路线搜索结合使用。在这种情况下,文本搜索(新)会在响应中返回到每个地点的行程时长和距离,然后从每个地点到路线的最终目的地。您可以将此计算视为在您从指定路线偏离到搜索结果中的某个地点,然后继续前往最终目的地的情况下,系统提供的行程时长和距离。
例如,请考虑 Routes API 计算出的从出发地到目的地的以下路线。将此路线与搜索条件一起传递给 Text Search(新)API。
在此示例中,地点 A 是文本搜索(新)的搜索结果中返回的地点。对于响应中的每个地点,搜索结果会包含绕道前往该地点所需的两段行程的持续时间和距离:
- 第一段路程包含从路线 origin 到 place 的行程时长和距离。在此示例中,从起点到地点 A。
- 第二段路程包含从地点到路线目的地的行程时长和距离。在此示例中,从 A 到目的地。
然后,您可以根据响应中的信息计算绕道所需的时间和距离,其中:
- \(t_{OD}\) 是从起点到目的地的行程用时, \(s_{OD}\) 是从起点到目的地的行程距离
- \(t_{OA}\) 是从起点到 A 的行程时长; \(s_{OA}\) 是从起点到 A 的行程距离
- \(t_{AD}\) 是从 A 到目的地的行程时长; \(s_{AD}\) 是从 A 到目的地的行程距离
绕道用时是原行程(从起点到终点)与新行程(从起点到终点经由 A)之间的用时差异:
绕行距离是原始行程(从出发地到目的地)与新的行程(从出发地到目的地,终点为 A)之间的距离差值: