指定如何以及是否包括流量数据

您选择的流量偏好设置会在路线详情的准确性与请求性能之间取得平衡。在发出请求时,您需要权衡是返回尽可能准确的结果,还是尽快返回结果。Routes API 提供相关选项,可让您控制响应数据的质量与响应延迟时间。

设置流量数据的级别

Routes API 提供 RoutingPreference (REST) 和 RoutingPreference (gRPC),可让您指定路由偏好设置以计算路由。这些偏好设置的不同之处在于它们在计算路线时会考虑路况信息。每项路线偏好设置生成的结果在路线质量、预计到达时间和响应延迟时间方面有所不同。

路况信息是车流速率的特征。例如:

  • 在没有拥堵时,路况被认为是正常的,流量也会以正常的不受限制速度流动。
  • 临近高峰期时,车流密度会增加,导致车流速度变慢,从而造成从轻度到中等的路况信息。
  • 在发生碰撞到碰撞的车流中,车流会停止,导致交通状况拥堵。

路况不明

设置 TRAFFIC_UNAWARE 路由偏好设置时,系统在计算路由时不会考虑当前路况信息。此路由偏好设置的响应延迟时间最短(返回响应的速度最快)。

默认设置是 TRAFFIC_UNAWARE

在响应中:

  • 预计到达时间包含在 duration 响应属性中。

  • durationstaticDuration 响应属性包含相同的值。

如果您希望响应最快返回且近似路由详细信息就足够了,请使用此路由偏好设置。

可感知路况

设置 TRAFFIC_AWARE 路由偏好设置时,系统在计算路由时会将当前路况考虑在内。因此,路线和路线详情可以更准确地反映实际情况。由于数据质量的提高以牺牲响应延迟时间为代价,因此应用性能优化可以减少大部分的延迟时间。

在响应中:

  • duration 响应属性中包含考虑实时流量的预计到达时间。

  • staticDuration 响应属性包含路线的行程时长(不考虑路况信息)。

如果您希望获得比 TRAFFIC_UNAWARE 更准确的路由详细信息,但不介意返回响应时延迟时间是否适度增加,则可以使用此路由偏好设置。

以最佳方式感知流量

设置 TRAFFIC_AWARE_OPTIMAL 路由偏好设置时,系统会根据当前路况信息计算路由,但不会应用性能优化。在此模式下,服务器会更全面地搜索道路网,以找到最佳路线。

TRAFFIC_AWARE_OPTIMAL 路线偏好设置等同于 maps.google.com 和 Google 地图移动应用使用的模式。

将此选项与计算路线矩阵结合使用时,请求中的元素数量(出发地数量 × 目的地数量)不能超过 100。如需详细了解计算路线矩阵的限制,请参阅计算路线矩阵

在响应中:

  • duration 响应属性中包含考虑实时流量的预计到达时间。

  • staticDuration 响应属性包含路线的行程时长(不考虑路况信息)。

此路由偏好设置的响应延迟时间最长(即响应的延迟时间最长)。如果您希望获得最高质量的结果,而不考虑响应所需的时间,请使用此路由偏好设置。

设置出发时间的影响

您可以选择使用 departureTime 属性设置行程的出发时间。如果您未设置 departureTime 属性,则默认为您发出请求的时间。

  • 对于 TRAFFIC_UNAWARE,您不能设置 departureTime,因为系统在选择路线和时长方面需要取决于道路网和与时间无关的平均路况信息。

  • 对于考虑了实时路况信息的 TRAFFIC_AWARETRAFFIC_AWARE_OPTIMALdepartureTime 越接近当前时间,实时流量就越重要。设置的出发时间越长,就越需要考虑历史路况信息。

路由偏好设置示例

以下 JSON 代码演示了如何在请求消息实体正文中设置路由偏好设置。

{
  "origin":{
    "location":{
      "latLng":{
        "latitude":37.419734,
        "longitude":-122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":37.417670,
        "longitude":-122.079595
      }
    }
  },
  "travelMode":"DRIVE",
  "routingPreference":"TRAFFIC_AWARE_OPTIMAL"
}

配置多段线上的路况

借助 Routes API,您可以沿着路况感知多段线请求有关路况的信息。如需了解详情,请参阅请求多段线