配置质量与延迟时间

发出请求时,您可能必须决定是返回尽可能准确的结果,还是尽快返回结果。Routes API 提供了一些选项,可用于控制响应数据的质量与响应的延迟时间。

配置流量数据的级别

Routes API 提供了 RoutingPreference (REST) 和 RoutingPreference(gRPC),可让您指定计算路由的路由偏好设置。这些偏好设置在考虑路由条件时会将不同的程度纳入路由计算。每个路由偏好设置生成的结果在路由质量、预计 ETA 和响应延迟时间方面都不同。

路况信息用于描述流量速率。例如:

  • 在不拥塞时,路况信息被视为正常情况,流量将以正常的畅通速度传输。
  • 即将进入高峰期,流量密度会增加,这会导致流量减慢,产生光线到中等路况。
  • 在导视广告的导视广告流量中,流速会急剧减弱,从而产生交通拥堵。

不知道路况

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

默认设置是 TRAFFIC_UNAWARE

在响应中:

  • ETA 包含在 duration 响应属性中。

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

如果您希望以最快的速度返回响应,并且大致的路由详情足够好,则可以使用此路由偏好设置。

可感知路况

当您设置 TRAFFIC_AWARE 路由偏好设置时,路由会根据当前路况信息计算得出。因此,路线和路线详情可以更准确地反映现实情况。由于数据质量的增加以响应延迟为代价,因此应用性能优化以减少大部分延迟。

在响应中:

  • 将实时流量考虑在内的 ETA 包含在 duration 响应属性中。

  • staticDuration 响应属性包含路线的行程时长,而不考虑路况。

如果您希望获得比 TRAFFIC_UNAWARE 更准确的路由详情,并且不介意响应发生更长的延迟时间,请使用此路由偏好设置。

路况感知最优

当您设置 TRAFFIC_AWARE_OPTIMAL 路由偏好设置时,路由会根据当前路况条件进行计算,但不会应用性能优化。在此模式下,服务器会对道路网络执行更全面的搜索,以确定最佳路线。

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

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

在响应中:

  • 将实时流量考虑在内的 ETA 包含在 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,您可以请求有关路况感知多段线的路况信息。如需了解详情,请参阅请求多段线

多段线的质量可以用以下字词描述:

  • 组成多段线的点的数量

    其中包含的点越多,多段线(尤其是曲线)越平滑。

  • 浮点的浮点精度

    点以纬度和经度值的形式指定,以单精度浮点格式表示。这非常适合用于小值(可以精确表示),但随着浮点值舍入误差,精确率会降低。

computeRoutes 方法 (REST) 和 ComputeRoutes 方法 (gRPC) 支持 polylineQuality 请求选项,用于控制多段线的质量。

设置多段线质量的示例

polylineQuality 将多段线的质量指定为 HIGH_QUALITYOVERVIEW(默认)。使用 OVERVIEW 时,多段线使用少量点组成,并且请求延迟时间比 HIGH_QUALITY 短。

例如,在请求正文中:

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "polylineQuality": "HIGH_QUALITY",
  "polylineEncoding": "ENCODED_POLYLINE", 
  "departureTime": "2023-10-15T15:01:23.045123456Z",
  ...
}